wang dengyi
2007-Aug-23 09:37 UTC
[Bridge] bridge problem when one interface is in blocking mode
Hi, We have a simple bridge setup but the ping (and other network traffic) does not work reliably. After tracing the code, it looks like a software bug. Since bridge software is been running by thousands of people. I guess I am wrong. Anyway, here is the problem. There are 2 boxes and each one has 2 interfaces, 1 ethernet and 1 wifi. STP is enabled for the bridge to avoid the loop. So the box 1 has wifi in the blocking mode. When we ping from box 1 to box 2, lots of packages lost. Ping from box 2 to box 1 does not has this problem. After we tracing the code, we noticed that the box try to using wifi to send the packages which is in blocking mode. This happens because the ath0 is returned from the forwarding database. It's implemented in __br_fdb_get(br, dest).>From the etherreal, I noticed, that the STP package isbroadcast from the box 2. From the function br_handle_frame(), if a stp package is received, it will update the forwarding database. Since the STP package is sent/received by both interfaces, the wifi (blocking) received the package and update the forwarding database too. So, __br_fdb_get() will returns the wifi card sometimes. And then, the package is lost. Regards, Dengyi Wang ____________________________________________________________________________________ Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games. http://sims.yahoo.com/
Stephen Hemminger
2007-Aug-23 10:08 UTC
[Bridge] bridge problem when one interface is in blocking mode
On Wed, 22 Aug 2007 15:36:30 -0700 (PDT) wang dengyi <dy_wang@yahoo.com> wrote:> Hi, > > We have a simple bridge setup but the ping (and other > network traffic) does not work reliably. After tracing > the code, it looks like a software bug. Since bridge > software is been running by thousands of people. I > guess I am wrong. Anyway, here is the problem. > > There are 2 boxes and each one has 2 interfaces, 1 > ethernet and 1 wifi. STP is enabled for the bridge to > avoid the loop. So the box 1 has wifi in the blocking > mode. When we ping from box 1 to box 2, lots of > packages lost. Ping from box 2 to box 1 does not has > this problem. > > After we tracing the code, we noticed that the box try > to using wifi to send the packages which is in > blocking mode. This happens because the ath0 is > returned from the forwarding database. It's > implemented in __br_fdb_get(br, dest). > > >From the etherreal, I noticed, that the STP package is > broadcast from the box 2. From the function > br_handle_frame(), if a stp package is received, it > will update the forwarding database. Since the STP > package is sent/received by both interfaces, the wifi > (blocking) received the package and update the > forwarding database too. So, __br_fdb_get() will > returns the wifi card sometimes. And then, the package > is lost. > > Regards, > > Dengyi WangWhat kernel version are you using? Bridging over wifi doesn't usually work unless the wifi driver has WDS support. In wifi when bridging the driver would need to add an additional header that gives intermediate hop information: See: http://www.cisco.com/en/US/docs/wireless/access_point/1300/12.2_15_JA/configuration/guide/o13wds.html> > > > > > > > ____________________________________________________________________________________ > Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games. > http://sims.yahoo.com/ > _______________________________________________ > Bridge mailing list > Bridge@lists.linux-foundation.org > https://lists.linux-foundation.org/mailman/listinfo/bridge-- Stephen Hemminger <shemminger@linux-foundation.org>
John W. Linville
2007-Aug-30 13:44 UTC
[Bridge] Re: [PATCH] bridge: packets leaking out of disabled/blocked ports
On Thu, Aug 30, 2007 at 12:22:58PM -0700, Stephen Hemminger wrote:> This patch fixes some packet leakage in bridge. The bridging code > was allowing forward table entries to be generated even if a device > was being blocked. The fix is to not add forwarding database entries > unless the port is active.Seems reasonable -- ACK John -- John W. Linville linville@tuxdriver.com
David Miller
2007-Aug-30 22:16 UTC
[Bridge] Re: [PATCH] bridge: packets leaking out of disabled/blocked ports
From: "John W. Linville" <linville@tuxdriver.com> Date: Thu, 30 Aug 2007 16:03:13 -0400> On Thu, Aug 30, 2007 at 12:22:58PM -0700, Stephen Hemminger wrote: > > This patch fixes some packet leakage in bridge. The bridging code > > was allowing forward table entries to be generated even if a device > > was being blocked. The fix is to not add forwarding database entries > > unless the port is active. > > Seems reasonable -- ACKApplied, thanks.