diff --git a/NEWS b/NEWS
index 7ab2c88db9..c469ad650c 100644
--- a/NEWS
+++ b/NEWS
@@ -60,6 +60,13 @@ CHANGES WITH 255 in spe:
is now dropped, as it never worked, hence it should not be used by
anyone.
+ * The predictable network interface naming logic is extended to include
+ the SR-IOV-R "representor" information in network interface names.
+ This feature was intended for v254, but even though the code was
+ merged, the part that actually enabled the feature was forgotten.
+ It is now enabled by default and is part of the new "v255" naming
+ scheme.
+
Changes in systemd-analyze:
* "systemd-analyze plot" has gained tooltips on each unit name with
@@ -576,8 +583,11 @@ CHANGES WITH 254:
selects the default value of the per-network setting of the same
name.
- * The predictable network interface naming logic will now include
- SR-IOV-R "representor" information in network interface names.
+ * The predictable network interface naming logic was extended to
+ include SR-IOV-R "representor" information in network interface
+ names. Unfortunately, this feature was not enabled by default and can
+ only be enabled at compilation time by setting
+ -Ddefault-net-naming-scheme=v254.
* The DHCPv4 + DHCPv6 + IPv6 RA logic in networkd gained support for
the RFC8910 captive portal option.
diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml
index 8932c11f05..0eba646804 100644
--- a/man/systemd.net-naming-scheme.xml
+++ b/man/systemd.net-naming-scheme.xml
@@ -505,13 +505,23 @@
v254
- Naming was changed for SR-IOV virtual device representors.
+ Naming was changed for SR-IOV virtual device representors, optionally settable at
+ compilation time. The rslot suffix was added to
+ differentiate SR-IOV virtual device representors attached to a single physical device interface.
+ Because of a mistake, this scheme was not the the default scheme for systemd version
+ 254.
- The rslot suffix was added to differentiate SR-IOV
- virtual device representors attached to a single physical device interface.
-
+
+
+
-
+
+ v255
+
+ Naming was changed for SR-IOV virtual device representors to enable the
+ change introduced in v254 by default.
+
+
diff --git a/src/shared/netif-naming-scheme.c b/src/shared/netif-naming-scheme.c
index 26f012fe02..3118ca3efb 100644
--- a/src/shared/netif-naming-scheme.c
+++ b/src/shared/netif-naming-scheme.c
@@ -27,6 +27,7 @@ static const NamingScheme naming_schemes[] = {
{ "v252", NAMING_V252 },
{ "v253", NAMING_V253 },
{ "v254", NAMING_V254 },
+ { "v255", NAMING_V255 },
/* … add more schemes here, as the logic to name devices is updated … */
EXTRA_NET_NAMING_MAP
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
index 707c0d26f3..9160e457ed 100644
--- a/src/shared/netif-naming-scheme.h
+++ b/src/shared/netif-naming-scheme.h
@@ -54,7 +54,11 @@ typedef enum NamingSchemeFlags {
NAMING_V251 = NAMING_V250 | NAMING_BRIDGE_MULTIFUNCTION_SLOT,
NAMING_V252 = NAMING_V251 | NAMING_DEVICETREE_ALIASES,
NAMING_V253 = NAMING_V252 | NAMING_USB_HOST,
- NAMING_V254 = NAMING_V253 | NAMING_SR_IOV_R,
+ NAMING_V254 = NAMING_V253 | NAMING_SR_IOV_R, /* Despite the name, "v254" is NOT the default scheme
+ * for systemd version 254. It was added in a follow-up
+ * patch later. NAMING_SR_IOV_R is enabled by default in
+ * systemd version 255, naming scheme "v255". */
+ NAMING_V255 = NAMING_V254,
EXTRA_NET_NAMING_SCHEMES