VLAN SR-IOV regression for IXGBE driver
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Xenial |
Fix Released
|
High
|
Dan Streetman | ||
Yakkety |
Invalid
|
Undecided
|
Unassigned | ||
Zesty |
Invalid
|
Undecided
|
Unassigned |
Bug Description
IXGBE driver, for SR-IOV setups, is misbehaving with VLANs.
Description from affected user:
- Create 2 networks (sriov 100 and 102 vlan)
# neutron net-create --provider:
# neutron net-create --provider:
- Create the subnets:
# neutron subnet-create PHY0_vlan_100 192.168.50.0/24
# neutron subnet-create PHY0_vlan_102 192.168.60.0/24
- Create the neutron ports:
# neutron port-create e450757f-
# neutron port-create 32c468ed-
- Boot 2 VMs on 2 different hosts (add only 1 port to each of them + ovs dhcp network):
# nova boot --flavor 789 --image ubuntu --nic net-id=
# nova boot --flavor 789 --image ubutnu --nic net-id=
- After the VMs booted, configure the VFs:
root@102-
root@100-
If I ping each other it works but it shouldn't work because in this case both of the VMs's interface (host VF) are in different vlans:
- Pinging shouldn't work because the VMs interface (host VF) are in different VLANs.
root@compute-0-5:~# ip link show eth6
8: eth6: <BROADCAST,
link/ether a0:36:9f:3f:1a:64 brd ff:ff:ff:ff:ff:ff
vf 5 MAC fa:16:3e:f0:2c:e2, vlan 100, spoof checking on, link-state auto
root@compute-0-6:~# ip link show eth5
8: eth5: <BROADCAST,
link/ether a0:36:9f:3f:20:88 brd ff:ff:ff:ff:ff:ff
vf 7 MAC fa:16:3e:ce:69:41, vlan 101, spoof checking on, link-state auto
But user can ping both VMs.
tags: | added: sts-sponsor |
tags: | removed: sts-sponsor |
Changed in linux (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
tags: |
added: sts-sru-done removed: sts-sru |
After doing kernel bisection with user:
** Problematic kernel range is in between Ubuntu- 4.4.0-0. 10..Ubuntu- 4.4.0-21. 37 **
BUG: https:/ /bugs.launchpad .net/intel/ +bug/1536473
Back-ported to Ubuntu-4.4.0-9.24 several ixgbe commits from v4.5-rc1 upstream, among them:
"ixgbe: Return error on failure to allocate mac_table" vf_vlans( )"
"ixgbe: Fix SR-IOV VLAN pool configuration"
"ixgbe: Simplify definitions for regidx and bit in set_vfta"
"ixgbe: Reduce VT code indent in set_vfta by introducing jump label"
"ixgbe: Simplify configuration of setting VLVF and VLVFB"
"ixgbe: Add support for adding/removing VLAN on PF bypassing the VLVF"
"ixgbe: Reorder search to work from the top down instead of bottom up"
"ixgbe: Add support for VLAN promiscuous with SR-IOV"
"ixgbe: Fix VLAN promisc in relation to SR-IOV"
"ixgbe: Clear stale pool mappings"
"ixgbe: Clean stale VLANs when changing port VLAN or resetting"
"ixgbe: Fix bugs in ixgbe_clear_
Compiling latest Ubuntu-4.4.0 with commits:
Revert "ixgbe: Return error on failure to allocate mac_table" vf_vlans( )"
Revert "ixgbe: Fix SR-IOV VLAN pool configuration"
Revert "ixgbe: Simplify definitions for regidx and bit in set_vfta"
Revert "ixgbe: Reduce VT code indent in set_vfta by introducing jump label"
Revert "ixgbe: Simplify configuration of setting VLVF and VLVFB"
Revert "ixgbe: Add support for adding/removing VLAN on PF bypassing the VLVF"
Revert "ixgbe: Reorder search to work from the top down instead of bottom up"
Revert "ixgbe: Add support for VLAN promiscuous with SR-IOV"
Revert "ixgbe: Fix VLAN promisc in relation to SR-IOV"
Revert "ixgbe: Clear stale pool mappings"
Revert "ixgbe: Clean stale VLANs when changing port VLAN or resetting"
Revert "ixgbe: Fix bugs in ixgbe_clear_
Made the problem to go away.