summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-12-10 17:10:19 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-12-11 23:29:46 +0100
commitf7e81fd96fdfe0ac6dcdb72de43f7cb4720e363a (patch)
tree08094076dc1c03a1be9f10f443445a29cc6808b7 /man
parent912b4547b52f912ddd1fb3ad7c68621b3b8a94a0 (diff)
downloadsystemd-f7e81fd96fdfe0ac6dcdb72de43f7cb4720e363a.tar.gz
udev: introduce udev net_id "naming schemes"
With this we can stabilize how naming works for network interfaces. A user can request through a kernel cmdline option or an env var which scheme to follow. The idea is that installers use this to set into stone (a very soft stone though) the scheme used during installation so that interface naming doesn't change afterwards anymore. Why use env vars and kernel cmdline options, and not a config file of its own? Well, first of all there's no obvious existing one to use. But more importantly: I have the feeling that this logic is kind of an incomplete hack, and I simply don't want to do advertise this as a perfectly working solution. So far we used env vars for the non-so-official options and proper config files for the official stuff. Given how incomplete this logic is (i.e. the big variable for naming remains the kernel, which might expose sysfs attributes in newer versions that we check for and didn't exist in older versions — and other problems like this), I am simply not confident in giving this first-class exposure in a primary configuration file. Fixes: #10448
Diffstat (limited to 'man')
-rw-r--r--man/kernel-command-line.xml1
-rw-r--r--man/systemd-udevd.service.xml16
2 files changed, 17 insertions, 0 deletions
diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml
index 7e4b51eb9f..9d86bdf203 100644
--- a/man/kernel-command-line.xml
+++ b/man/kernel-command-line.xml
@@ -268,6 +268,7 @@
<term><varname>udev.event_timeout=</varname></term>
<term><varname>rd.udev.event_timeout=</varname></term>
<term><varname>net.ifnames=</varname></term>
+ <term><varname>net.naming-scheme=</varname></term>
<listitem>
<para>Parameters understood by the device event managing
diff --git a/man/systemd-udevd.service.xml b/man/systemd-udevd.service.xml
index 373ebcb944..b1409698ab 100644
--- a/man/systemd-udevd.service.xml
+++ b/man/systemd-udevd.service.xml
@@ -170,6 +170,22 @@
when possible. It is enabled by default; specifying 0 disables it.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>net.naming-scheme=</varname></term>
+ <listitem>
+ <para>Network interfaces are renamed to give them predictable names when possible (unless
+ <varname>net.ifnames=0</varname> is specified, see above). The names are derived from various device metadata
+ fields. Newer versions of <filename>systemd-udevd.service</filename> take more of these fields into account,
+ improving (and thus possibly changing) the names used for the same devices. With this kernel command line
+ option it is possible to pick a specific version of this algorithm. It expects a naming scheme identifier as
+ argument. Currently the following identifiers are known: <literal>v238</literal>, <literal>v239</literal>,
+ <literal>v240</literal> which each implement the naming scheme that was the default in the indicated systemd
+ version. Note that selecting a specific scheme is not sufficient to fully stabilize interface naming: the
+ naming is generally derived from driver attributes exposed by the kernel. As the kernel is updated,
+ previously missing attributes <filename>systemd-udevd.service</filename> is checking might appear, which
+ affects older name derivation algorithms, too.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
<!-- when adding entries here, consider also adding them
in kernel-command-line.xml -->