diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml index a5903c6d04..83293e5636 100644 --- a/man/systemd.net-naming-scheme.xml +++ b/man/systemd.net-naming-scheme.xml @@ -499,6 +499,20 @@ Same as naming scheme rhel-9.3. + + + rhel-9.5 + + Never generate a slot name when a PCI bridge is detected. + + Since version "rhel-9.0", we have generated slot-based names + for PCI multifunction devices, because we assumed that it is enough to use function numbers + to distinguish between devices. However, name conflict can occur if these devices are not + children of the same PCI bridge, e.g. there are multiple PCI bridges in the same slot. + + + + By default rhel-9.0 is used. diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h index 5f49157aaa..5bc071f8db 100644 --- a/src/shared/netif-naming-scheme.h +++ b/src/shared/netif-naming-scheme.h @@ -38,7 +38,8 @@ typedef enum NamingSchemeFlags { NAMING_16BIT_INDEX = 1 << 11, /* Allow full 16-bit for the onboard index */ NAMING_REPLACE_STRICTLY = 1 << 12, /* Use udev_replace_ifname() for NAME= rule */ NAMING_XEN_VIF = 1 << 13, /* Generate names for Xen netfront devices */ - NAMING_BRIDGE_MULTIFUNCTION_SLOT = 1 << 14, /* Use PCI hotplug slot information associated with bridge, but only if PCI device is multifunction */ + NAMING_BRIDGE_MULTIFUNCTION_SLOT = 1 << 14, /* Use PCI hotplug slot information associated with bridge, but only if PCI device is multifunction. + * This is disabled since rhel-9.5, as it seems not to work at least for some setups. See upstream issue #28929. */ NAMING_DEVICETREE_ALIASES = 1 << 15, /* Generate names from devicetree aliases */ NAMING_SR_IOV_R = 1 << 17, /* Use "r" suffix for SR-IOV VF representors */ @@ -72,6 +73,7 @@ typedef enum NamingSchemeFlags { NAMING_RHEL_9_2 = NAMING_RHEL_9_0, NAMING_RHEL_9_3 = NAMING_RHEL_9_0 | NAMING_SR_IOV_R, NAMING_RHEL_9_4 = NAMING_RHEL_9_3, + NAMING_RHEL_9_5 = NAMING_RHEL_9_4 & ~NAMING_BRIDGE_MULTIFUNCTION_SLOT, EXTRA_NET_NAMING_SCHEMES