* [Bridge] Invalid BPDU transmission?
@ 2010-10-05 9:54 Rodolfo Giometti
2010-10-05 12:40 ` Srinivas M.A.
0 siblings, 1 reply; 5+ messages in thread
From: Rodolfo Giometti @ 2010-10-05 9:54 UTC (permalink / raw)
To: bridge
Hello,
in function STP_transmit_check_conditions (rstplib/transmit.c) the
case:
case IDLE:
if (!port->helloWhen) return STP_hop_2_state (this,
TRANSMIT_PERIODIC);
if (!port->sendRSTP && port->newInfo &&
(port->txCount < TxHoldCount) &&
(port->role == DesignatedPort) &&
port->helloWhen)
return STP_hop_2_state (this, TRANSMIT_CONFIG);
if (!port->sendRSTP && port->newInfo &&
(port->txCount < TxHoldCount) &&
(port->role == RootPort) &&
port->helloWhen)
return STP_hop_2_state (this, TRANSMIT_TCN);
if (port->sendRSTP && port->newInfo &&
(port->txCount < TxHoldCount) &&
((port->role == RootPort) || <----
(port->role == DesignatedPort)))
return STP_hop_2_state (this, TRANSMIT_RSTP);
break;
states that a RSTP bpdu can be transmitted even throught a RootPort
which, IMHO, is not correct... only topology change BPDU should be
sent over the RootPort. That's why I suggest to remove the line with
the arrow (<----).
Comments? :)
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti@enneenne.com
Linux Device Driver giometti@linux.it
Embedded Systems phone: +39 349 2432127
UNIX programming skype: rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bridge] Invalid BPDU transmission?
2010-10-05 9:54 [Bridge] Invalid BPDU transmission? Rodolfo Giometti
@ 2010-10-05 12:40 ` Srinivas M.A.
2010-10-06 15:32 ` Rodolfo Giometti
0 siblings, 1 reply; 5+ messages in thread
From: Srinivas M.A. @ 2010-10-05 12:40 UTC (permalink / raw)
To: Rodolfo Giometti; +Cc: bridge
Both CONFIG and TCN BPDUs are used only in STP compatibility mode. In
RSTP mode, the BPDUs sent in both directions are RSTP BPDUs. So they
can be sent on the root port.
For a description of how topology changes are handled, see the section
titled "New Topology Change Mechanisms" in
http://www.cisco.com/en/US/tech/tk389/tk621/technologies_white_paper09186a0080094cfa.shtml
Is this causing any particular issue?
On Tue, Oct 5, 2010 at 3:24 PM, Rodolfo Giometti <giometti@enneenne.com> wrote:
> Hello,
>
> in function STP_transmit_check_conditions (rstplib/transmit.c) the
> case:
>
> case IDLE:
> if (!port->helloWhen) return STP_hop_2_state (this,
> TRANSMIT_PERIODIC);
> if (!port->sendRSTP && port->newInfo &&
> (port->txCount < TxHoldCount) &&
> (port->role == DesignatedPort) &&
> port->helloWhen)
> return STP_hop_2_state (this, TRANSMIT_CONFIG);
> if (!port->sendRSTP && port->newInfo &&
> (port->txCount < TxHoldCount) &&
> (port->role == RootPort) &&
> port->helloWhen)
> return STP_hop_2_state (this, TRANSMIT_TCN);
> if (port->sendRSTP && port->newInfo &&
> (port->txCount < TxHoldCount) &&
> ((port->role == RootPort) || <----
> (port->role == DesignatedPort)))
> return STP_hop_2_state (this, TRANSMIT_RSTP);
> break;
>
> states that a RSTP bpdu can be transmitted even throught a RootPort
> which, IMHO, is not correct... only topology change BPDU should be
> sent over the RootPort. That's why I suggest to remove the line with
> the arrow (<----).
>
> Comments? :)
>
> Ciao,
>
> Rodolfo
>
> --
>
> GNU/Linux Solutions e-mail: giometti@enneenne.com
> Linux Device Driver giometti@linux.it
> Embedded Systems phone: +39 349 2432127
> UNIX programming skype: rodolfo.giometti
> Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
> _______________________________________________
> Bridge mailing list
> Bridge@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/bridge
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bridge] Invalid BPDU transmission?
2010-10-05 12:40 ` Srinivas M.A.
@ 2010-10-06 15:32 ` Rodolfo Giometti
2010-10-06 16:20 ` Rodolfo Giometti
0 siblings, 1 reply; 5+ messages in thread
From: Rodolfo Giometti @ 2010-10-06 15:32 UTC (permalink / raw)
To: Srinivas M.A.; +Cc: bridge, Gianpietro Germi
On Tue, Oct 05, 2010 at 06:10:32PM +0530, Srinivas M.A. wrote:
> Both CONFIG and TCN BPDUs are used only in STP compatibility mode. In
> RSTP mode, the BPDUs sent in both directions are RSTP BPDUs. So they
> can be sent on the root port.
>
> For a description of how topology changes are handled, see the section
> titled "New Topology Change Mechanisms" in
> http://www.cisco.com/en/US/tech/tk389/tk621/technologies_white_paper09186a0080094cfa.shtml
>
> Is this causing any particular issue?
Yes. By using the following connection:
+---------------+ +----------------------+
| EXTRA bridge O <----> O(eth5) bridge on test |
+---------------+ | (eth0) (eth1) |
+--------O------O------+
^ ^
| |
+------+
where «EXTRA bridge» is a rstp bridge acting as root bridge and NOT
running rstpd (but a proprietary rstp implementation), while «bridge
on test» is my bridge running rstpd.
«EXTRA bridge» sends to «bridge on test» the following BDPU:
01 80 c2 00 00 00 00 02 3e 99 ba 1c 00 27 42 42
03 00 00 02 02 7e 80 00 00 02 3e 99 ba 1c 00 00
00 00 80 00 00 02 3e 99 ba 1c 80 01 00 00 14 00
02 00 0f 00 00
and «bridge on test» replies on «eth5», which is its root port.
Without my modification «bridge on test» is unstable, in fact the
states of eth0 and eth1 ports doesn't fit to Fwd end Blk but they
change in a strange manner and don't stabilize... also opening and
closing the loop cause more instability and the bridge takes very long
time before changing its ports states!
By adding my modification everything works well.
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti@enneenne.com
Linux Device Driver giometti@linux.it
Embedded Systems phone: +39 349 2432127
UNIX programming skype: rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bridge] Invalid BPDU transmission?
2010-10-06 15:32 ` Rodolfo Giometti
@ 2010-10-06 16:20 ` Rodolfo Giometti
2010-10-06 21:51 ` Srinivas M.A.
0 siblings, 1 reply; 5+ messages in thread
From: Rodolfo Giometti @ 2010-10-06 16:20 UTC (permalink / raw)
To: Srinivas M.A.; +Cc: bridge, Gianpietro Germi
On Wed, Oct 06, 2010 at 05:32:32PM +0200, Rodolfo Giometti wrote:
>
> «EXTRA bridge» sends to «bridge on test» the following BDPU:
>
> 01 80 c2 00 00 00 00 02 3e 99 ba 1c 00 27 42 42
> 03 00 00 02 02 7e 80 00 00 02 3e 99 ba 1c 00 00
> 00 00 80 00 00 02 3e 99 ba 1c 80 01 00 00 14 00
> 02 00 0f 00 00
Sorry, the correct BDPU is the following:
01 80 c2 00 00 00 00 01 f4 33 1c 54 00 27 42 42
03 00 00 02 02 7e 00 00 00 01 f4 7e a2 57 00 00
00 00 00 00 00 01 f4 7e a2 57 83 4e 00 00 0a 00
01 00 0f 00 00
Ciao,
Rodolfo
--
GNU/Linux Solutions e-mail: giometti@enneenne.com
Linux Device Driver giometti@linux.it
Embedded Systems phone: +39 349 2432127
UNIX programming skype: rodolfo.giometti
Freelance ICT Italia - Consulente ICT Italia - www.consulenti-ict.it
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bridge] Invalid BPDU transmission?
2010-10-06 16:20 ` Rodolfo Giometti
@ 2010-10-06 21:51 ` Srinivas M.A.
0 siblings, 0 replies; 5+ messages in thread
From: Srinivas M.A. @ 2010-10-06 21:51 UTC (permalink / raw)
To: Rodolfo Giometti; +Cc: bridge, Gianpietro Germi
> Sorry, the correct BDPU is the following:
>
> 01 80 c2 00 00 00 00 01 f4 33 1c 54 00 27 42 42
> 03 00 00 02 02 7e 00 00 00 01 f4 7e a2 57 00 00
> 00 00 00 00 00 01 f4 7e a2 57 83 4e 00 00 0a 00
> 01 00 0f 00 00
The 7e in 00 00 02 02 7e ... is a flags value with the proposal flag
set (mask 0x02), so it seems correct that the test bridge should
respond with agreement flag set (mask 0x40).
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-10-06 21:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-05 9:54 [Bridge] Invalid BPDU transmission? Rodolfo Giometti
2010-10-05 12:40 ` Srinivas M.A.
2010-10-06 15:32 ` Rodolfo Giometti
2010-10-06 16:20 ` Rodolfo Giometti
2010-10-06 21:51 ` Srinivas M.A.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.