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

Andrew Thompson thompsa at freebsd.org
Wed Mar 28 22:59:03 UTC 2007


On Wed, Mar 28, 2007 at 03:30:45PM -0700, Jeremy Chadwick wrote:
> 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.
> > > 
> > 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

As a workaround you could remove txcsum at boot, then the bridge will
not toggle it. Long term you could prod the em(4) maintainer to see if
this can be resolved.


Andrew


More information about the freebsd-stable mailing list