<?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-or-later -->

<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 names and MAC addresses may be generated based on certain stable interface
    attributes. This is possible when there is enough information about the device to generate those
    attributes and the use of this information is configured. This page describes interface naming, 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 and MAC addresses are derived from various stable device metadata attributes. Newer versions
    of udev take more of these attributes into account, improving (and thus possibly changing) the names and
    addresses used for the same devices. Different versions of those generation 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 overridden
    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 properties have been generated, appropriate udev rules may be used to actually rename
    devices based on those properties. See the description of <varname>NamePolicy=</varname> and
    <varname>MACAddressPolicy=</varname> in
    <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>

    <para>Note that while the concept of network interface naming schemes is primarily relevant in the
    context of <filename>systemd-udevd.service</filename>, the
    <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    container manager also takes it into account when naming network interfaces, see below.</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 numeric 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 textual 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>v</constant><replaceable>slot</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 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><replaceable>prefix</replaceable> <constant>v</constant><replaceable>slot</replaceable></entry>
                  <entry>VIO slot number (IBM PowerVM)</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>

          <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.</para>

          <para>In some configurations a parent PCI bridge of a given network controller may be associated
          with a slot. In such case we don't generate this device property to avoid possible naming conflicts.</para>
          </listitem>
        </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 (which may be chosen at system boot-up time via
    the <varname>net.naming-scheme=</varname> kernel command line switch, see above):</para>

    <variablelist>
        <varlistentry>
          <term><constant>v238</constant></term>

          <listitem><para>This is the naming scheme 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>

          <listitem><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 index="false">.link</filename> file. See
          <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
          for a description of <varname>NamePolicy=</varname>.</para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>v241</constant></term>

          <listitem><para><option>MACAddressPolicy=persistent</option> was extended to set MAC addresses
          based on the device name. Previously addresses were only based on the
          <varname index="false">ID_NET_NAME_*</varname> attributes, which meant that interface names would
          never be generated for virtual devices. Now a persistent address will be generated for most
          devices, including in particular bridges.</para>

          <para>Note: when userspace does not set a MAC address for a bridge device, the kernel will
          initially assign a random address, and then change it when the first device is enslaved to the
          bridge. With this naming policy change, bridges get a persistent MAC address based on the bridge
          name instead of the first enslaved device.</para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>v243</constant></term>

          <listitem><para>Support for renaming netdevsim (simulated networking) devices was added. Previously
          those devices were not renamed.</para>

          <para>Previously two-letter interface type prefix was prepended to
          <varname>ID_NET_LABEL_ONBOARD=</varname>. This is not done anymore.</para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>v245</constant></term>

          <listitem><para>When
          <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>
          derives the name for the host side of the network interface created with
          <option>--network-veth</option> from the container name it previously simply truncated the result
          at 15 characters if longer (since that's the maximum length for network interface names). From now
          on, for any interface name that would be longer than 15 characters the last 4 characters are set to
          a 24bit hash value of the full interface name. This way network interface name collisions between
          multiple similarly named containers (who only differ in container name suffix) should be less
          likely (but still possible, since the 24bit hash value is very small).</para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>v247</constant></term>

          <listitem><para>When a PCI slot is associated with a PCI bridge that has multiple child network
          controllers, the same value of the <varname>ID_NET_NAME_SLOT</varname> property might be derived
          for those controllers. This would cause a naming conflict if the property is selected as the device
          name. Now, we detect this situation and don't produce the <varname>ID_NET_NAME_SLOT</varname>
          property.</para></listitem>
        </varlistentry>

        <varlistentry>
          <term><constant>v249</constant></term>

          <listitem><para>PCI hotplug slot names for the s390 PCI driver are a hexadecimal representation
          of the <filename>function_id</filename> device attribute. This attribute is now used to build the
          <varname>ID_NET_NAME_SLOT</varname>. Before that, all slot names were parsed as decimal
          numbers, which could either result in an incorrect value of the <varname>ID_NET_NAME_SLOT</varname>
          property or none at all.</para>

          <para>Some firmware and hypervisor implementations report unreasonable high numbers for the onboard
          index. To prevent the generation of bogus onbard interface names, index numbers greater than 16381
          (2^14-1) were ignored. For s390 PCI devices index values up to 65535 (2^16-1) are valid. To account
          for that, the limit is increased to now 65535.</para>

          <para>The udev rule <varname>NAME=</varname> replaces <literal>:</literal>,
          <literal>/</literal>, and <literal>%</literal> with an underscore (<literal>_</literal>), and
          refuses strings which contain only numerics.</para>
          </listitem>
        </varlistentry>

      </variablelist>

    <para>Note that <constant>latest</constant> may be used to denote the latest scheme known (to this
    particular version of systemd).</para>
  </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=Ethernet Port 1
      </programlisting>
    </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://systemd.io/PREDICTABLE_INTERFACE_NAMES">Predictable Network Interface Names</ulink>,
      <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
