From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 5 Oct 2010 11:54:58 +0200 From: Rodolfo Giometti Sender: giometti@enneenne.com Message-ID: <20101005095458.GB2584@enneenne.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Bridge] Invalid BPDU transmission? List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: bridge@lists.linux-foundation.org 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