[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: network device names change w/linux-image-6.12.22+bpo-amd64



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


Reply to: