add support for phys_port_name attribute in Xenial/16.04LTS
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
systemd (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Xenial |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
[Impact]
In Xenial/16.04LTS, one can't generate network interface name from "phys_port_name" attribute.
"phys_port_name" indicates the interface physical port name within the NIC.
[Test Case]
Check that udev (systemd-udevd) provides the phys_port_name property
Tests should be done on kernel versions: v4.15 (HWE)
# cat /sys/class/
yyy
Look if interface name contains the 'phys_port_name':
$ ip link show
....
3: ens3nyyy: <BROADCAST,
....
[Regression Potential]
* This piece of code is already in place in Bionic (systemd) and late.
AFAICT, nothing has been reported since then with regards to this feature.
* phys_port_name kernel support has been introduced in v4.1, but none of the current v4.4 Xenial kernel drivers uses it (minus rocker which is a test bed software switch for devel work on switchdev, it has no real function)
# Xenial - kernel v4.4
config-
No drivers uses the phys_port_name method at all + NET_SWITCHDEV is not even turned on.
# Xenial HWE - kernel v4.15
config-
Meaning if a regression arise, it will be limited to the HWE kernel (v4.15) and to the "Ethernet switch device driver model (switchdev)":
mlx5
mlxsw
bnxt
sfc (solarflar)
--
drivers/
--
broadcom/
broadcom/
cavium/
mellanox/
mellanox/
mellanox/
netronome/
netronome/
rocker/
sfc/efx.c: .ndo_get_
--
# On other more specific kernels the regression potential can be expanded to virtio-net driver as well.
# cloud-init may taint the result as it renames switchdev(s) after systemd at first initialization (even without the phys_port_name support) as follows:
(Testing on a sfc card / server deployed by MAAS)
syslog:May 20 22:12:43 OBFUSCATED_HOST kernel: [ 36.199674] sfc 0000:08:00.1 ens1f1: renamed from eth1 ## systemd
syslog:May 20 22:12:43 OBFUSCATED_HOST kernel: [ 37.128236] sfc 0000:08:00.0 ens1f0: renamed from eth0 ## systemd
syslog:May 20 22:12:43 OBFUSCATED_HOST kernel: [ 84.653460] sfc 0000:08:00.0 ens1f0np0: renamed from ens1f0 ## cloud-init
syslog:May 20 22:12:43 OBFUSCATED_HOST kernel: [ 84.697177] sfc 0000:08:00.1 ens1f1np1: renamed from ens1f1 ## cloud-init
cloud-init.
cloud-init.
systemd:
... OBFUSCATED_HOST systemd[1]: sys-subsystem-
# 1 concern was raise here by ddstreet:
https:/
Here's the result of the test I have performed:
https:/
This change indeed rename existing switchdev interfaces to add the 'phys_port_name' (if any) into it. I'm afraid this will be a non-acceptable behaviour change in stable release and won't be SRU'able.
More discussion on this topic to come ....
[Other informations]
https:/
https:/
[Original Description]
It has been brought to my attention that systemd in Xenial/16.04LTS doesn't have support for phys_port_name[0] attribute.
The support has been first introduced in systemd version "232" via:
https:/
https:/
Bionic and late have the necessary bits ( systemd >232), but not Xenial (229)[1]
Support for "phys_port_name" has been first introduced in the kernel with v4.1[2]
[0]
- https:/
- https:/
- https:/
[1]
# git systemd/systemd
git describe --contains 4887b656c22af05
v232~15
# rmadison
=> systemd | 229-4ubuntu21.27 | xenial-updates
systemd | 237-3ubuntu10.39 | bionic-updates
systemd | 240-6ubuntu5.8 | disco-updates
systemd | 242-7ubuntu3.7 | eoan-updates
systemd | 245.4-4ubuntu3 | focal
systemd | 245.4-4ubuntu3 | groovy
[2]
https:/
$ git describe --contains db24a9044ee1
v4.1-rc1
Changed in systemd (Ubuntu): | |
status: | New → Fix Released |
tags: | added: sts |
Changed in systemd (Ubuntu Xenial): | |
status: | New → Confirmed |
assignee: | nobody → Eric Desrochers (slashd) |
importance: | Undecided → Medium |
status: | Confirmed → In Progress |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in systemd (Ubuntu Xenial): | |
status: | In Progress → Won't Fix |
assignee: | Eric Desrochers (slashd) → nobody |
I think this would change the device name for existing devices, right? If so, that doesn't seem appropriate for an SRU, as it could break existing users that expect their device names to be consistent...