Hello Andrew, [I first answered to Andrew only, here is a resend to the list. Sorry for the duplicate.] On 5/9/25 18:44, andrew bezella wrote: > i'm running into a situation where the systemd predictable network > device names change on bookworm when running the 6.12.22+bpo-amd64 > kernel vs the default 6.1 series (6.1.0-34-amd64). i don't see > anything in `/usr/share/doc/linux-image-6.12.22+bpo- > amd64/NEWS.Debian.gz` and haven't found any obvious comment in > `changelog.gz` (although i could definitely be missing something in the > latter). > > i should be clear that it isn't limited to the bpo kernel; a > trixie/testing system on this hardware has the unexpected (to me) > interface names and installing the 6.12 kernel .deb from > trixie/testing on bookworm has the same behavior. but i thought i'd > bring it up here as a first step since installing the bpo kernel > package is the cleanest way to replicate. > > with the 6.1 kernel the network interfaces are named `eno1`, eno2`, > `enp94s0f0`, and `enp94s0f1` but once booted into the 6.12 kernel they > are named `eno1np0`, `eno2np1`, `enp94s0f0np0`, and `enp94s0f1np1` > (i.e., appending "npX"). the `eno[12]` interfaces are Ethernet > Connection X722 for 10GBASE-T and the `enp94s0f[01]` interfaces are > Ethernet Controller XL710 for 40GbE QSFP+. all use the i40e driver. > > i found a similar issue attributed to a change/update in devlink > support in the driver[1] but i haven't found a "smoking gun" changelog > entry. it's possible that the change may have occurred between the 6.5 > and 6.8 kernels[2]. i believe it was also reported in the context of > FAI when trying to install ubuntu 24.04 from a bookworm nfsroot[3]. > > on some level it looks like unintended behavior or a bug. apart from > its disruptive nature, the `enoX` interface names under 6.12 appear to > violate the policy for the on-board naming schemes[4] that says on- > board devices should end in "o[[:digit:]]+" (paraphrased as it was > confusing w/o italics). > > on a freshly-installed bookworm system: > # cat /etc/debian_version > 12.10 > # uname -vr > 6.1.0-34-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.135-1 (2025-04-25) > # ip l show | grep -F " en" | cut -d: -f2 > eno1 > altname enp26s0f0 > eno2 > altname enp26s0f1 > enp94s0f0 > enp94s0f1 > [...] > > and after a reboot into the bpo kernel: > # cat /etc/debian_version > 12.10 > # uname -vr > 6.12.22+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.22-1~bpo12+1 (2025-04-25) > # ip l show | grep -F " en" | cut -d: -f2 > eno1np0 > altname enp26s0f0np0 > eno2np1 > altname enp26s0f1np1 > enp94s0f0np0 > enp94s0f1np1 > [...] > 1. https://serverfault.com/a/1143604 > 2. https://forum.proxmox.com/threads/the-joys-of-spontaneous-network-interface-renaming.153817/post-699537 > 3. https://www.mail-archive.com/linux-fai@uni-koeln.de/msg08299.html > 4. https://www.freedesktop.org/software/systemd/man/latest/systemd.net-naming-scheme.html The link in [4] has: | When creating names for network cards, some naming schemes use data from sysfs | populated by the kernel. This means that although a specific naming scheme in | udev is picked, the network card's name can still change when a new kernel | version adds a new sysfs attribute. For example if kernel starts setting the | phys_port_name, udev will append the "nphys_port_name" suffix to the device name. I guess this is what happened here. So I would expect that you have a phys_port_name sysfs property on 6.12 for your network devices that you don't have on 6.1. Best regards Uwe
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature