On Wed, 13 Sep 2006 15:58:49 -0700 Brian Braunstein <brian at bristyle.com> wrote: > hi stephen and tony, > > i have been in contact with both of you and i figured it would make > sense to get you to in contact on this issue, so here's the story: > > stephen is the maintainer of the linux spanning tree bridging code, an > implementation of 802.1D-1998 that has very wide spread use. > > tony is the chair of the IEEE802.1 working group. > > i am trying to get my patch submitted in the linux kernel to fix a bug > in the way STP behaves. stephen and i discovered that the flaw is > actually in the IEEE802.1D-1998 spec, and that the linux implementation > was merely following this. i contacted tony to try to see if we can get > an update to the 802.1D-1998 spec, as this is what is implemented in the > linux kernel, but tony said that the 1998 standard is obsolete, will not > be updated, and that the 2004 RSTP spec should be used. > > so here's a review of what i've come across: > > first lets start with the bug in the 802.1D-1998 spec > > 1998 - 8.6.2.2 Record Configuration Information - Use > you will notice that if the path cost ever goes up and everything > else is held constant, the BPDU will be dropped and the network not > react to the change, and the dropping of the BPDUs will make it seem > like the link is down. > > now lets look at the equivalent section in the 8021.D-2004 spec: > > 2004 - 17.6 Priority vector calculations > > as you can see here, this bug has been fixed, because the last > condition takes care of the problem, if the config message is received > from the same designated bridge and designated port, then the config > message is processed. so path cost increases will be recorded and > reacted to. > > > the issue is whether or not the linux kernel should go with the 1998 or > 2004 spec. i would assume that the goal is to make the linux > implmentation a functional implementation of the original STP, not a > complete rewrite to conform to all of RSTP, so lets look at what the new > standard says for normal legacy STP, to see if the bug is fixed there as > well: > > 2004 - 17.4 STP compatibility > > this section seems to say that an RSTP bridge will revert to STP as > defined in section 8. so then we go to section 8... > > 2004 - 8 Spanning tree algorithm protocol > > this one then refers to 802.1D-1998 for the STP spec, but also says > that it is obsolete and RSTP should be used > > so this is a bit confusing. section 17.4 says use STP to interoperate > with legacy bridges, then section 8 either says use the 1998 spec, or > don't use STP at all, but if bugs in the 1998 spec cannot be correct, > what are we to do with the linux code? i can write the patch to > implement the new algorithm from 2004-17.6 to replace the algorithm from > 1998-8.6.2.2. > > thanks for you help guys, > hopefully we can get this bug fixed up soon, you both have been great > about timely responses and it is much appreciated. > > Brian Braunstein > 858.245.0434 I have no problem fixing the code to be spec noncompliant, there are several case where we implement the "right thing" rather than the "standard way". I just want to make sure any such changes don't have unintended consequences.