Baremetal interface names changed after switching to metal3-suse
Summary
With the metal3 unit from sylva, the interface names of Dell BM servers used to deploy a workload cluster were named like ens1f0 (slot naming scheme).
After switching to metal3-suse, the interface names of the same server become like enp81s0f0 (name path).
The python introspection agent used by metal3-suse is booted with the command line parameters:
initrd=/initrd text nofb nomodeset vga=normal ipa-insecure=1 console=tty1 suse.autologin=tty0 net.ifnames=1 systemd.journald.forward_to_console=yes ipa-inspection-collectors=default,logs ipa-enable-vlan-interfaces=all ipa-inspection-dhcp-all-interfaces=1 ipa-collect-lldp=1 net.ifnames=1 ipa-inspection-callback-url=http://x.x.x.x:5050/v1/continue ipa-api-url=http://x.x.x.x:6385 ipa-agent-token=xxxxxx ipa-debug=1 boot_method=vmedia -- BOOT_IMAGE=/vmlinuz
The following log can be found in the IPA boot logs:
localhost.localdomain (udev-worker)[701]: Using default interface naming scheme 'sle15-sp4'.
a2dcdbf9-122e-4bec-b30b-94a63a49e9e7_20240226-151629.819965.tar.gz: Feb 26 15:14:12 localhost.localdomain kernel: ice 0000:51:00.0 enp81s0f0: renamed from eth0
A udev info -e returns during the introspection returns the following result:
P: /devices/pci0000:50/0000:50:02.0/0000:51:00.0/net/enp81s0f0
L: 0
E: DEVPATH=/devices/pci0000:50/0000:50:02.0/0000:51:00.0/net/enp81s0f0
E: SUBSYSTEM=net
E: INTERFACE=enp81s0f0
E: IFINDEX=2
E: USEC_INITIALIZED=29457954
E: ID_NET_NAMING_SCHEME=v249
E: ID_NET_NAME_MAC=enxb49691cd8678
E: ID_OUI_FROM_DATABASE=Intel Corporate
E: ID_NET_NAME_PATH=enp81s0f0
E: ID_BUS=pci
E: ID_VENDOR_ID=0x8086
E: ID_MODEL_ID=0x159b
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_MODEL_FROM_DATABASE=Ethernet Controller E810-XXV for SFP (Ethernet 25G 2P E810-XXV Adapter)
E: ID_PATH=pci-0000:51:00.0
E: ID_PATH_TAG=pci-0000_51_00_0
E: ID_NET_DRIVER=ice
E: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
E: ID_NET_NAME=enp81s0f0
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp81s0f0
E: TAGS=:systemd:
NB. The naming scheme was modified for a test by adding the net.naming-scheme=v249 to see if it would change anything, but it doesn't.
In contrast, the following is seen with a udevadm info -e during an introspection with the former metal3 chart from sylva:
R: 0
U: net
I: 6
E: DEVPATH=/devices/pci0000:50/0000:50:02.0/0000:51:00.0/net/ens2f0
E: SUBSYSTEM=net
E: INTERFACE=ens2f0
E: IFINDEX=6
E: USEC_INITIALIZED=73932990
E: ID_NET_NAMING_SCHEME=rhel-9.0
E: ID_NET_NAME_MAC=enxb49691cd8678
E: ID_OUI_FROM_DATABASE=Intel Corporate
E: ID_NET_NAME_PATH=enp81s0f0
E: ID_NET_NAME_SLOT=ens2f0
E: ID_BUS=pci
E: ID_VENDOR_ID=0x8086
E: ID_MODEL_ID=0x159b
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_MODEL_FROM_DATABASE=Ethernet Controller E810-XXV for SFP (Ethernet 25G 2P E810-XXV Adapter)
E: ID_PATH=pci-0000:51:00.0
E: ID_PATH_TAG=pci-0000_51_00_0
E: ID_NET_DRIVER=ice
E: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
E: ID_NET_NAME=ens2f0
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/ens2f0
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
The slot identifier is present and takes precedence over the path identifier, and the interfaces names
Setting the interface names in the values with the path identifier leads to a successful deployment.
But for consistency, it would be preferable to use the same naming scheme for all the sylva deployments, and use the slot identifier that has higher level of precedence if possible.
Is there a way to use the slot naming scheme in the SLES introspection image, maybe a suse specific value for net.naming-scheme or other?
cc: @flbonin , @tmonguillon