> From: Intel-wired-lan [mailto:intel-wired-lan-boun...@lists.osuosl.org] On > Behalf Of Jarod Wilson > Sent: Thursday, June 9, 2016 4:50 PM > To: linux-ker...@vger.kernel.org > Cc: netdev@vger.kernel.org; intel-wired-...@lists.osuosl.org > Subject: [Intel-wired-lan] [PATCH net v2] e1000e: keep vlan interfaces > functional after rxvlan off > > I've got a bug report about an e1000e interface, where a vlan interface is > set up on top of it: > > $ ip link add link ens1f0 name ens1f0.99 type vlan id 99 > $ ip link set ens1f0 up > $ ip link set ens1f0.99 up > $ ip addr add 192.168.99.92 dev ens1f0.99 > > At this point, I can ping another host on vlan 99, ip 192.168.99.91. > However, if I do the following: > > $ ethtool -K ens1f0 rxvlan off > > Then no traffic passes on ens1f0.99. It comes back if I toggle rxvlan on > again. Upon discussion with folks here, and closer inspection, it appears > that the software *receive* fallback is working correctly, but outbound > traffic is broken. Upon glancing at the e1000 driver, I saw a note about > having to keep RX and TX accel flags in sync, because there's no > (hardware?) support for separate vlan accel toggle. Swipe the same hack > from the e1000 driver, and things start to behave again with rxvlan off. > > After patch: > > $ ping 192.168.99.91 > PING 192.168.99.91 (192.168.99.91) 56(84) bytes of data. > 64 bytes from 192.168.99.91: icmp_seq=1 ttl=64 time=0.591 ms > 64 bytes from 192.168.99.91: icmp_seq=2 ttl=64 time=0.335 ms > 64 bytes from 192.168.99.91: icmp_seq=3 ttl=64 time=0.417 ms > ^C > --- 192.168.99.91 ping statistics --- > 3 packets transmitted, 3 received, 0% packet loss, time 2000ms > rtt min/avg/max/mdev = 0.335/0.447/0.591/0.109 ms > > $ sudo ethtool -K ens1f0 rxvlan off > Actual changes: > rx-vlan-offload: off > tx-vlan-offload: off [requested on] > > $ ping 192.168.99.91 > PING 192.168.99.91 (192.168.99.91) 56(84) bytes of data. > 64 bytes from 192.168.99.91: icmp_seq=1 ttl=64 time=0.327 ms > 64 bytes from 192.168.99.91: icmp_seq=2 ttl=64 time=0.393 ms > 64 bytes from 192.168.99.91: icmp_seq=3 ttl=64 time=0.424 ms > ^C > --- 192.168.99.91 ping statistics --- > 3 packets transmitted, 3 received, 0% packet loss, time 1999ms > rtt min/avg/max/mdev = 0.327/0.381/0.424/0.043 ms > > Also slipped a related-ish fix to the kerneldoc text for > e1000e_vlan_strip_disable here... > > CC: Jeff Kirsher <jeffrey.t.kirs...@intel.com> > CC: intel-wired-...@lists.osuosl.org > CC: netdev@vger.kernel.org > Signed-off-by: Jarod Wilson <ja...@redhat.com> > --- > drivers/net/ethernet/intel/e1000e/netdev.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-)
Tested-by: Aaron Brown <aaron.f.br...@intel.com>