** Description changed: [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/net/<INTERFACE>/phys_port_name yyy Look if interface name contains the 'phys_port_name': $ ip link show .... 3: ens3nyyy: <BROADCAST,MULTICAST,UP,LOWER_UP> ... .... [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-4.4.0-142-generic:# CONFIG_NET_SWITCHDEV is not set No drivers uses the phys_port_name method at all + NET_SWITCHDEV is not even turned on. # Xenial HWE - kernel v4.15 config-4.15.0-99-generic:CONFIG_NET_SWITCHDEV=y 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/net/ethernet: -- broadcom/bnxt/bnxt_vfr.c: .ndo_get_phys_port_name = bnxt_vf_rep_get_phys_port_name broadcom/bnxt/bnxt.c: .ndo_get_phys_port_name = bnxt_get_phys_port_name cavium/liquidio/lio_vf_rep.c: .ndo_get_phys_port_name = lio_vf_rep_phys_port_name, mellanox/mlx5/core/en_rep.c: .ndo_get_phys_port_name = mlx5e_rep_get_phys_port_name, mellanox/mlxsw/switchx2.c: .ndo_get_phys_port_name = mlxsw_sx_port_get_phys_port_name, mellanox/mlxsw/spectrum.c: .ndo_get_phys_port_name = mlxsw_sp_port_get_phys_port_name, netronome/nfp/nfp_net_repr.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, netronome/nfp/nfp_net_common.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, rocker/rocker_main.c: .ndo_get_phys_port_name = rocker_port_get_phys_port_name, sfc/efx.c: .ndo_get_phys_port_name = efx_get_phys_port_name, -- # 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.log:2020-05-20 22:04:53,980 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f0', 'name', 'ens1f0np0'] with allowed return codes [0] (shell=False, capture=True) cloud-init.log:2020-05-20 22:04:54,016 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f1', 'name', 'ens1f1np1'] with allowed return codes [0] (shell=False, capture=True) - ** - Concern: + # 1 concern was raise here by ddstreet: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/1 - Result: + Here's the result of the test I have performed: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/5 - ** [Other informations] https://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 [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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 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://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net - https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.html - https://www.kernel.org/doc/Documentation/networking/switchdev.txt [1] # git systemd/systemd git describe --contains 4887b656c22af059d4e833de7b56544f24951184 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://github.com/torvalds/linux/commit/db24a9044ee1 $ git describe --contains db24a9044ee1 v4.1-rc1
** Description changed: [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/net/<INTERFACE>/phys_port_name yyy Look if interface name contains the 'phys_port_name': $ ip link show .... 3: ens3nyyy: <BROADCAST,MULTICAST,UP,LOWER_UP> ... .... [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-4.4.0-142-generic:# CONFIG_NET_SWITCHDEV is not set No drivers uses the phys_port_name method at all + NET_SWITCHDEV is not even turned on. # Xenial HWE - kernel v4.15 config-4.15.0-99-generic:CONFIG_NET_SWITCHDEV=y 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/net/ethernet: -- broadcom/bnxt/bnxt_vfr.c: .ndo_get_phys_port_name = bnxt_vf_rep_get_phys_port_name broadcom/bnxt/bnxt.c: .ndo_get_phys_port_name = bnxt_get_phys_port_name cavium/liquidio/lio_vf_rep.c: .ndo_get_phys_port_name = lio_vf_rep_phys_port_name, mellanox/mlx5/core/en_rep.c: .ndo_get_phys_port_name = mlx5e_rep_get_phys_port_name, mellanox/mlxsw/switchx2.c: .ndo_get_phys_port_name = mlxsw_sx_port_get_phys_port_name, mellanox/mlxsw/spectrum.c: .ndo_get_phys_port_name = mlxsw_sp_port_get_phys_port_name, netronome/nfp/nfp_net_repr.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, netronome/nfp/nfp_net_common.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, rocker/rocker_main.c: .ndo_get_phys_port_name = rocker_port_get_phys_port_name, sfc/efx.c: .ndo_get_phys_port_name = efx_get_phys_port_name, -- # 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.log:2020-05-20 22:04:53,980 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f0', 'name', 'ens1f0np0'] with allowed return codes [0] (shell=False, capture=True) cloud-init.log:2020-05-20 22:04:54,016 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f1', 'name', 'ens1f1np1'] with allowed return codes [0] (shell=False, capture=True) # 1 concern was raise here by ddstreet: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/1 Here's the result of the test I have performed: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/5 + This change indeed rename existing interfaces to add the + 'phys_port_name' 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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 [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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 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://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net - https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.html - https://www.kernel.org/doc/Documentation/networking/switchdev.txt [1] # git systemd/systemd git describe --contains 4887b656c22af059d4e833de7b56544f24951184 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://github.com/torvalds/linux/commit/db24a9044ee1 $ git describe --contains db24a9044ee1 v4.1-rc1 ** Description changed: [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/net/<INTERFACE>/phys_port_name yyy Look if interface name contains the 'phys_port_name': $ ip link show .... 3: ens3nyyy: <BROADCAST,MULTICAST,UP,LOWER_UP> ... .... [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-4.4.0-142-generic:# CONFIG_NET_SWITCHDEV is not set No drivers uses the phys_port_name method at all + NET_SWITCHDEV is not even turned on. # Xenial HWE - kernel v4.15 config-4.15.0-99-generic:CONFIG_NET_SWITCHDEV=y 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/net/ethernet: -- broadcom/bnxt/bnxt_vfr.c: .ndo_get_phys_port_name = bnxt_vf_rep_get_phys_port_name broadcom/bnxt/bnxt.c: .ndo_get_phys_port_name = bnxt_get_phys_port_name cavium/liquidio/lio_vf_rep.c: .ndo_get_phys_port_name = lio_vf_rep_phys_port_name, mellanox/mlx5/core/en_rep.c: .ndo_get_phys_port_name = mlx5e_rep_get_phys_port_name, mellanox/mlxsw/switchx2.c: .ndo_get_phys_port_name = mlxsw_sx_port_get_phys_port_name, mellanox/mlxsw/spectrum.c: .ndo_get_phys_port_name = mlxsw_sp_port_get_phys_port_name, netronome/nfp/nfp_net_repr.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, netronome/nfp/nfp_net_common.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, rocker/rocker_main.c: .ndo_get_phys_port_name = rocker_port_get_phys_port_name, sfc/efx.c: .ndo_get_phys_port_name = efx_get_phys_port_name, -- # 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.log:2020-05-20 22:04:53,980 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f0', 'name', 'ens1f0np0'] with allowed return codes [0] (shell=False, capture=True) cloud-init.log:2020-05-20 22:04:54,016 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f1', 'name', 'ens1f1np1'] with allowed return codes [0] (shell=False, capture=True) # 1 concern was raise here by ddstreet: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/1 Here's the result of the test I have performed: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/5 - This change indeed rename existing interfaces to add the - 'phys_port_name' into it. I'm afraid this will be a non-acceptable - behaviour change in stable release and won't be SRU'able. + 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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 [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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 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://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net - https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.html - https://www.kernel.org/doc/Documentation/networking/switchdev.txt [1] # git systemd/systemd git describe --contains 4887b656c22af059d4e833de7b56544f24951184 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://github.com/torvalds/linux/commit/db24a9044ee1 $ git describe --contains db24a9044ee1 v4.1-rc1 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1875927 Title: add support for phys_port_name attribute in Xenial/16.04LTS Status in systemd package in Ubuntu: Fix Released Status in systemd source package in Xenial: In Progress 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/net/<INTERFACE>/phys_port_name yyy Look if interface name contains the 'phys_port_name': $ ip link show .... 3: ens3nyyy: <BROADCAST,MULTICAST,UP,LOWER_UP> ... .... [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-4.4.0-142-generic:# CONFIG_NET_SWITCHDEV is not set No drivers uses the phys_port_name method at all + NET_SWITCHDEV is not even turned on. # Xenial HWE - kernel v4.15 config-4.15.0-99-generic:CONFIG_NET_SWITCHDEV=y 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/net/ethernet: -- broadcom/bnxt/bnxt_vfr.c: .ndo_get_phys_port_name = bnxt_vf_rep_get_phys_port_name broadcom/bnxt/bnxt.c: .ndo_get_phys_port_name = bnxt_get_phys_port_name cavium/liquidio/lio_vf_rep.c: .ndo_get_phys_port_name = lio_vf_rep_phys_port_name, mellanox/mlx5/core/en_rep.c: .ndo_get_phys_port_name = mlx5e_rep_get_phys_port_name, mellanox/mlxsw/switchx2.c: .ndo_get_phys_port_name = mlxsw_sx_port_get_phys_port_name, mellanox/mlxsw/spectrum.c: .ndo_get_phys_port_name = mlxsw_sp_port_get_phys_port_name, netronome/nfp/nfp_net_repr.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, netronome/nfp/nfp_net_common.c: .ndo_get_phys_port_name = nfp_port_get_phys_port_name, rocker/rocker_main.c: .ndo_get_phys_port_name = rocker_port_get_phys_port_name, sfc/efx.c: .ndo_get_phys_port_name = efx_get_phys_port_name, -- # 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.log:2020-05-20 22:04:53,980 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f0', 'name', 'ens1f0np0'] with allowed return codes [0] (shell=False, capture=True) cloud-init.log:2020-05-20 22:04:54,016 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens1f1', 'name', 'ens1f1np1'] with allowed return codes [0] (shell=False, capture=True) # 1 concern was raise here by ddstreet: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/1 Here's the result of the test I have performed: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/comments/5 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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 [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://github.com/systemd/systemd/commit/4887b656c22af059d4e833de7b56544f24951184 https://github.com/systemd/systemd/pull/4506 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://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net - https://www.freedesktop.org/software/systemd/man/systemd.net-naming-scheme.html - https://www.kernel.org/doc/Documentation/networking/switchdev.txt [1] # git systemd/systemd git describe --contains 4887b656c22af059d4e833de7b56544f24951184 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://github.com/torvalds/linux/commit/db24a9044ee1 $ git describe --contains db24a9044ee1 v4.1-rc1 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1875927/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp