← Back to team overview

kernel-packages team mailing list archive

[Bug 1547680] Re: bonded interfaces in bridge do not have LRO turned off

 

This can be reproduced on any system with a nic that supports lro.  For
example:

$ sudo ethtool -k eth5 | grep large-receive-offload
large-receive-offload: on

$ sudo modprobe bonding
$ sudo ifenslave bond0 eth5
$ sudo brctl addbr br0
$ sudo brctl addif br0 bond0


without the patch, lro will still be on:

$ sudo ethtool -k eth5 | grep large-receive-offload
large-receive-offload: on

with the patch, lro will automatically get disabled when the bond is
added to the bridge:

$ sudo ethtool -k eth5 | grep large-receive-offload
large-receive-offload: off

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1547680

Title:
  bonded interfaces in bridge do not have LRO turned off

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Trusty:
  In Progress

Bug description:
  The "large receive offload" functionality of some NICs is not
  compatible with packet forwarding, because it modifies incoming
  packets in an irreversible way so the packets can't be correctly
  forwarded across the bridge.  When an interface is added to a bridge,
  the kernel automatically disables LRO via dev_disable_lro(), however
  in trusty this only works for normal interfaces (or vlan/macvlan)
  added to a bridge.  When interfaces belong to a bond, and the bond is
  added to a bridge, the interfaces' LRO is not disabled, and (some)
  incoming packets are modified by LRO and then lost when passing
  through the bridge.

  Commit fbe168ba91f7c327856f205699404284c2f09e36 updates
  dev_disable_lro() to work for all types of interfaces, including
  bonds.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1547680/+subscriptions


References