On Wed, 24 Jan 2007 09:30:41 -0800
Michael Boutte <mboutte@pacbell.net> wrote:
> Hello,
> I am experiencing what may be a unique problem with operating the
> bridge. My hardware is custom Freescale MPC875 processor based with one
> ethernet (eth0) and one hdlc (hdlc0) WAN port and I am connecting two of
> these boards together using the WAN ports over a long distance -
> essentially two bridges in series. They are running Linux 2.6.15 with
> bridging enabled in the kernel configuration. When I first power up both
> boards the bridge comes up fine and the two outside LANs are connected
> as if it were one LAN with a smart long cable in between. brctl works to
> set it up and the "showmacs" properly shows all of the MACs on
each end.
>
> The problem occurs If I disconnect the ethernet cable directly from the
> bridge at either end. The console on the disconnected units says "br0:
> port 2(eth0) entering disabled state". When I reconnect the cable it
> shows "br0: port 2(eth0) entering learning state" plus messages
about
> network topology change detected. That LAN end no longer has a link to
> the other end, yet at the console of the unit disconnected and
> reconnected I can ping in either direction to any device in both LAN
> segments. Time makes no difference, but if I issue the command
"ifconfig
> eth0 down" and then back "up" the link is almost immediately
restored.
> This works either while the cable is disconnected or after it is
> reconnected.
>
> I compared the effect of a cable disconnect with a standard PC running
> Linux and it seems to be identical, that is, ifconfig shows the port as
> up even when the cable is disconnected on both. I tried having STP
> enabled or disabled, and adding the ports into br0 in the opposite order
> with no difference either. Any ideas on why the bridge does not
> automatically restore? and especially on how I can make it automatically
> restore itself?
>
> Thank you for your kind attention.
>
> Mike Boutte
You probably don't want the forwarding delay period (30 seconds)
that occurs on link transitions. Use:
brctl setfd br0 0
--
Stephen Hemminger <shemminger@linux-foundation.org>