diff --git a/Makefile-man.am b/Makefile-man.am
index aad3f444da..cb6ed94edd 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -100,6 +100,7 @@ MANPAGES += \
man/systemd.time.7 \
man/systemd.timer.5 \
man/systemd.unit.5 \
+ man/systemd.link.5 \
man/telinit.8 \
man/tmpfiles.d.5 \
man/udev.7 \
@@ -1467,6 +1468,7 @@ EXTRA_DIST += \
man/systemd.time.xml \
man/systemd.timer.xml \
man/systemd.unit.xml \
+ man/systemd.link.xml \
man/systemd.xml \
man/telinit.xml \
man/timedatectl.xml \
diff --git a/man/systemd-networkd.service.xml b/man/systemd-networkd.service.xml
index df5ca36406..7585832230 100644
--- a/man/systemd-networkd.service.xml
+++ b/man/systemd-networkd.service.xml
@@ -63,7 +63,7 @@
To configure low-level link settings independently of
networks, see
- udev7
+ systemd.link5
.
Network configurations applied before networkd is started
diff --git a/man/systemd.link.xml b/man/systemd.link.xml
new file mode 100644
index 0000000000..c1176ba176
--- /dev/null
+++ b/man/systemd.link.xml
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+
+
+ systemd.link
+ systemd
+
+
+
+ Developer
+ Tom
+ Gundersen
+
+
+
+
+
+ systemd.link
+ 5
+
+
+
+ systemd.link
+ Network device configuration
+
+
+
+ link.link
+
+
+
+ Description
+
+ Network link configuration is performed by the net_setup_link
+ udev builtin.
+
+ The link files are read from the files located in the
+ system network directory /usr/lib/systemd/network,
+ the volatile runtime network directory /run/systemd/network
+ and the local administration network directory /etc/systemd/network.
+ Link files must have the extension .link; other extensions are ignored.
+ All link files are collectively sorted and processed in lexical order,
+ regardless of the directories in which they live. However, files with
+ identical filenames replace each other. Files in /etc
+ have the highest priority, files in /run take precedence
+ over files with the same name in /usr/lib. This can be
+ used to override a system-supplied link file with a local file if needed;
+ a symlink in /etc with the same name as a link file in
+ /usr/lib, pointing to /dev/null,
+ disables the link file entirely.
+
+ The link file contains a [Match] section, which
+ determines if a given link file may be applied to a given device; and a
+ [Link] section specifying how the device should be
+ configured. The first (in lexical order) of the link files that matches
+ a given device is applied.
+
+ A link file is said to match a device if each of the entries in the
+ [Match] section matches, or if the section is empty.
+ The following keys are accepted:
+
+
+
+ MACAddress=
+
+ The hardware address.
+
+
+
+ Path=
+
+ The persistent path, as exposed by the
+ udev property ID_PATH. May
+ contain shell style globs.
+
+
+
+ Driver=
+
+ The driver currently bound to the device,
+ as exposed by the udev property DRIVER
+ of its parent device, or if that is not set the
+ driver as exposed by ethtool -i
+ of the device itself.
+
+
+
+ Type=
+
+ The device type, as exposed by the udev
+ property DEVTYPE.
+
+
+
+ Host=
+
+ Matches against the hostname or machine
+ ID of the host. See ConditionHost= in
+ systemd.unit5
+ for details.
+
+
+
+ Virtualization=
+
+ Checks whether the system is executed in
+ a virtualized environment and optionally test
+ whether it is a specific implementation. See
+ ConditionVirtualization= in
+ systemd.unit5
+ for details.
+
+
+
+ KernelCommandLine=
+
+ Checks whether a specific kernel command
+ line option is set (or if prefixed with the
+ exclamation mark unset). See
+ ConditionKernelCommandLine= in
+ systemd.unit5
+ for details.
+
+
+
+ Architecture=
+
+ Checks whether the system is running on a
+ specific architecture. See
+ ConditionArchitecture= in
+ systemd.unit5
+ for details.
+
+
+
+
+ The [Link] section accepts the following
+ keys:
+
+
+
+ Description=
+
+ A description of the device.
+
+
+
+ Alias=
+
+ The ifalias is set to
+ this value.
+
+
+
+ MACAddressPolicy=
+
+ The policy by which the MAC address
+ should be set. The available policies are:
+
+
+
+
+ persistent
+
+ If the hardware has a persistent
+ MAC address, as most hardware should,
+ and this is used by the kernel, nothing
+ is done. Otherwise, a new MAC address
+ is generated which is guaranteed to be
+ the same on every boot for the given
+ machine and the given device, but which
+ is otherwise random.
+
+
+
+ random
+
+ If the kernel is using a random MAC
+ address, nothing is done. Otherwise, a new
+ address is randomly generated each time the
+ device appears, typically at boot.
+
+
+
+
+
+
+ MACAddress=
+
+ The MAC address to use, if no
+ MACAddressPolicy=
+ is specified.
+
+
+
+ NamePolicy=
+
+ An ordered, space-separated list of
+ policies by which the interface name should
+ be set. NamePolicy may be
+ disabled by specifying
+ net.ifnames=0 on the kernel
+ commandline. Each of the policies may fail, and
+ the first successful one is used. The name is
+ not set directly, but is exported to udev as
+ the property ID_NET_NAME,
+ which is, by default, used by a udev rule to set
+ NAME. The available policies
+ are:
+
+
+
+ database
+
+ The name is set based on entries in
+ the udev's Hardware Database with the key
+ ID_NET_NAME_FROM_DATABASE
+ .
+
+
+
+ onboard
+
+ The name is set based on information given by
+ the firmware for on-board devices, as exported by
+ the udev property ID_NET_NAME_ONBOARD
+ .
+
+
+
+ slot
+
+ The name is set based on information given by
+ the firmware for hot-plug devices, as exported by
+ the udev property ID_NET_NAME_SLOT
+ .
+
+
+
+ path
+
+ The name is set based on the device's physical
+ location, as exported by the udev property
+ ID_NET_NAME_PATH.
+
+
+
+ mac
+
+ The name is set based on the device's
+ persistent MAC address, as exported by the udev
+ property ID_NET_NAME_MAC.
+
+
+
+
+
+
+ Name=
+
+ The interface name to use in case all the
+ policies specified in
+ NamePolicy= fail, or in case
+ NamePolicy= is missing or
+ disabled.
+
+
+
+ MTUBytes=
+
+ The maximum transmission unit in bytes to
+ set for the device. The usual suffixes K, M, G,
+ are supported and are understood to the base of
+ 1024.
+
+
+
+ BitsPerSecond=
+
+ The speed to set for the device, the
+ value is rounded down to the nearest Mbps.
+ The usual suffixes K, M, G, are supported and
+ are understood to the base of 1000.
+
+
+
+ Duplex=
+
+ The duplex mode to set for the device.
+ The accepted values are half
+ and full.
+
+
+
+ WakeOnLan=
+
+ The Wake-on-LAN policy to set for the
+ device. The supported values are:
+
+
+
+ phy
+
+ Wake on PHY activity.
+
+
+
+ magic
+
+ Wake on receipt of a magic packet
+
+
+
+
+ off
+
+ Never wake.
+
+
+
+
+
+
+
+
+
+ Example
+
+ /etc/systemd/network/wireless.link
+
+ [Match]
+MACAddress=12:34:56:78:9a:bc
+Driver=brcmsmac
+Path=pci-0000:02:00.0-*
+Type=wlan
+Virtualization=no
+Host=my-laptop
+Architecture=x86-64
+
+[Link]
+Name=wireless0
+MTUBytes=1450
+BitsPerSecond=10M
+WakeOnLan=magic
+MACAddress=cb:a9:87:65:43:21
+
+
+
+
+ See Also
+
+
+ systemd-udevd.service8
+ ,
+
+ udevadm8
+
+
+
+
+
diff --git a/man/udev.xml b/man/udev.xml
index 95b37fd0cf..4e5f8f00aa 100644
--- a/man/udev.xml
+++ b/man/udev.xml
@@ -307,8 +307,11 @@
NAME
- The name to use for a network interface. The name of a device node
- cannot be changed by udev, only additional symlinks can be created.
+ The name to use for a network interface. See
+ systemd.link5
+ for a higher-level mechanism for setting the interface name.
+ The name of a device node cannot be changed by udev, only additional
+ symlinks can be created.
@@ -759,284 +762,6 @@
During runtime only the binary database is used.
- Network Link Configuration
- Network link configuration is performed by the net_setup_link
- udev builtin.
-
- The link files are read from the files located in the
- system network directory /usr/lib/systemd/network,
- the volatile runtime network directory /run/systemd/network
- and the local administration network directory /etc/systemd/network.
- Link files must have the extension .link; other extensions are ignored.
- All link files are collectively sorted and processed in lexical order,
- regardless of the directories in which they live. However, files with
- identical filenames replace each other. Files in /etc
- have the highest priority, files in /run take precedence
- over files with the same name in /usr/lib. This can be
- used to override a system-supplied link file with a local file if needed;
- a symlink in /etc with the same name as a link file in
- /usr/lib, pointing to /dev/null,
- disables the link file entirely.
-
- The link file contains a [Match] section, which
- determines if a given link file may be applied to a given device; and a
- [Link] section specifying how the device should be
- configured. The first (in lexical order) of the link files that matches
- a given device is applied.
-
- A link file is said to match a device if each of the entries in the
- [Match] section matches, or if the section is empty.
- The following keys are accepted:
-
-
-
- MACAddress=
-
- The hardware address.
-
-
-
-
- Path=
-
- The persistent path, as exposed by the udev property ID_PATH.
- May contain shell style globs.
-
-
-
- Driver=
-
- The driver currently bound to the device, as exposed by the
- udev property DRIVER of its parent device, or if
- that is not set the driver as exposed by ethtool -i
- of the device itself.
-
-
-
- Type=
-
- The device type, as exposed by the udev property DEVTYPE.
-
-
-
- Host=
-
- Matches against the hostname or machine ID of the
- host. See ConditionHost= in
- systemd.unit5
- for details.
-
-
-
- Virtualization=
-
- Checks whether the system is executed in a virtualized
- environment and optionally test whether it is a specific
- implementation. See ConditionVirtualization= in
- systemd.unit5
- for details.
-
-
-
- KernelCommandLine=
-
- Checks whether a specific kernel command line option is
- set (or if prefixed with the exclamation mark unset). See
- ConditionKernelCommandLine= in
- systemd.unit5
- for details.
-
-
-
- Architecture=
-
- Checks whether the system is running on a specific
- architecture. See ConditionArchitecture= in
- systemd.unit5
- for details.
-
-
-
-
- The [Link] section accepts the following keys:
-
-
-
- Description=
-
- A description of the device.
-
-
-
- Alias=
-
- The ifalias is set to this value.
-
-
-
- MACAddressPolicy=
-
- The policy by which the MAC address should be set. The
- available policies are:
-
-
-
- persistent
-
- If the hardware has a persistent MAC address, as most
- hardware should, and this is used by the kernel, nothing is
- done. Otherwise, a new MAC address is generated which is
- guaranteed to be the same on every boot for the given
- machine and the given device, but which is otherwise random.
-
-
-
-
- random
-
- If the kernel is using a random MAC address, nothing is
- done. Otherwise, a new address is randomly generated each
- time the device appears, typically at boot.
-
-
-
-
-
-
-
- MACAddress=
-
- The MAC address to use, if no MACAddressPolicy=
- is specified.
-
-
-
-
- NamePolicy=
-
- An ordered, space-separated list of policies by which the
- interface name should be set. NamePolicy may
- be disabled by specifying net.ifnames=0 on the
- kernel commandline. Each of the policies may fail, and the first
- successful one is used. The name is not set directly, but
- is exported to udev as the property ID_NET_NAME,
- which is, by default, used by a udev rule to set
- NAME. The available policies are:
-
-
-
- database
-
- The name is set based on entries in the Hardware
- Database with the key
- ID_NET_NAME_FROM_DATABASE.
-
-
-
-
- onboard
-
- The name is set based on information given by the
- firmware for on-board devices, as exported by the udev
- property ID_NET_NAME_ONBOARD.
-
-
-
-
- slot
-
- The name is set based on information given by the
- firmware for hot-plug devices, as exported by the udev
- property ID_NET_NAME_SLOT.
-
-
-
-
- path
-
- The name is set based on the device's physical location,
- as exported by the udev property
- ID_NET_NAME_PATH.
-
-
-
-
- mac
-
- The name is set based on the device's persistent MAC
- address, as exported by the udev property
- ID_NET_NAME_MAC.
-
-
-
-
-
-
-
- Name=
-
- The interface name to use in case all the policies specified
- in NamePolicy= fail, or in case
- NamePolicy= is missing or disabled.
-
-
-
-
- MTUBytes=
-
- The maximum transmission unit in bytes to set for
- the device. The usual suffixes K, M, G, are supported and
- are understood to the base of 1024.
-
-
-
- BitsPerSecond=
-
- The speed to set for the device, the value is
- rounded down to the nearest Mbps. The usual suffixes K, M,
- G, are supported and are understood to the base of
- 1000.
-
-
-
- Duplex=
-
- The duplex mode to set for the device. The accepted values
- are half and full.
-
-
-
-
- WakeOnLan=
-
- The Wake-on-LAN policy to set for the device. The supported
- values are:
-
-
-
- phy
-
- Wake on PHY activity.
-
-
-
- magic
-
- Wake on receipt of a magic packet.
-
-
-
- off
-
- Never wake.
-
-
-
-
-
-
-
-
See Also
@@ -1046,6 +771,9 @@
udevadm8
+
+ systemd.link5
+