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

    From andrew bezella@21:1/5 to All on Mon May 12 21:00:01 2025
    hello -

    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. since installing the bpo kernel
    package is the cleanest way to replicate i brought it up on the debian- backports list as a first step. the suggestion there was to bounce it
    off this list.

    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 a 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
    # udevadm info -e | grep -F ID_NET_NAMING_SCHEME= | sort -u
    E: ID_NET_NAMING_SCHEME=v252
    # udevadm info -e | grep -F ID_NET_NAME_
    E: ID_NET_NAME_MAC=enx3cecefd0da34
    E: ID_NET_NAME_ONBOARD=eno1
    E: ID_NET_NAME_PATH=enp26s0f0
    E: ID_NET_NAME_MAC=enx3cecefd0da35
    E: ID_NET_NAME_ONBOARD=eno2
    E: ID_NET_NAME_PATH=enp26s0f1
    E: ID_NET_NAME_MAC=enx3cfdfeb49d30
    E: ID_NET_NAME_PATH=enp94s0f0
    E: ID_NET_NAME_MAC=enx3cfdfeb49d31
    E: ID_NET_NAME_PATH=enp94s0f1
    # dmesg | grep -F "renamed from"
    [ 32.323995] i40e 0000:1a:00.0 eno1: renamed from eth0
    [ 32.631978] i40e 0000:1a:00.1 eno2: renamed from eth1
    [ 32.891945] i40e 0000:5e:00.0 enp94s0f0: renamed from eth2
    [ 33.151972] i40e 0000:5e:00.1 enp94s0f1: renamed from eth3

    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
    # udevadm info -e | grep -F ID_NET_NAMING_SCHEME= | sort -u
    E: ID_NET_NAMING_SCHEME=v252
    # udevadm info -e | grep -F ID_NET_NAME_
    E: ID_NET_NAME_MAC=enx3cecefd0da34
    E: ID_NET_NAME_ONBOARD=eno1np0
    E: ID_NET_NAME_PATH=enp26s0f0np0
    E: ID_NET_NAME_MAC=enx3cecefd0da35
    E: ID_NET_NAME_ONBOARD=eno2np1
    E: ID_NET_NAME_PATH=enp26s0f1np1
    E: ID_NET_NAME_MAC=enx3cfdfeb49d30
    E: ID_NET_NAME_PATH=enp94s0f0np0
    E: ID_NET_NAME_MAC=enx3cfdfeb49d31
    E: ID_NET_NAME_PATH=enp94s0f1np1
    # dmesg | grep -F "renamed from"
    [ 31.392947] i40e 0000:1a:00.1 eno2np1: renamed from eth1
    [ 31.398904] i40e 0000:1a:00.0 eno1np0: renamed from eth0
    [ 31.405096] i40e 0000:5e:00.0 enp94s0f0np0: renamed from eth2
    [ 31.411265] i40e 0000:5e:00.1 enp94s0f1np1: renamed from eth3

    please let me know if there is any additional information that would be
    helpful or if you have insight into this. seems like it's either a bug
    that should be reported or a change that i'll need to adapt to (and
    perhaps documented in "Issues to be aware of for trixie"). also please
    let me know if there's a better forum/mailing list to bring this
    question up in.

    thanks in advance!

    andy

    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

    --
    andrew bezella <abezella@archive.org>
    internet archive

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)