I am attaching wireshark capture for Dlink and Netgear STP packets. Please let me know if any one has any idea or comment on this. Thanks, Sujata --- On Thu, 6/14/12, Sasikanth babu <sasikanth.v19 at gmail.com> wrote: From: Sasikanth babu <sasikanth.v19 at gmail.com> Subject: Re: [Bridge] Query on Sapnning tree implementation from standard point of view To: "Sujata Verma" <sujataverma3 at yahoo.com> Cc: bridge at lists.linux-foundation.org Date: Thursday, June 14, 2012, 6:09 PM On Thu, Jun 14, 2012 at 5:53 PM, Sujata Verma <sujataverma3 at yahoo.com> wrote: =0AHi , I am going through spanning tree protocol and was testing it on Linux. My observation is there is no validation of timers for configuration BPDU.=A0 Lets say Root bridge received another BPDU from new bridge with invalid timer values but less priority, the existing bridge is becoming non-root bridge and is advertising the invalid timer values.=20 =0A As i have gone through 802.1D-1998 standard, i understand that 2004 is current one but i was looking into STP not RSTP, i preferred to read this standard. I find these lines: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =0A9.3.3 Validation of received BPDUs A Bridge Protocol Entity shall process a received BPDU as specified in 8.7 if and only if the BPDU contains at least four octets and the Protocol Identifier has the value specified for BPDUs (9.3.2), and =0Aa) The BPDU Type=0A denotes a Configuration BPDU and the BPDU contains at least 35 octets, and the value of the BPDUs Message Age parameter is less than that of its Max Age parameter; or b) The BPDU Type denotes a Topology Change Notification BPDU. =0AIn case a), any octets that are present beyond Octet 35 are ignored, as far as processing according to this standard is concerned. Similarly, in case b), any octets beyond Octet 4 are ignored. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =0A Does this implies that any value timer values present within octet 35 is valid value and there is no validation done. Even if range for hello timer, max age and forward delay is defined and is limited. Is it an issue or fine within the standard? =0A =A0 Not all STP implementation do BPDU validations i.e validates all BPDU parameters present within 35 octet. The validation checks for invalid values present in the bpdu,=20 =0A=A0 if the BPDU validation fails it drops the BPDU. The have seen this validations in proprietary software. =A0=20 =0APlease help me understand this issue and thanks for any comments. Regards, Sujata =0A _______________________________________________ =0ABridge mailing list =0ABridge at lists.linux-foundation.org =0Ahttps://lists.linuxfoundation.org/mailman/listinfo/bridge =0A --353665373-2083184595-1339763140=:49767 Content-Type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable <table cellspacing=3D"0" cellpadding=3D"0" border=3D"0" ><tr><td valign=3D"top" style=3D"font: inherit;">Thanks. I was doing the same experiment on few switches, i could get hold of and this is the result:<br><br>Cisco Switch catalyst 2950 : Completely ignoring the packet, so validations are proper.<br><br>Netgear FSM726V3 : Hello timer is validated and is propagated as 10 instead of 255 ( which i sent) other max age and forward delay still it accepts as 255. <br><br>DLINK-DES-3026 : No validation done and accepts all as 255 ( max age, forward delay and hello timer)<br><br>In both Netgear and Dlink the message age is changed to 16, which i am not sure why it has happened ? <br><br>my setup is simple<br><br> PC1------Switch------PC2<br><br>From PC1 i am sending invalid timer values and observing on PC2.<br><br>I am attaching wireshark capture for Dlink and Netgear STP packets.<br><br>Please let me know if any one has any idea or comment on this.<br><br>Thanks,<br>Sujata<br><br><br><br><br><br><br><br>--- On <b>Thu, 6/14/12, Sasikanth babu <i><sasikanth.v19 at gmail.com></i></b> wrote:<br><blockquote style=3D"border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><br>From: Sasikanth babu <sasikanth.v19 at gmail.com><br>Subject: Re: [Bridge] Query on Sapnning tree implementation from standard point of view<br>To: "Sujata Verma" <sujataverma3 at yahoo.com><br>Cc: bridge at lists.linux-foundation.org<br>Date: Thursday, June 14, 2012, 6:09 PM<br><br><div id=3D"yiv908397253"><div dir=3D"ltr"><br><div class=3D"yiv908397253gmail_quote">On Thu, Jun 14, 2012 at 5:53 PM, Sujata Verma <span dir=3D"ltr"><<a rel=3D"nofollow" ymailto=3D"mailto:sujataverma3@yahoo.com" target=3D"_blank" href=3D"/mc/compose?to=3Dsujataverma3 at yahoo.com">sujataverma3 at yahoo.com</a>></span> wrote:<br><blockquote class=3D"yiv908397253gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">=0A<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0"><tbody><tr><td style=3D"font:inherit;" valign=3D"top">Hi ,<br><br>I am going through spanning tree protocol and was testing it on Linux. My observation is there is no validation of timers for configuration BPDU. Lets say Root bridge received another BPDU from new bridge with invalid timer values but less priority, the existing bridge is becoming non-root bridge and is advertising the invalid timer values. <br>=0A<br>As i have gone through 802.1D-1998 standard, i understand that 2004 is current one but i was looking into STP not RSTP, i preferred to read this standard. I find these lines:<br><br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>=0A9.3.3 Validation of received BPDUs<br><br>A Bridge Protocol Entity shall process a received BPDU as specified in 8.7 if and only if the BPDU contains at least four octets and the Protocol Identifier has the value specified for BPDUs (9.3.2), and<br>=0Aa) The BPDU Type=0A denotes a Configuration BPDU and the BPDU contains at least 35 octets, and the<br>value of the BPDUs Message Age parameter is less than that of its Max Age parameter; or<br><br>b) The BPDU Type denotes a Topology Change Notification BPDU.<br>=0AIn case a), any octets that are present beyond Octet 35 are ignored, as far as processing according to this<br>standard is concerned. Similarly, in case b), any octets beyond Octet 4 are ignored.<br><br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>=0A<br>Does this implies that any value timer values present within octet 35 is valid value and there is no validation done. Even if range for hello timer, max age and forward delay is defined and is limited. Is it an issue or fine within the standard?<br>=0A<br></td></tr></tbody></table></blockquote><div> Not all STP implementation do BPDU validations i.e validates all BPDU parameters present within 35 octet. The validation checks for invalid values present in the bpdu, <br>=0A if the BPDU validation fails it drops the BPDU. The have seen this validations in proprietary software.<br> <br></div><blockquote class=3D"yiv908397253gmail_quote" style=3D"margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex;">=0A<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0"><tbody><tr><td style=3D"font:inherit;" valign=3D"top">Please help me understand this issue and thanks for any comments.<br><br>Regards,<br>Sujata<br><br></td></tr></tbody></table>=0A<br>_______________________________________________<br>=0ABridge mailing list<br>=0A<a rel=3D"nofollow" ymailto=3D"mailto:Bridge at lists.linux-foundation.org" target=3D"_blank" href=3D"/mc/compose?to=3DBridge at lists.linux-foundation.org">Bridge at lists.linux-foundation.org</a><br>=0A<a rel=3D"nofollow" target=3D"_blank" href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bridge">https://lists.linuxfoundation.org/mailman/listinfo/bridge</a><br></blockquote></div><br></div>=0A</div></blockquote></td></tr></table> --353665373-2083184595-1339763140=:49767-- --353665373-701004562-1339763140=:49767 Content-Type: application/cap; name="STP_packet.pcap" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="STP_packet.pcap" 1MOyoQIABAAAAAAAAAAAAP//AAABAAAAPtTZT+4ECwA8AAAAPAAAAAGAwgAA AAAbERG9QgAmQkIDAAAAAAEQAAAgofCIUAADDUSAAAAbERG9QoABEAD/AP8A /wAAAAAAAAAAACXY2U9fswsAPAAAADwAAAABgMIAAAAAJvKvk6cAJkJCAwAA AAAAEAAAIKHwiFAAAw1EEAAAJvKvk6WAARAA//8KAP//AAAAAAAAAAA --353665373-701004562-1339763140=:49767--