em(4) losing link when if_bridge(4) addm/deletem are used

Jeremy Chadwick koitsu at FreeBSD.org
Wed Mar 28 22:30:46 UTC 2007


On Thu, Mar 29, 2007 at 09:37:09AM +1200, Andrew Thompson wrote:
> On Tue, Mar 27, 2007 at 08:33:27PM -0700, Jeremy Chadwick wrote:
> > In the midst of the madness, I found that when doing either of the
> > following commands...
> > 
> >   ifconfig bridge0 addm em1
> >   ifconfig bridge0 deletem em1
> > 
> > ...I see the entire em1 interface completely reset, bringing down link,
> > then up again shortly after.  The logs on my switch also confirm this.
> > 
> > For sake of comparison, the bge(4) driver does not behave this way.
> > 
> > I am aware that if_bridge(4) enables promiscuous mode on whatever
> > interface is being added, ditto with -promisc on deletem.  However, this
> > does not appear to be the cause of the problem, because I can do
> > "ifconfig em1 promisc" and "ifconfig em1 -promisc" without loss of link.
>  
> The only other thing the bridge does to the interface when removing it
> is to reinstate IFCAP_TXCSUM, which is disabled when the interface is
> bridged. If you manually toggle this with ifconfig do you get the same
> result?

Bingo.

medusa# ifconfig em1 -txcsum
medusa# ifconfig em1
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
        ether 00:30:48:71:60:6b
        media: Ethernet autoselect
        status: no carrier
medusa# grep em1 /var/log/messages
Mar 28 15:29:34 medusa kernel: em1: link state changed to DOWN
Mar 28 15:29:36 medusa kernel: em1: link state changed to UP

-- 
| Jeremy Chadwick                                    jdc at parodius.com |
| Parodius Networking                           http://www.parodius.com/ |
| UNIX Systems Administrator                      Mountain View, CA, USA |
| Making life hard for others since 1977.                  PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list