chiark / gitweb /
.network/.netdev/.link: allow to match on architecture
[elogind.git] / man / systemd-networkd.service.xml
index f38e813e44e7cfc3db2a1c2e774a453769de2201..91e13924888d95f63d16fa4a162d4227448f61d6 100644 (file)
                 network devices as they appear, as well as creating virtual
                 network devices.</para>
 
+                <para>To configure low-level link settings independently of
+                networks, see
+                <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+                .</para>
+
                 <para>Network configurations applied before networkd is started
-                are not removed, and configuration applied by networkd are not
-                removed when networkd exits. This ensures restarting networkd
-                does not cut the network connection, and, in particular, that
-                it is safe to transition between the initrd and the real root,
+                are not removed, and static configuration applied by networkd
+                are not removed when networkd exits. This ensures restarting
+                networkd does not cut the network connection, and, in particular,
+                that it is safe to transition between the initrd and the real root,
                 and back.</para>
         </refsect1>
 
                 disables the configuration file entirely.</para>
 
                 <refsect2><title>Virtual Network Devices</title>
-                        <para>Netdev files must have the extension <filename>.netdev</filename>;
-                        other extensions are ignored. Virtual network devices are created as soon
-                        as networkd is started.</para>
+                        <para>Virtual Network Device files must have the extension
+                        <filename>.netdev</filename>; other extensions are ignored. Virtual
+                        network devices are created as soon as networkd is started.</para>
+
+                        <para>A virtual network device is only created if the
+                        <literal>[Match]</literal> section matches the current
+                        environment, or if the section is empty. The following keys are accepted:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Host</varname></term>
+                                        <listitem>
+                                                <para>Matches against the hostname or machine ID of the
+                                                host. See <literal>ConditionHost=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Virtualization</varname></term>
+                                        <listitem>
+                                                <para>Checks whether the system is executed in a virtualized
+                                                environment and optionally test whether it is a specific
+                                                implementation. See <literal>ConditionVirtualization=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>KernelCommandLine</varname></term>
+                                        <listitem>
+                                                <para>Checks whether a specific kernel command line option is
+                                                set (or if prefixed with the exclamation mark unset). See
+                                                <literal>ConditionKernelCommandLine=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Architecture</varname></term>
+                                        <listitem>
+                                                <para>Checks whether the system is running on a specific
+                                                architecture. See <literal>ConditionArchitecture=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                        </variablelist>
 
-                        <para>The <literal>[Bridge]</literal> section accepts the following
+                        <para>The <literal>[NetDev]</literal> section accepts the following
                         keys:</para>
 
                         <variablelist class='network-directives'>
                                                 bridge. This option is compulsory.</para>
                                         </listitem>
                                 </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Kind</varname></term>
+                                        <listitem>
+                                                <para>The netdev kind. Currently, <literal>bridge</literal>,
+                                                <literal>bond</literal> and <literal>vlan</literal>
+                                                are supported. This option is compulsory.</para>
+                                        </listitem>
+                                </varlistentry>
                         </variablelist>
+
+                        <para>The <literal>[VLAN]</literal> section only applies for netdevs of kind <literal>vlan</literal>,
+                        and accepts the following key:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>Id</varname></term>
+                                        <listitem>
+                                                <para>The VLAN ID to use. An integer in the range 0–4094.
+                                                This option is compulsory.</para>
+                                        </listitem>
+                                </varlistentry>
+                        </variablelist>
+
                 </refsect2>
 
                 <refsect2><title>Networks</title>
                                         <term><varname>Path</varname></term>
                                         <listitem>
                                                 <para>The persistent path, as exposed by the udev
-                                                property <literal>ID_PATH</literal>.</para>
+                                                property <literal>ID_PATH</literal>. May contain shell
+                                                style globs.</para>
                                         </listitem>
                                 </varlistentry>
                                 <varlistentry>
                                         <term><varname>Driver</varname></term>
                                         <listitem>
                                                 <para>The driver currently bound to the device, as
-                                                exposed by the udev property <literal>DRIVER</literal>.
+                                                exposed by the udev property <literal>DRIVER</literal>
+                                                of its parent device.
                                                 </para>
                                         </listitem>
                                 </varlistentry>
                                         <term><varname>Type</varname></term>
                                         <listitem>
                                                 <para>The device type, as exposed by the udev property
-                                                <literal>DEVTYPE</literal>, or <literal>ethernet</literal>
-                                                to match devices without a <literal>DEVTYPE</literal>.</para>
+                                                <literal>DEVTYPE</literal>.</para>
                                         </listitem>
                                 </varlistentry>
                                 <varlistentry>
                                         <term><varname>Name</varname></term>
                                         <listitem>
                                                 <para>The device name, as exposed by the udev property
-                                                <literal>INTERFACE</literal>.</para>
+                                                <literal>INTERFACE</literal>. May contain shell style
+                                                globs.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Host</varname></term>
+                                        <listitem>
+                                                <para>Matches against the hostname or machine ID of the
+                                                host. See <literal>ConditionHost=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Virtualization</varname></term>
+                                        <listitem>
+                                                <para>Checks whether the system is executed in a virtualized
+                                                environment and optionally test whether it is a specific
+                                                implementation. See <literal>ConditionVirtualization=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>KernelCommandLine</varname></term>
+                                        <listitem>
+                                                <para>Checks whether a specific kernel command line option is
+                                                set (or if prefixed with the exclamation mark unset). See
+                                                <literal>ConditionKernelCommandLine=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Architecture</varname></term>
+                                        <listitem>
+                                                <para>Checks whether the system is running on a specific
+                                                architecture. See <literal>ConditionArchitecture=</literal> in
+                                                <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+                                                for details.
+                                                </para>
                                         </listitem>
                                 </varlistentry>
                         </variablelist>
                                                 presentation purposes.</para>
                                         </listitem>
                                 </varlistentry>
+                                <varlistentry>
+                                        <term><varname>DHCP</varname></term>
+                                        <listitem>
+                                                <para>A boolean. When true, enables basic DHCPv4 support.</para>
+                                        </listitem>
+                                </varlistentry>
                                 <varlistentry>
                                         <term><varname>Address</varname></term>
                                         <listitem>
                                                 <para>A static IPv4 or IPv6 address and its prefix length,
-                                                separated by a '/' character. The format of the address must
+                                                separated by a <literal>/</literal> character. The format of the address must
                                                 be as described in
                                                 <citerefentry><refentrytitle>inet_pton</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                                                 . This is a short-hand for an [Address] section only containing an Address key (see below).</para>
                                                 . This is a short-hand for a [Route] section only containing a Gateway key.</para>
                                         </listitem>
                                 </varlistentry>
+                                <varlistentry>
+                                        <term><varname>DNS</varname></term>
+                                        <listitem>
+                                                <para>A DNS server address, which must be in the format described in
+                                                <citerefentry><refentrytitle>inet_pton</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                                                .</para>
+                                        </listitem>
+                                </varlistentry>
                                 <varlistentry>
                                         <term><varname>Bridge</varname></term>
                                         <listitem>
-                                                <para>The name of the bridge to add the configured link to.</para>
+                                                <para>The name of the bridge to add the link to.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Bond</varname></term>
+                                        <listitem>
+                                                <para>The name of the bond to add the link to.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>VLAN</varname></term>
+                                        <listitem>
+                                                <para>The name of a VLAN to create on the link. This option
+                                                may be specified more than once.</para>
                                         </listitem>
                                 </varlistentry>
                         </variablelist>
                                 <varlistentry>
                                         <term><varname>Address</varname></term>
                                         <listitem>
-                                                <para>As in the <literal>[Network]</literal> section.</para>
+                                                <para>As in the <literal>[Network]</literal> section. This key is mandatory.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>Broadcast</varname></term>
+                                        <listitem>
+                                                <para>The broadcast address, which must be in the format described in
+                                                <citerefentry><refentrytitle>inet_pton</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                                                . This key only applies to IPv4 addresses. If it is not given, it is
+                                                derived from the <literal>Address</literal> key.</para>
                                         </listitem>
                                 </varlistentry>
                                 <varlistentry>
                                 <varlistentry>
                                         <term><varname>Gateway</varname></term>
                                         <listitem>
-                                                <para>As in the <literal>[Network]</literal> section.</para>
+                                                <para>As in the <literal>[Network]</literal> section. This key is mandatory.</para>
                                         </listitem>
                                 </varlistentry>
                                 <varlistentry>
                                                 prefixlength, if ommitted a full-length host route is assumed.</para>
                                         </listitem>
                                 </varlistentry>
+                        </variablelist>
+
+                        <para>The <literal>[DHCPv4]</literal> section accepts the following keys:</para>
+
+                        <variablelist class='network-directives'>
+                                <varlistentry>
+                                        <term><varname>UseDNS</varname></term>
+                                        <listitem>
+                                                <para>When true (the default), the DNS servers received from the DHCP server will
+                                                be used and take precedence over any statically configured ones.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>UseMTU</varname></term>
+                                        <listitem>
+                                                <para>When true, the interface maximum transmission unit from the DHCP server will
+                                                be used on the current link. Defaults to false.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>UseHostname</varname></term>
+                                        <listitem>
+                                                <para>When true (the default), the hostname received from the DHCP server
+                                                will be used as the transient hostname.</para>
+                                        </listitem>
+                                </varlistentry>
+                                <varlistentry>
+                                        <term><varname>CriticalConnection</varname></term>
+                                        <listitem>
+                                                <para>When true, the connection will never be torn down even if the DHCP lease
+                                                expires. This is contrary to the DHCP specification, but may be the best choice
+                                                if, say, the root filesystem relies on this connection. Defaults to false.</para>
+                                        </listitem>
+                                </varlistentry>
                        </variablelist>
+
                 </refsect2>
         </refsect1>