mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
Merge pull request #29588 from keszybz/net-naming-scheme-255
Untangle the net-naming-scheme mess with SR-IOV-R "representor" information
This commit is contained in:
14
NEWS
14
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.
|
||||
|
||||
@@ -505,13 +505,23 @@
|
||||
<varlistentry>
|
||||
<term><constant>v254</constant></term>
|
||||
|
||||
<listitem><para>Naming was changed for SR-IOV virtual device representors.</para>
|
||||
<listitem><para>Naming was changed for SR-IOV virtual device representors, optionally settable at
|
||||
compilation time. The <literal>r<replaceable>slot</replaceable></literal> suffix was added to
|
||||
differentiate SR-IOV virtual device representors attached to a single physical device interface.
|
||||
Because of a mistake, this scheme was <emphasis>not the the default scheme for systemd version
|
||||
254</emphasis>.</para>
|
||||
|
||||
<para>The <literal>r<replaceable>slot</replaceable></literal> suffix was added to differentiate SR-IOV
|
||||
virtual device representors attached to a single physical device interface.
|
||||
</para>
|
||||
<xi:include href="version-info.xml" xpointer="v255"/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v254"/>
|
||||
<varlistentry>
|
||||
<term><constant>v255</constant></term>
|
||||
|
||||
<listitem><para>Naming was changed for SR-IOV virtual device representors to enable the
|
||||
change introduced in <constant>v254</constant> by default.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v255"/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
@@ -767,10 +767,12 @@ conf.set('EXTRA_NET_NAMING_SCHEMES', ' '.join(extra_net_naming_schemes))
|
||||
conf.set('EXTRA_NET_NAMING_MAP', ' '.join(extra_net_naming_map))
|
||||
|
||||
default_net_naming_scheme = get_option('default-net-naming-scheme')
|
||||
conf.set_quoted('DEFAULT_NET_NAMING_SCHEME', default_net_naming_scheme)
|
||||
conf.set_quoted('DEFAULT_NET_NAMING_SCHEME', default_net_naming_scheme,
|
||||
description : 'Default naming scheme as a string')
|
||||
if default_net_naming_scheme != 'latest'
|
||||
conf.set('_DEFAULT_NET_NAMING_SCHEME_TEST',
|
||||
'NAMING_' + default_net_naming_scheme.underscorify().to_upper())
|
||||
conf.set('_DEFAULT_NET_NAMING_SCHEME',
|
||||
'NAMING_' + default_net_naming_scheme.underscorify().to_upper(),
|
||||
description : 'Default naming scheme as a constant')
|
||||
endif
|
||||
|
||||
time_epoch = get_option('time-epoch')
|
||||
|
||||
@@ -6,13 +6,6 @@
|
||||
#include "string-util.h"
|
||||
#include "string-table.h"
|
||||
|
||||
#ifdef _DEFAULT_NET_NAMING_SCHEME_TEST
|
||||
/* The primary purpose of this check is to verify that _DEFAULT_NET_NAMING_SCHEME_TEST
|
||||
* is a valid identifier. If an invalid name is given during configuration, this will
|
||||
* fail with a name error. */
|
||||
assert_cc(_DEFAULT_NET_NAMING_SCHEME_TEST >= 0);
|
||||
#endif
|
||||
|
||||
static const NamingScheme naming_schemes[] = {
|
||||
{ "v238", NAMING_V238 },
|
||||
{ "v239", NAMING_V239 },
|
||||
@@ -27,6 +20,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
|
||||
@@ -87,23 +81,23 @@ const NamingScheme* naming_scheme(void) {
|
||||
}
|
||||
|
||||
static const char* const name_policy_table[_NAMEPOLICY_MAX] = {
|
||||
[NAMEPOLICY_KERNEL] = "kernel",
|
||||
[NAMEPOLICY_KEEP] = "keep",
|
||||
[NAMEPOLICY_KERNEL] = "kernel",
|
||||
[NAMEPOLICY_KEEP] = "keep",
|
||||
[NAMEPOLICY_DATABASE] = "database",
|
||||
[NAMEPOLICY_ONBOARD] = "onboard",
|
||||
[NAMEPOLICY_SLOT] = "slot",
|
||||
[NAMEPOLICY_PATH] = "path",
|
||||
[NAMEPOLICY_MAC] = "mac",
|
||||
[NAMEPOLICY_ONBOARD] = "onboard",
|
||||
[NAMEPOLICY_SLOT] = "slot",
|
||||
[NAMEPOLICY_PATH] = "path",
|
||||
[NAMEPOLICY_MAC] = "mac",
|
||||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(name_policy, NamePolicy);
|
||||
|
||||
static const char* const alternative_names_policy_table[_NAMEPOLICY_MAX] = {
|
||||
[NAMEPOLICY_DATABASE] = "database",
|
||||
[NAMEPOLICY_ONBOARD] = "onboard",
|
||||
[NAMEPOLICY_SLOT] = "slot",
|
||||
[NAMEPOLICY_PATH] = "path",
|
||||
[NAMEPOLICY_MAC] = "mac",
|
||||
[NAMEPOLICY_ONBOARD] = "onboard",
|
||||
[NAMEPOLICY_SLOT] = "slot",
|
||||
[NAMEPOLICY_PATH] = "path",
|
||||
[NAMEPOLICY_MAC] = "mac",
|
||||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(alternative_names_policy, NamePolicy);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -4,10 +4,19 @@
|
||||
#include "string-util.h"
|
||||
#include "tests.h"
|
||||
|
||||
#ifdef _DEFAULT_NET_NAMING_SCHEME
|
||||
/* The primary purpose of this check is to verify that _DEFAULT_NET_NAMING_SCHEME_TEST
|
||||
* is a valid identifier. If an invalid name is given during configuration, this will
|
||||
* fail with a name error. */
|
||||
assert_cc(_DEFAULT_NET_NAMING_SCHEME >= 0);
|
||||
#endif
|
||||
|
||||
TEST(default_net_naming_scheme) {
|
||||
const NamingScheme *n;
|
||||
assert_se(n = naming_scheme_from_name(DEFAULT_NET_NAMING_SCHEME));
|
||||
log_info("default → %s", n->name);
|
||||
|
||||
assert_se(naming_scheme_from_name(n->name) == n);
|
||||
}
|
||||
|
||||
TEST(naming_scheme_conversions) {
|
||||
|
||||
Reference in New Issue
Block a user