mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
man: describe naming schemes in a new man page
I decided to make this a separate man page because it is freakin' long. This content could equally well go in systemd-udevd.service(8), systemd.link(5), or a new man page for the net_id builtin. v2: - rename to systemd.net-naming-scheme - add udevadm test-builtin net_id example
This commit is contained in:
parent
87b3c9193d
commit
0b1e5b6ed8
@ -824,6 +824,7 @@ manpages = [
|
||||
['systemd.kill', '5', [], ''],
|
||||
['systemd.link', '5', [], ''],
|
||||
['systemd.mount', '5', [], ''],
|
||||
['systemd.net-naming-scheme', '7', [], ''],
|
||||
['systemd.netdev', '5', [], 'ENABLE_NETWORKD'],
|
||||
['systemd.network', '5', [], 'ENABLE_NETWORKD'],
|
||||
['systemd.nspawn', '5', [], ''],
|
||||
|
@ -171,15 +171,12 @@
|
||||
<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. In addition,
|
||||
<literal>latest</literal> may be used to designate the latest scheme known (to this particular
|
||||
version of <filename>systemd-udevd.service</filename>).</para>
|
||||
<varname>net.ifnames=0</varname> is specified, see above). With this kernel command line option it
|
||||
is possible to pick a specific version of this algorithm and override the default chosen at
|
||||
compilation time. Expects one of the naming scheme identifiers listed in
|
||||
<citerefentry><refentrytitle>systemd.net-naming-scheme</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
||||
or <literal>latest</literal> to select the latest scheme known (to this particular version of
|
||||
<filename>systemd-udevd.service</filename>).</para>
|
||||
|
||||
<para>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
|
||||
@ -188,8 +185,7 @@
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<!-- when adding entries here, consider also adding them
|
||||
in kernel-command-line.xml -->
|
||||
<!-- when adding entries here, consider also adding them in kernel-command-line.xml -->
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -278,6 +278,7 @@
|
||||
<para>The name is set based on information given by
|
||||
the firmware for on-board devices, as exported by the
|
||||
udev property <varname>ID_NET_NAME_ONBOARD</varname>.
|
||||
See <citerefentry><refentrytitle>systemd.net-naming-scheme</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -287,6 +288,7 @@
|
||||
<para>The name is set based on information given by
|
||||
the firmware for hot-plug devices, as exported by the
|
||||
udev property <varname>ID_NET_NAME_SLOT</varname>.
|
||||
See <citerefentry><refentrytitle>systemd.net-naming-scheme</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -295,7 +297,9 @@
|
||||
<listitem>
|
||||
<para>The name is set based on the device's physical
|
||||
location, as exported by the udev property
|
||||
<varname>ID_NET_NAME_PATH</varname>.</para>
|
||||
<varname>ID_NET_NAME_PATH</varname>.
|
||||
See <citerefentry><refentrytitle>systemd.net-naming-scheme</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -303,7 +307,9 @@
|
||||
<listitem>
|
||||
<para>The name is set based on the device's persistent
|
||||
MAC address, as exported by the udev property
|
||||
<varname>ID_NET_NAME_MAC</varname>.</para>
|
||||
<varname>ID_NET_NAME_MAC</varname>.
|
||||
See <citerefentry><refentrytitle>systemd.net-naming-scheme</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
418
man/systemd.net-naming-scheme.xml
Normal file
418
man/systemd.net-naming-scheme.xml
Normal file
@ -0,0 +1,418 @@
|
||||
<?xml version='1.0'?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
|
||||
|
||||
<refentry id="systemd.net-naming-scheme">
|
||||
<refentryinfo>
|
||||
<title>systemd.net-naming-scheme</title>
|
||||
<productname>systemd</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>systemd.net-naming-scheme</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>systemd.net-naming-scheme</refname>
|
||||
<refpurpose>Network device naming schemes</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>Network interfaces may be renamed to give them predictable names when there's enough information to
|
||||
generate appropriate names and the use of certain types of names is configured. This page describes the
|
||||
first part, i.e. what possible names may be generated. Those names are generated by the
|
||||
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
builtin <command>net_id</command> and exported as udev properties
|
||||
(<varname>ID_NET_NAME_ONBOARD=</varname>, <varname>ID_NET_LABEL_ONBOARD=</varname>,
|
||||
<varname>ID_NET_NAME_PATH=</varname>, <varname>ID_NET_NAME_SLOT=</varname>).</para>
|
||||
|
||||
<para>Names are derived from various device metadata attributes. Newer versions of udev take more of
|
||||
these attributes into account, improving (and thus possibly changing) the names used for the same
|
||||
devices. Differents version of the naming rules are called "naming schemes". The default naming scheme is
|
||||
chosen at compilation time. Usually this will be the latest implemented version, but it is also possible
|
||||
to set one of the older versions to preserve compatibility. This may be useful for example for
|
||||
distributions, which may introduce new versions of systemd in stable releases without changing the naming
|
||||
scheme. The naming scheme may also be overriden using the <varname>net.naming-scheme=</varname> kernel
|
||||
command line switch, see
|
||||
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
Available naming schemes are described below.</para>
|
||||
|
||||
<para>After the udev proprties have been generated, appropriate udev rules may be used to actually rename
|
||||
devices based on those properties. See the description of <varname>NamePolicy=</varname> in
|
||||
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Naming</title>
|
||||
|
||||
<para>All names start with a two-character prefix that signifies the interface type.</para>
|
||||
|
||||
<table>
|
||||
<title>Two character prefixes based on the type of interface</title>
|
||||
|
||||
<tgroup cols='2'>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Prefix</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><constant>en</constant></entry>
|
||||
<entry>Ethernet</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>ib</constant></entry>
|
||||
<entry>InfiniBand</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>sl</constant></entry>
|
||||
<entry>serial line IP (slip)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>wl</constant></entry>
|
||||
<entry>Wireless local area network (WLAN)</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>ww</constant></entry>
|
||||
<entry>Wireless wide area network (WWAN)</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>The udev <command>net_id</command> builtin exports the following udev device properties:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><varname>ID_NET_NAME_ONBOARD=<replaceable>prefix</replaceable><constant>o</constant><replaceable>number</replaceable></varname></term>
|
||||
|
||||
<listitem><para>This name is set based on the ordering information given by the firmware for
|
||||
on-board devices. The name consists of the prefix, letter <constant>o</constant>, and a number
|
||||
specified by the firmware. This is only available for PCI devices.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ID_NET_LABEL_ONBOARD=<replaceable>prefix</replaceable> <replaceable>label</replaceable></varname></term>
|
||||
|
||||
<listitem><para>This property is set based on label given by the firmware for on-board devices. The
|
||||
name consists of the prefix concatenated with the label. This is only available for PCI devices.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ID_NET_NAME_MAC=<replaceable>prefix</replaceable><constant>x</constant><replaceable>AABBCCDDEEFF</replaceable></varname></term>
|
||||
|
||||
<listitem><para>This name consists of the prefix, letter <constant>x</constant>, and 12 hexadecimal
|
||||
digits of the MAC address. It is available if the device has a fixed MAC address. Because this name
|
||||
is based on an attribute of the card itself, it remains "stable" when the device is moved (even
|
||||
between machines), but will change when the hardware is replaced.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ID_NET_NAME_SLOT=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]</varname></term>
|
||||
<term><varname>ID_NET_NAME_SLOT=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]<constant>b</constant><replaceable>number</replaceable></varname></term>
|
||||
<term><varname>ID_NET_NAME_SLOT=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]<constant>u</constant><replaceable>port</replaceable>…[<constant>c</constant><replaceable>config</replaceable>][<constant>i</constant><replaceable>interface</replaceable>]</varname></term>
|
||||
<term><varname>ID_NET_NAME_SLOT=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]<constant>v</constant><replaceable>slot</replaceable></varname></term>
|
||||
|
||||
<listitem><para>This property describes the slot position. Different schemes are used depending on
|
||||
the bus type, as described in the table below. In all cases, PCI slot information must be known. In
|
||||
case of USB, BCMA, and SR-VIO devices, the full name consists of the prefix, PCI slot identifier,
|
||||
and USB or BCMA or SR-VIO slot identifier. The first two parts are denoted as "…" in the table
|
||||
below.</para>
|
||||
|
||||
<table>
|
||||
<title>Slot naming schemes</title>
|
||||
|
||||
<tgroup cols='2'>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Format</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><replaceable>prefix</replaceable> [<constant>P</constant><replaceable>domain</replaceable>] <constant>s</constant><replaceable>slot</replaceable> [<constant>f</constant><replaceable>function</replaceable>] [<constant>n</constant><replaceable>port_name</replaceable> | <constant>d</constant><replaceable>dev_port</replaceable>]</entry>
|
||||
<entry>PCI slot number</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>… <constant>b</constant><replaceable>number</replaceable></entry>
|
||||
<entry>Broadcom bus (BCMA) core number</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>… <constant>u</constant><replaceable>port</replaceable>… [<constant>c</constant><replaceable>config</replaceable>] [<constant>i</constant><replaceable>interface</replaceable>]</entry>
|
||||
<entry>USB port number chain</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>… <constant>v</constant><replaceable>slot</replaceable></entry>
|
||||
<entry>SR-VIO slot number</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>The PCI domain is only prepended when it is not 0. All multi-function PCI devices will carry
|
||||
the <constant>f<replaceable>function</replaceable></constant> number in the device name, including
|
||||
the function 0 device. For non-multi-function devices, the number is suppressed if 0. The port name
|
||||
<replaceable>port_name</replaceable> is used, or the port number
|
||||
<constant>d</constant><replaceable>dev_port</replaceable> if the name is not known.</para>
|
||||
|
||||
<para>For BCMA devices, the core number is suppressed when 0.</para>
|
||||
|
||||
<para>For USB devices the full chain of port numbers of hubs is composed. If the name gets longer
|
||||
than the maximum number of 15 characters, the name is not exported. The usual USB configuration
|
||||
number 1 and interface number 0 values are suppressed.</para>
|
||||
</listitem>
|
||||
|
||||
<para>SR-IOV virtual devices are named based on the name of the parent interface, with a suffix of
|
||||
<constant>v</constant> and the virtual device number, with any leading zeros removed. The bus
|
||||
number is ignored. This device type is found in IBM PowerVMs.</para>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ID_NET_NAME_PATH=<replaceable>prefix</replaceable><constant>c</constant><replaceable>bus_id</replaceable></varname></term>
|
||||
<term><varname>ID_NET_NAME_PATH=<replaceable>prefix</replaceable><constant>a</constant><replaceable>vendor</replaceable><replaceable>model</replaceable><constant>i</constant><replaceable>instance</replaceable></varname></term>
|
||||
<term><varname>ID_NET_NAME_PATH=<replaceable>prefix</replaceable><constant>i</constant><replaceable>address</replaceable><constant>n</constant><replaceable>port_name</replaceable></varname></term>
|
||||
<term><varname>ID_NET_NAME_PATH=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>p</constant><replaceable>bus</replaceable><constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>phys_port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]</varname></term>
|
||||
<term><varname>ID_NET_NAME_PATH=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>p</constant><replaceable>bus</replaceable><constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>phys_port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]<constant>b</constant><replaceable>number</replaceable></varname></term>
|
||||
<term><varname>ID_NET_NAME_PATH=<replaceable>prefix</replaceable>[<constant>P</constant><replaceable>domain</replaceable>]<constant>p</constant><replaceable>bus</replaceable><constant>s</constant><replaceable>slot</replaceable>[<constant>f</constant><replaceable>function</replaceable>][<constant>n</constant><replaceable>phys_port_name</replaceable>|<constant>d</constant><replaceable>dev_port</replaceable>]<constant>u</constant><replaceable>port</replaceable>…[<constant>c</constant><replaceable>config</replaceable>][<constant>i</constant><replaceable>interface</replaceable>]</varname></term>
|
||||
|
||||
<listitem><para>This property describes the device installation location. Different schemes are
|
||||
used depending on the bus type, as described in the table below. For BCMA and USB devices, PCI path
|
||||
information must known, and the full name consists of the prefix, PCI slot identifier, and USB or
|
||||
BCMA location. The first two parts are denoted as "…" in the table below.</para>
|
||||
|
||||
<table>
|
||||
<title>Path naming schemes</title>
|
||||
|
||||
<tgroup cols='2'>
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Format</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><replaceable>prefix</replaceable> <constant>c</constant><replaceable>bus_id</replaceable></entry>
|
||||
<entry>CCW or grouped CCW device identifier</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><replaceable>prefix</replaceable> <constant>a</constant><replaceable>vendor</replaceable> <replaceable>model</replaceable> <constant>i</constant><replaceable>instance</replaceable></entry>
|
||||
<entry>ACPI path names for ARM64 platform devices</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><replaceable>prefix</replaceable> <constant>i</constant><replaceable>address</replaceable> <constant>n</constant><replaceable>port_name</replaceable></entry>
|
||||
<entry>Netdevsim (simulated networking device) device number and port name</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><replaceable>prefix</replaceable> [<constant>P</constant><replaceable>domain</replaceable>] <constant>p</constant><replaceable>bus</replaceable> <constant>s</constant><replaceable>slot</replaceable> [<constant>f</constant><replaceable>function</replaceable>] [<constant>n</constant><replaceable>phys_port_name</replaceable> | <constant>d</constant><replaceable>dev_port</replaceable>]</entry>
|
||||
<entry>PCI geographical location</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>… <constant>b</constant><replaceable>number</replaceable></entry>
|
||||
<entry>Broadcom bus (BCMA) core number</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>… <constant>u</constant><replaceable>port</replaceable>… [<constant>c</constant><replaceable>config</replaceable>] [<constant>i</constant><replaceable>interface</replaceable>]</entry>
|
||||
<entry>USB port number chain</entry>
|
||||
</row>
|
||||
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>CCW and grouped CCW devices are found in IBM System Z mainframes. Any leading zeros and
|
||||
dots are suppressed.</para>
|
||||
|
||||
<para>For PCI, BCMA, and USB devices, the same rules as described above for slot naming are
|
||||
used.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>History</title>
|
||||
|
||||
<para>The following "naming schemes" have been defined:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><constant>v238</constant></term>
|
||||
|
||||
<listitem><para>This is the naming naming that was implemented in systemd 238.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>v239</constant></term>
|
||||
|
||||
<listitem><para>Naming was changed for virtual network interfaces created with SR-IOV and NPAR and
|
||||
for devices where the PCI network controller device does not have a slot number associated.</para>
|
||||
|
||||
<para>SR-IOV virtual devices are named based on the name of the parent interface, with a suffix of
|
||||
<literal>v<replaceable>port</replaceable></literal>, where <replaceable>port</replaceable> is the
|
||||
virtual device number. Previously those virtual devices were named as if completely independent.
|
||||
</para>
|
||||
|
||||
<para>The ninth and later NPAR virtual devices are named following the scheme used for the first
|
||||
eight NPAR partitions. Previously those devices were not renamed and the kernel default
|
||||
("eth<replaceable>N</replaceable>") was used.</para>
|
||||
|
||||
<para>Names are also generated for PCI devices where the PCI network controller device does not
|
||||
have an associated slot number itself, but one of its parents does. Previously those devices were
|
||||
not renamed and the kernel default was used.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>v240</constant></term>
|
||||
|
||||
<para>The <literal>ib</literal> prefix and stable names for infiniband devices are
|
||||
introduced. Previously those devices were not renamed.</para>
|
||||
|
||||
<para>The ACPI index field (used in <varname>ID_NET_NAME_ONBOARD=</varname>) is now also used when
|
||||
0.</para>
|
||||
|
||||
<para>A new naming policy <varname>NamePolicy=keep</varname> was introduced. With this policy, if
|
||||
the network device name was already set by userspace, the device will not be renamed
|
||||
again. Previously, this naming policy applied implicitly, and now it must be explicitly
|
||||
requested. Effectively, this means that network devices will be renamed according to the
|
||||
configuration, even if they have been renamed already, if <constant>keep</constant> is not
|
||||
specified as the naming policy in the <filename noindex='true'>.link</filename> file. See
|
||||
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for a description of <varname>NamePolicy=</varname>.</para>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><constant>v243</constant></term>
|
||||
|
||||
<para>Support for netdevsim (simulated networking devices) was added. Previously those devices were
|
||||
not renamed.</para>
|
||||
</varlistentry>
|
||||
|
||||
<para>Note that <constant>latest</constant> may be used to denote the latest scheme known (to this
|
||||
particular version of systemd.</para>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Examples</title>
|
||||
|
||||
<example>
|
||||
<title>Using <command>udevadm test-builtin</command> to display device properties</title>
|
||||
|
||||
<programlisting>$ udevadm test-builtin net_id /sys/class/net/enp0s31f6
|
||||
...
|
||||
Using default interface naming scheme 'v243'.
|
||||
ID_NET_NAMING_SCHEME=v243
|
||||
ID_NET_NAME_MAC=enx54ee75cb1dc0
|
||||
ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd.
|
||||
ID_NET_NAME_PATH=enp0s31f6
|
||||
...</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>PCI Ethernet card with firmware index "1"</title>
|
||||
|
||||
<programlisting>ID_NET_NAME_ONBOARD=eno1
|
||||
ID_NET_NAME_ONBOARD_LABEL=enEthernet Port 1
|
||||
</programlisting>
|
||||
<!-- FIXME: nuke the prefix! -->
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>PCI Ethernet card in hotplug slot with firmware index number</title>
|
||||
|
||||
<programlisting># /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1
|
||||
ID_NET_NAME_MAC=enx000000000466
|
||||
ID_NET_NAME_PATH=enp5s0
|
||||
ID_NET_NAME_SLOT=ens1</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>PCI Ethernet multi-function card with 2 ports</title>
|
||||
|
||||
<programlisting># /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/enp2s0f0
|
||||
ID_NET_NAME_MAC=enx78e7d1ea46da
|
||||
ID_NET_NAME_PATH=enp2s0f0
|
||||
|
||||
# /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/net/enp2s0f1
|
||||
ID_NET_NAME_MAC=enx78e7d1ea46dc
|
||||
ID_NET_NAME_PATH=enp2s0f1</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>PCI WLAN card</title>
|
||||
|
||||
<programlisting># /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0
|
||||
ID_NET_NAME_MAC=wlx0024d7e31130
|
||||
ID_NET_NAME_PATH=wlp3s0</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>PCI IB host adapter with 2 ports</title>
|
||||
|
||||
<programlisting># /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.0/net/ibp21s0f0
|
||||
ID_NET_NAME_PATH=ibp21s0f0
|
||||
|
||||
# /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.1/net/ibp21s0f1
|
||||
ID_NET_NAME_PATH=ibp21s0f1</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>USB built-in 3G modem</title>
|
||||
|
||||
<programlisting># /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6
|
||||
ID_NET_NAME_MAC=wwx028037ec0200
|
||||
ID_NET_NAME_PATH=wwp0s29u1u4i6</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>USB Android phone</title>
|
||||
|
||||
<programlisting># /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2
|
||||
ID_NET_NAME_MAC=enxd626b3450fb5
|
||||
ID_NET_NAME_PATH=enp0s29u1u2</programlisting>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<title>s390 grouped CCW interface</title>
|
||||
|
||||
<programlisting># /sys/devices/css0/0.0.0007/0.0.f5f0/group_device/net/encf5f0
|
||||
ID_NET_NAME_MAC=enx026d3c00000a
|
||||
ID_NET_NAME_PATH=encf5f0</programlisting>
|
||||
</example>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
<ulink url="https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames">the
|
||||
original page describing stable interface names</ulink>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -9,86 +9,7 @@
|
||||
*
|
||||
* http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
|
||||
*
|
||||
* Two character prefixes based on the type of interface:
|
||||
* en — Ethernet
|
||||
* ib — InfiniBand
|
||||
* sl — serial line IP (slip)
|
||||
* wl — wlan
|
||||
* ww — wwan
|
||||
*
|
||||
* Type of names:
|
||||
* b<number> — BCMA bus core number
|
||||
* c<bus_id> — bus id of a grouped CCW or CCW device,
|
||||
* with all leading zeros stripped [s390]
|
||||
* o<index>[n<phys_port_name>|d<dev_port>]
|
||||
* — on-board device index number
|
||||
* s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
|
||||
* — hotplug slot index number
|
||||
* x<MAC> — MAC address
|
||||
* [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
|
||||
* — PCI geographical location
|
||||
* [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
|
||||
* — USB port number chain
|
||||
* v<slot> - VIO slot number (IBM PowerVM)
|
||||
* a<vendor><model>i<instance> — Platform bus ACPI instance id
|
||||
* i<addr>n<phys_port_name> — Netdevsim bus address and port name
|
||||
*
|
||||
* All multi-function PCI devices will carry the [f<function>] number in the
|
||||
* device name, including the function 0 device.
|
||||
*
|
||||
* SR-IOV virtual devices are named based on the name of the parent interface,
|
||||
* with a suffix of "v<N>", where <N> is the virtual device number.
|
||||
*
|
||||
* When using PCI geography, The PCI domain is only prepended when it is not 0.
|
||||
*
|
||||
* For USB devices the full chain of port numbers of hubs is composed. If the
|
||||
* name gets longer than the maximum number of 15 characters, the name is not
|
||||
* exported.
|
||||
* The usual USB configuration == 1 and interface == 0 values are suppressed.
|
||||
*
|
||||
* PCI Ethernet card with firmware index "1":
|
||||
* ID_NET_NAME_ONBOARD=eno1
|
||||
* ID_NET_NAME_ONBOARD_LABEL=Ethernet Port 1
|
||||
*
|
||||
* PCI Ethernet card in hotplug slot with firmware index number:
|
||||
* /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1
|
||||
* ID_NET_NAME_MAC=enx000000000466
|
||||
* ID_NET_NAME_PATH=enp5s0
|
||||
* ID_NET_NAME_SLOT=ens1
|
||||
*
|
||||
* PCI Ethernet multi-function card with 2 ports:
|
||||
* /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/enp2s0f0
|
||||
* ID_NET_NAME_MAC=enx78e7d1ea46da
|
||||
* ID_NET_NAME_PATH=enp2s0f0
|
||||
* /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/net/enp2s0f1
|
||||
* ID_NET_NAME_MAC=enx78e7d1ea46dc
|
||||
* ID_NET_NAME_PATH=enp2s0f1
|
||||
*
|
||||
* PCI wlan card:
|
||||
* /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0
|
||||
* ID_NET_NAME_MAC=wlx0024d7e31130
|
||||
* ID_NET_NAME_PATH=wlp3s0
|
||||
*
|
||||
* PCI IB host adapter with 2 ports:
|
||||
* /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.0/net/ibp21s0f0
|
||||
* ID_NET_NAME_PATH=ibp21s0f0
|
||||
* /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.1/net/ibp21s0f1
|
||||
* ID_NET_NAME_PATH=ibp21s0f1
|
||||
*
|
||||
* USB built-in 3G modem:
|
||||
* /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6
|
||||
* ID_NET_NAME_MAC=wwx028037ec0200
|
||||
* ID_NET_NAME_PATH=wwp0s29u1u4i6
|
||||
*
|
||||
* USB Android phone:
|
||||
* /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2
|
||||
* ID_NET_NAME_MAC=enxd626b3450fb5
|
||||
* ID_NET_NAME_PATH=enp0s29u1u2
|
||||
*
|
||||
* s390 grouped CCW interface:
|
||||
* /sys/devices/css0/0.0.0007/0.0.f5f0/group_device/net/encf5f0
|
||||
* ID_NET_NAME_MAC=enx026d3c00000a
|
||||
* ID_NET_NAME_PATH=encf5f0
|
||||
* When the code here is changed, man/systemd.net-naming-scheme.xml must be updated too.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
|
Loading…
Reference in New Issue
Block a user