Predictable network interface device names based on:
- firmware/bios-provided index numbers for on-board devices
- firmware-provided pci-express hotplug slot index number
- physical/geographical location of the hardware
- the interface's MAC address
http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
Two character prefixes based on the type of interface:
en — Ethernet
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
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
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
Taken from https://github.com/systemd/systemd/blob/master/src/udev/udev-builtin-net_id.c