[Bridge] RSTP implementation status

Vitalii Demianets vitas at nppfactor.kiev.ua
Tue Nov 8 10:32:01 UTC 2011


On Tuesday 08 November 2011 11:37:56 Martino Fornasa wrote:
> Hi all.
> I'm interested in RSTP implementation (and maybe in contributing to it).
>
> I read this
> [http://lkml.indiana.edu/hypermail/linux/net/0807.1/0011.html] message,
> and I had a look on the ongoing RSTP project hosted at
> [https://github.com/shemminger/RSTP]. Is this project still running?
>
> I noticed that such a ongoing project is based on rstplib
> [http://rstplib.sourceforge.net/]. By taking a brief look at the code,
> it seems to me that such a code is based on the obsolete 802.1w
> specification, while the newest specification for RSTP is contained in
> 802.1D-2004; and such a specification (beside incorporating
> compatibility with STP) is radically different from 802.1w (e.g.,
> different set of states on state machines...), and it is not easy to
> understand the amount of interoperability between the two.
>

Hello, Martino!
Not really an expert in 802.1w flavor of RSTP, so can't really say if there 
are any differences in behavior of 802.1w- and 802.1D- compatible  
implementations. Just want to point at two alternative projects based on more 
recent standards:

1)
There is 802.1D-compatible RSTP implementation by Aji Srinivas which he 
announced on this list:
http://lists.linux-foundation.org/pipermail/bridge/2009-February/006178.html

I have adopted it in my projects and even have found and patched some bugs. As 
for me it passes some smoke tests but I never let it in production, because 
of the lack of more serious testing.

2)
Also I started open-source MSTP (802.1Q-2005) project,  you can find it here:
http://sourceforge.net/p/mstpd/wiki/Home/

It is based on the more recent standard and can be restricted (if you need) to 
the rstp-only operation by setting "setforcevers" parameter to "rstp".

Again, it passes some smoke tests and behaves reasonably but it lacks serious 
testing.
 
> I think that a serious issue in implementing network bridging/routing
> protocols is to proper validate and testing it. For example, I know that
> there are companies that offer commercial validation system for network
> protocol. As some RSTP implementations as been put in the past in the
> kernel, and STP is already in it, are such implementations have been
> tested and validated? How?
>

Indeed, this is the biggest problem. There are tests which are considered as 
industry standards: UNH IOL tests. For example, MSTP tests:
http://www.iol.unh.edu/services/testing/bfc/testsuites/#Multiple_Spanning_Tree_(MSTP)_Operations_Test_Suite
and
http://www.iol.unh.edu/services/testing/bfc/testsuites/#Multiple_Spanning_Tree_Protocol_(MSTP)_Multi-System_Interoperability_Test_Suite

But these tests use special Ethernet frames, and the content of those test 
frames isn't available freely. Personally I can not figure how to get those 
frames (suspect, it is simply impossible for the small enterprise, as mine 
is).
That is where the show stops for me. I have code and it needs testing, and... 

-- 
Vitalii Demianets


More information about the Bridge mailing list