Failure to get the correct UpLink Representor
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Cloud Archive |
Fix Released
|
Undecided
|
Unassigned | ||
Ussuri |
Fix Released
|
Undecided
|
Frode Nordahl | ||
Victoria |
Fix Released
|
Undecided
|
Unassigned | ||
os-vif |
Fix Released
|
Undecided
|
Mamduh | ||
Victoria |
Fix Committed
|
Undecided
|
sean mooney | ||
libvirt (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hirsute |
Fix Released
|
Undecided
|
Unassigned | ||
Impish |
Fix Released
|
Undecided
|
Unassigned | ||
python-os-vif (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hirsute |
Fix Released
|
Undecided
|
Unassigned | ||
Impish |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
An update to the mlx5_core driver [1] which will be made available to users of stable releases both through HWE kernels and DKMS packages provided by NVIDIA/Mellanox [2] makes some assumptions about sysfs layout made by OS-VIF and Libvirt apparent.
To allow users with this hardware to continue to enjoy their existing systems with the most recent drivers updates are required to os-vif and libvirt.
Without this update these systems will stop functioning when upgrading to the new mlx5_core driver.
[Test Plan]
Note: Hardware making use of the mlx5_core driver with support for HWOL is required to test these changes.
1. Deploy OpenStack on machines with HWOL enabled using kernel without [1]
2. Create an instance using an HWOL port
3. Confirm the instance can start and that it has connectivity
4. Upgrade to kernel with [1] and re-confirm
[Regression Potential]
For OS-VIF the changes are made to code paths used exclusively by consumers of this type of hardware and HWOL enabled. They are also made in a backward compatible way so that it works both with the old and new driver.
For Libvirt the change is made in such a way that it will behave as before when used to look up hardware that populates net/phys_port_id. When used with hardware that do not populate net/phys_port_id but use net_phys_port_name instead, which is typical for the hardware in question, the new behavior is used.
[Original Bug Description]
Due to new kernel patch here [1], the PF and VF representors are linked to their parent PCI device.
Old Structure:
The structure of VF's PCI Address/physfn/net contains only the PF of that VF
$ ls /sys/bus/
enp2s0f0
$ ls -l /sys/class/net
...
lrwxrwxrwx 1 root root 0 Aug 17 11:11 enp2s0f0_0 -> ../../devices/
lrwxrwxrwx 1 root root 0 Aug 17 11:11 enp2s0f0_1 -> ../../devices/
lrwxrwxrwx 1 root root 0 Aug 17 11:11 enp2s0f0_2 -> ../../devices/
lrwxrwxrwx 1 root root 0 Aug 17 11:11 enp2s0f0_3 -> ../../devices/
...
New Structure:
The structure of VF's PCI Address/physfn/net contains the PF of that VF and the VF representors
$ ls /sys/bus/
enp3s0f0 enp3s0f0_0 enp3s0f0_1 enp3s0f0_2 enp3s0f0_3
$ ls -l /sys/class/net
...
lrwxrwxrwx. 1 root root 0 Aug 17 08:43 enp3s0f0_0 -> ../../devices/
lrwxrwxrwx. 1 root root 0 Aug 17 08:43 enp3s0f0_1 -> ../../devices/
lrwxrwxrwx. 1 root root 0 Aug 17 08:43 enp3s0f0_2 -> ../../devices/
lrwxrwxrwx. 1 root root 0 Aug 17 08:43 enp3s0f0_3 -> ../../devices/
...
[1] https:/
[2] https:/
Related branches
- Corey Bryant: Approve
-
Diff: 687 lines (+661/-0)4 files modifieddebian/changelog (+9/-0)
debian/patches/Fix-os-vif-fails-to-get-the-correct-UpLink-Representor.patch (+168/-0)
debian/patches/Refactor-code-of-linux_net-to-more-cleaner-and-increase-performace.patch (+482/-0)
debian/patches/series (+2/-0)
- Christian Ehrhardt (community): Approve
- Canonical Server: Pending requested
-
Diff: 287 lines (+259/-0)4 files modifieddebian/changelog (+9/-0)
debian/patches/series (+2/-0)
debian/patches/ubuntu/lp-1892132-Add-phys_port_name-support-on-virPCIGetNetName.patch (+133/-0)
debian/patches/ubuntu/lp-1892132-add-virNetDevGetPhysPortName.patch (+115/-0)
- Christian Ehrhardt (community): Approve
- Canonical Server: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 297 lines (+269/-0)4 files modifieddebian/changelog (+9/-0)
debian/patches/series (+2/-0)
debian/patches/ubuntu/lp-1892132-Add-phys_port_name-support-on-virPCIGetNetName.patch (+138/-0)
debian/patches/ubuntu/lp-1892132-add-virNetDevGetPhysPortName.patch (+120/-0)
- Corey Bryant: Pending requested
- Chris MacNaughton: Pending requested
- Ubuntu OpenStack uploaders: Pending requested
-
Diff: 696 lines (+670/-0)4 files modifieddebian/changelog (+9/-0)
debian/patches/Fix-os-vif-fails-to-get-the-correct-UpLink-Representor.patch (+168/-0)
debian/patches/Refactor-code-of-linux_net-to-more-cleaner-and-increase-performace.patch (+491/-0)
debian/patches/series (+2/-0)
summary: |
- os-vif fails to get the correct VF's UpLink Representor + os-vif fails to get the correct UpLink Representor |
description: | updated |
tags: | added: hardware-offloaded-ovs |
tags: | added: ovs |
summary: |
- os-vif fails to get the correct UpLink Representor + Failure to get the correct UpLink Representor |
Changed in libvirt (Ubuntu Impish): | |
status: | New → Fix Released |
Changed in python-os-vif (Ubuntu Impish): | |
status: | New → Fix Released |
Changed in python-os-vif (Ubuntu Hirsute): | |
status: | New → Fix Released |
Changed in python-os-vif (Ubuntu Groovy): | |
assignee: | nobody → Frode Nordahl (fnordahl) |
status: | New → In Progress |
Changed in python-os-vif (Ubuntu Focal): | |
assignee: | nobody → Frode Nordahl (fnordahl) |
status: | New → In Progress |
Changed in libvirt (Ubuntu Hirsute): | |
assignee: | nobody → Frode Nordahl (fnordahl) |
status: | New → In Progress |
Changed in libvirt (Ubuntu Groovy): | |
assignee: | nobody → Frode Nordahl (fnordahl) |
status: | New → In Progress |
Changed in libvirt (Ubuntu Focal): | |
assignee: | nobody → Frode Nordahl (fnordahl) |
status: | New → In Progress |
description: | updated |
Changed in libvirt (Ubuntu Groovy): | |
assignee: | Frode Nordahl (fnordahl) → nobody |
Changed in python-os-vif (Ubuntu Groovy): | |
assignee: | Frode Nordahl (fnordahl) → nobody |
Changed in cloud-archive: | |
status: | New → Fix Released |
Changed in libvirt (Ubuntu Hirsute): | |
assignee: | Frode Nordahl (fnordahl) → nobody |
Changed in libvirt (Ubuntu Focal): | |
assignee: | Frode Nordahl (fnordahl) → nobody |
tags: | added: verification-ussuri-needed |
Changed in python-os-vif (Ubuntu Focal): | |
assignee: | Frode Nordahl (fnordahl) → nobody |
Fix proposed to branch: master /review. opendev. org/746836
Review: https:/