<?xml version='1.0'?> <!--*-nxml-*-->
<!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.netdev" conditional='ENABLE_NETWORKD'
          xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>systemd.network</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd.netdev</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd.netdev</refname>
    <refpurpose>Virtual Network Device configuration</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename><replaceable>netdev</replaceable>.netdev</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>A plain ini-style text file that encodes configuration about a virtual network device, used by
    <citerefentry><refentrytitle>systemd-networkd</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
    See <citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    for a general description of the syntax.</para>

    <para>The main Virtual Network Device file must have the extension <filename>.netdev</filename>;
    other extensions are ignored. Virtual network devices are created as soon as networkd is
    started. If a netdev with the specified name already exists, networkd will use that as-is rather
    than create its own. Note that the settings of the pre-existing netdev will not be changed by
    networkd.</para>

    <para>The <filename>.netdev</filename> files are read from the files located in the system network
    directory <filename>/usr/lib/systemd/network</filename> and
    <filename>/usr/local/lib/systemd/network</filename>, the volatile runtime network directory
    <filename>/run/systemd/network</filename> and the local administration network directory
    <filename>/etc/systemd/network</filename>. All configuration files are collectively sorted and
    processed in alphanumeric order, regardless of the directories in which they live. However, files
    with identical filenames replace each other. It is recommended that each filename is prefixed with
    a number (e.g. <filename>10-vlan.netdev</filename>). Otherwise, <filename>.netdev</filename> files
    generated by
    <citerefentry><refentrytitle>systemd-network-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    may take precedence over user configured files. Files in <filename>/etc/</filename> have the
    highest priority, files in <filename>/run/</filename> take precedence over files with the same name
    in <filename>/usr/lib/</filename>. This can be used to override a system-supplied configuration
    file with a local file if needed. As a special case, an empty file (file size 0) or symlink with
    the same name pointing to <filename>/dev/null</filename> disables the configuration file entirely
    (it is "masked").</para>

    <para>Along with the netdev file <filename>foo.netdev</filename>, a "drop-in" directory
    <filename>foo.netdev.d/</filename> may exist. All files with the suffix <literal>.conf</literal>
    from this directory will be merged in the alphanumeric order and parsed after the main file itself
    has been parsed. This is useful to alter or add configuration settings, without having to modify
    the main configuration file. Each drop-in file must have appropriate section headers.</para>

    <para>In addition to <filename>/etc/systemd/network</filename>, drop-in <literal>.d</literal>
    directories can be placed in <filename>/usr/lib/systemd/network</filename> or
    <filename>/run/systemd/network</filename> directories. Drop-in files in
    <filename>/etc/</filename> take precedence over those in <filename>/run/</filename> which in turn
    take precedence over those in <filename>/usr/lib/</filename>. Drop-in files under any of these
    directories take precedence over the main netdev file wherever located. (Of course, since
    <filename>/run/</filename> is temporary and <filename>/usr/lib/</filename> is for vendors, it is
    unlikely drop-ins should be used in either of those places.)</para>
  </refsect1>

  <refsect1>
    <title>Supported netdev kinds</title>

    <para>The following kinds of virtual network devices may be
    configured in <filename>.netdev</filename> files:</para>

    <table>
      <title>Supported kinds of virtual network devices</title>

      <tgroup cols='2'>
        <colspec colname='kind' />
        <colspec colname='explanation' />
        <thead><row>
          <entry>Kind</entry>
          <entry>Description</entry>
        </row></thead>
        <tbody>
          <row><entry><varname>bond</varname></entry>
          <entry>A bond device is an aggregation of all its slave devices. See <ulink url="https://docs.kernel.org/networking/bonding.html">Linux Ethernet Bonding Driver HOWTO</ulink> for details.</entry></row>

          <row><entry><varname>bridge</varname></entry>
          <entry>A bridge device is a software switch, and each of its slave devices and the bridge itself are ports of the switch.</entry></row>

          <row><entry><varname>dummy</varname></entry>
          <entry>A dummy device drops all packets sent to it.</entry></row>

          <row><entry><varname>gre</varname></entry>
          <entry>A Level 3 GRE tunnel over IPv4. See <ulink url="https://tools.ietf.org/html/rfc2784">RFC 2784</ulink> for details. Name <literal>gre0</literal> should not be used, as the kernel creates a device with this name when the corresponding kernel module is loaded.</entry></row>

          <row><entry><varname>gretap</varname></entry>
          <entry>A Level 2 GRE tunnel over IPv4. Name <literal>gretap0</literal> should not be used, as the kernel creates a device with this name when the corresponding kernel module is loaded.</entry></row>

          <row><entry><varname>erspan</varname></entry>
          <entry>ERSPAN mirrors traffic on one or more source ports and delivers the mirrored traffic to one or more destination ports on another switch. The traffic is encapsulated in generic routing encapsulation (GRE) and is therefore routable across a layer 3 network between the source switch and the destination switch. Name <literal>erspan0</literal> should not be used, as the kernel creates a device with this name when the corresponding kernel module is loaded.</entry></row>

          <row><entry><varname>ip6gre</varname></entry>
          <entry>A Level 3 GRE tunnel over IPv6.</entry></row>

          <row><entry><varname>ip6tnl</varname></entry>
          <entry>An IPv4 or IPv6 tunnel over IPv6</entry></row>

          <row><entry><varname>ip6gretap</varname></entry>
          <entry>A Level 2 GRE tunnel over IPv6.</entry></row>

          <row><entry><varname>ipip</varname></entry>
          <entry>An IPv4 over IPv4 tunnel.</entry></row>

          <row><entry><varname>ipvlan</varname></entry>
          <entry>An IPVLAN device is a stacked device which receives packets from its underlying device based on IP address filtering.</entry></row>

          <row><entry><varname>ipvtap</varname></entry>
          <entry>An IPVTAP device is a stacked device which receives packets from its underlying device based on IP address filtering and can be accessed using the tap user space interface.</entry></row>

          <row><entry><varname>macvlan</varname></entry>
          <entry>A macvlan device is a stacked device which receives packets from its underlying device based on MAC address filtering.</entry></row>

          <row><entry><varname>macvtap</varname></entry>
          <entry>A macvtap device is a stacked device which receives packets from its underlying device based on MAC address filtering.</entry></row>

          <row><entry><varname>sit</varname></entry>
          <entry>An IPv6 over IPv4 tunnel.</entry></row>

          <row><entry><varname>tap</varname></entry>
          <entry>A persistent Level 2 tunnel between a network device and a device node.</entry></row>

          <row><entry><varname>tun</varname></entry>
          <entry>A persistent Level 3 tunnel between a network device and a device node.</entry></row>

          <row><entry><varname>veth</varname></entry>
          <entry>An Ethernet tunnel between a pair of network devices.</entry></row>

          <row><entry><varname>vlan</varname></entry>
          <entry>A VLAN is a stacked device which receives packets from its underlying device based on VLAN tagging. See <ulink url="http://www.ieee802.org/1/pages/802.1Q.html">IEEE 802.1Q</ulink> for details.</entry></row>

          <row><entry><varname>vti</varname></entry>
          <entry>An IPv4 over IPSec tunnel.</entry></row>

          <row><entry><varname>vti6</varname></entry>
          <entry>An IPv6 over IPSec tunnel.</entry></row>

          <row><entry><varname>vxlan</varname></entry>
          <entry>A virtual extensible LAN (vxlan), for connecting Cloud computing deployments.</entry></row>

          <row><entry><varname>geneve</varname></entry>
          <entry>A GEneric NEtwork Virtualization Encapsulation (GENEVE) netdev driver.</entry></row>

          <row><entry><varname>l2tp</varname></entry>
          <entry>A Layer 2 Tunneling Protocol (L2TP) is a tunneling protocol used to support virtual private networks (VPNs) or as part of the delivery of services by ISPs. It does not provide any encryption or confidentiality by itself</entry></row>

          <row><entry><varname>macsec</varname></entry>
          <entry>Media Access Control Security (MACsec) is an 802.1AE IEEE industry-standard security technology that provides secure communication for all traffic on Ethernet links. MACsec provides point-to-point security on Ethernet links between directly connected nodes and is capable of identifying and preventing most security threats.</entry></row>

          <row><entry><varname>vrf</varname></entry>
          <entry>A Virtual Routing and Forwarding (<ulink url="https://docs.kernel.org/networking/vrf.html">VRF</ulink>) interface to create separate routing and forwarding domains.</entry></row>

          <row><entry><varname>vcan</varname></entry>
          <entry>The virtual CAN driver (vcan). Similar to the network loopback devices, vcan offers a virtual local CAN interface.</entry></row>

          <row><entry><varname>vxcan</varname></entry>
          <entry>The virtual CAN tunnel driver (vxcan). Similar to the virtual ethernet driver veth, vxcan implements a local CAN traffic tunnel between two virtual CAN network devices. When creating a vxcan, two vxcan devices are created as pair. When one end receives the packet it appears on its pair and vice versa. The vxcan can be used for cross namespace communication.
          </entry></row>

          <row><entry><varname>wireguard</varname></entry>
          <entry>WireGuard Secure Network Tunnel.</entry></row>

          <row><entry><varname>nlmon</varname></entry>
          <entry>A Netlink monitor device. Use an nlmon device when you want to monitor system Netlink messages.</entry></row>

          <row><entry><varname>fou</varname></entry>
          <entry>Foo-over-UDP tunneling.</entry></row>

          <row><entry><varname>xfrm</varname></entry>
          <entry>A virtual tunnel interface like vti/vti6 but with several advantages.</entry></row>

          <row><entry><varname>ifb</varname></entry>
          <entry>The Intermediate Functional Block (ifb) pseudo network interface acts as a QoS concentrator for multiple different sources of traffic.</entry></row>

          <row><entry><varname>bareudp</varname></entry>
          <entry>Bare UDP tunnels provide a generic L3 encapsulation support for tunnelling different L3 protocols like MPLS, IP etc. inside of an UDP tunnel.</entry></row>

          <row><entry><varname>batadv</varname></entry>
          <entry><ulink url="https://www.open-mesh.org/projects/open-mesh/wiki">B.A.T.M.A.N. Advanced</ulink> is a routing protocol for multi-hop mobile ad-hoc networks which operates on layer 2.</entry></row>

          <row><entry><varname>ipoib</varname></entry>
          <entry>An IP over Infiniband subinterface.</entry></row>

          <row><entry><varname>wlan</varname></entry>
          <entry>A virtual wireless network (WLAN) interface.</entry></row>
        </tbody>
      </tgroup>
    </table>

  </refsect1>

  <refsect1>
    <title>[Match] Section Options</title>

    <para>A virtual network device is only created if the [Match] section matches the current
    environment, or if the section is empty. The following keys are accepted:</para>

    <variablelist class='network-directives'>
      <xi:include href="systemd.link.xml" xpointer="host" />
      <xi:include href="systemd.link.xml" xpointer="virtualization" />
      <xi:include href="systemd.link.xml" xpointer="kernel-command-line" />
      <xi:include href="systemd.link.xml" xpointer="kernel-version" />
      <xi:include href="systemd.link.xml" xpointer="credential" />
      <xi:include href="systemd.link.xml" xpointer="architecture" />
      <xi:include href="systemd.link.xml" xpointer="firmware" />
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[NetDev] Section Options</title>

    <para>The [NetDev] section accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Description=</varname></term>
        <listitem>
          <para>A free-form description of the netdev.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Name=</varname></term>
        <listitem>
          <para>The interface name used when creating the netdev.
          This setting is compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Kind=</varname></term>
        <listitem>
          <para>The netdev kind. This setting is compulsory. See the
          <literal>Supported netdev kinds</literal> section for the
          valid keys.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MTUBytes=</varname></term>
        <listitem>
          <para>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. For <literal>tun</literal> or
          <literal>tap</literal> devices, <varname>MTUBytes=</varname> setting is not currently supported in
          [NetDev] section. Please specify it in [Link] section of
          corresponding
          <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>
          files.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MACAddress=</varname></term>
        <listitem>
          <para>Specifies the MAC address to use for the device, or takes the special value
          <literal>none</literal>. When <literal>none</literal>, <command>systemd-networkd</command>
          does not request the MAC address for the device, and the kernel will assign a random MAC
          address. For <literal>tun</literal>, <literal>tap</literal>, or <literal>l2tp</literal>
          devices, the <varname>MACAddress=</varname> setting in the [NetDev] section is not
          supported and will be ignored. Please specify it in the [Link] section of the corresponding
          <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>
          file. If this option is not set, <literal>vlan</literal> device inherits the MAC address of
          the master interface. For other kind of netdevs, if this option is not set, then the MAC
          address is generated based on the interface name and the
          <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
          </para>
          <para>Note, even if <literal>none</literal> is specified, <command>systemd-udevd</command>
          will assign the persistent MAC address for the device, as <filename>99-default.link</filename>
          has <varname>MACAddressPolicy=persistent</varname>. So, it is also necessary to create a
          custom .link file for the device, if the MAC address assignment is not desired.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[Bridge] Section Options</title>

    <para>The [Bridge] section only applies for
    netdevs of kind <literal>bridge</literal>, and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>HelloTimeSec=</varname></term>
        <listitem>
          <para>HelloTimeSec specifies the number of seconds between two hello packets
          sent out by the root bridge and the designated bridges. Hello packets are
          used to communicate information about the topology throughout the entire
          bridged local area network.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MaxAgeSec=</varname></term>
        <listitem>
          <para>MaxAgeSec specifies the number of seconds of maximum message age.
          If the last seen (received) hello packet is more than this number of
          seconds old, the bridge in question will start the takeover procedure
          in attempt to become the Root Bridge itself.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ForwardDelaySec=</varname></term>
        <listitem>
          <para>ForwardDelaySec specifies the number of seconds spent in each
          of the Listening and Learning states before the Forwarding state is entered.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>AgeingTimeSec=</varname></term>
        <listitem>
          <para>This specifies the number of seconds a MAC Address will be kept in
          the forwarding database after having a packet received from this MAC Address.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Priority=</varname></term>
        <listitem>
          <para>The priority of the bridge. An integer between 0 and 65535. A lower value
          means higher priority. The bridge having the lowest priority will be elected as root bridge.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>GroupForwardMask=</varname></term>
        <listitem>
          <para>A 16-bit bitmask represented as an integer which allows forwarding of link
          local frames with 802.1D reserved addresses (01:80:C2:00:00:0X). A logical AND
          is performed between the specified bitmask and the exponentiation of 2^X, the
          lower nibble of the last octet of the MAC address. For example, a value of 8
          would allow forwarding of frames addressed to 01:80:C2:00:00:03 (802.1X PAE).</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>DefaultPVID=</varname></term>
        <listitem>
          <para>This specifies the default port VLAN ID of a newly attached bridge port.
          Set this to an integer in the range 1…4094 or <literal>none</literal> to disable the PVID.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MulticastQuerier=</varname></term>
        <listitem>
          <para>Takes a boolean. This setting controls the IFLA_BR_MCAST_QUERIER option in the kernel.
          If enabled, the kernel will send general ICMP queries from a zero source address.
          This feature should allow faster convergence on startup, but it causes some
          multicast-aware switches to misbehave and disrupt forwarding of multicast packets.
          When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MulticastSnooping=</varname></term>
        <listitem>
          <para>Takes a boolean. This setting controls the IFLA_BR_MCAST_SNOOPING option in the kernel.
          If enabled, IGMP snooping monitors the Internet Group Management Protocol (IGMP) traffic
          between hosts and multicast routers. When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>VLANFiltering=</varname></term>
        <listitem>
          <para>Takes a boolean. This setting controls the IFLA_BR_VLAN_FILTERING option in the kernel.
          If enabled, the bridge will be started in VLAN-filtering mode. When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>VLANProtocol=</varname></term>
        <listitem>
          <para>Allows setting the protocol used for VLAN filtering. Takes
          <option>802.1q</option> or,
          <option>802.1ad</option>, and defaults to unset and kernel's default is used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>STP=</varname></term>
        <listitem>
          <para>Takes a boolean. This enables the bridge's Spanning Tree Protocol (STP).
          When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MulticastIGMPVersion=</varname></term>
        <listitem>
          <para>Allows changing bridge's multicast Internet Group Management Protocol (IGMP) version.
          Takes an integer 2 or 3. When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[VLAN] Section Options</title>

    <para>The [VLAN] 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 setting is compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Protocol=</varname></term>
        <listitem>
          <para>Allows setting the protocol used for the VLAN interface. Takes <literal>802.1q</literal> or,
          <literal>802.1ad</literal>, and defaults to unset and kernel's default is used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>GVRP=</varname></term>
        <listitem>
          <para>Takes a boolean. The Generic VLAN Registration Protocol (GVRP) is a protocol that
          allows automatic learning of VLANs on a network.
          When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MVRP=</varname></term>
        <listitem>
          <para>Takes a boolean. Multiple VLAN Registration Protocol (MVRP) formerly known as GARP VLAN
          Registration Protocol (GVRP) is a standards-based Layer 2 network protocol,
          for automatic configuration of VLAN information on switches. It was defined
          in the 802.1ak amendment to 802.1Q-2005. When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>LooseBinding=</varname></term>
        <listitem>
          <para>Takes a boolean. The VLAN loose binding mode, in which only the operational state is passed
          from the parent to the associated VLANs, but the VLAN device state is not changed.
          When unset, the kernel's default will be used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ReorderHeader=</varname></term>
        <listitem>
          <para>Takes a boolean. When enabled, the VLAN reorder header is used and VLAN interfaces behave
          like physical interfaces. When unset, the kernel's default will be used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>EgressQOSMaps=</varname></term>
        <term><varname>IngressQOSMaps=</varname></term>
        <listitem>
          <para>Defines a mapping of Linux internal packet priority (<constant>SO_PRIORITY</constant>)
          to VLAN header PCP field for outgoing and incoming frames, respectively. Takes a
          whitespace-separated list of integer pairs, where each integer must be in the range
          1…4294967294, in the format <literal>from</literal>-<literal>to</literal>, e.g.,
          <literal>21-7 45-5</literal>. Note that <literal>from</literal> must be greater than or equal
          to <literal>to</literal>. When unset, the kernel's default will be used.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[MACVLAN] Section Options</title>

    <para>The [MACVLAN] section only applies for
    netdevs of kind <literal>macvlan</literal>, and accepts the
    following key:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Mode=</varname></term>
        <listitem>
          <para>The MACVLAN mode to use. The supported options are
          <literal>private</literal>,
          <literal>vepa</literal>,
          <literal>bridge</literal>,
          <literal>passthru</literal>, and
          <literal>source</literal>.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>SourceMACAddress=</varname></term>
        <listitem>
          <para>A whitespace-separated list of remote hardware addresses allowed on the MACVLAN. This
          option only has an effect in source mode. Use full colon-, hyphen- or dot-delimited
          hexadecimal. This option may appear more than once, in which case the lists are merged. If
          the empty string is assigned to this option, the list of hardware addresses defined prior
          to this is reset. Defaults to unset.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>BroadcastMulticastQueueLength=</varname></term>
        <listitem>
          <para>Specifies the length of the receive queue for broadcast/multicast packets. An unsigned
          integer in the range 0…4294967294. Defaults to unset.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[MACVTAP] Section Options</title>

    <para>The [MACVTAP] section applies for netdevs of kind <literal>macvtap</literal> and accepts the same
    keys as [MACVLAN].</para>
  </refsect1>

  <refsect1>
    <title>[IPVLAN] Section Options</title>

    <para>The [IPVLAN] section only applies for
    netdevs of kind <literal>ipvlan</literal>, and accepts the
    following key:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Mode=</varname></term>
        <listitem>
          <para>The IPVLAN mode to use. The supported options are
          <literal>L2</literal>,<literal>L3</literal> and <literal>L3S</literal>.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Flags=</varname></term>
        <listitem>
          <para>The IPVLAN flags to use. The supported options are
          <literal>bridge</literal>,<literal>private</literal> and <literal>vepa</literal>.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[IPVTAP] Section Options</title>

    <para>The [IPVTAP] section only applies for netdevs of kind <literal>ipvtap</literal> and accepts the
    same keys as [IPVLAN].</para>
  </refsect1>

  <refsect1>
    <title>[VXLAN] Section Options</title>

    <para>The [VXLAN] section only applies for
    netdevs of kind <literal>vxlan</literal>, and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>VNI=</varname></term>
        <listitem>
          <para>The VXLAN Network Identifier (or VXLAN Segment ID). Takes a number in the range 1…16777215.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Remote=</varname></term>
        <listitem>
          <para>Configures destination IP address.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Local=</varname></term>
        <listitem>
          <para>Configures local IP address. It must be an address on the underlying interface of the
          VXLAN interface, or one of the special values <literal>ipv4_link_local</literal>,
          <literal>ipv6_link_local</literal>, <literal>dhcp4</literal>, <literal>dhcp6</literal>, and
          <literal>slaac</literal>. If one of the special values is specified, an address which matches
          the corresponding type on the underlying interface will be used. Defaults to unset.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Group=</varname></term>
        <listitem>
          <para>Configures VXLAN multicast group IP address. All members of a VXLAN must use the same
          multicast group address.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>TOS=</varname></term>
        <listitem>
          <para>The Type Of Service byte value for a vxlan interface.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>TTL=</varname></term>
        <listitem>
          <para>A fixed Time To Live N on Virtual eXtensible Local Area Network packets.
          Takes <literal>inherit</literal> or a number in the range 0…255. 0 is a special
          value meaning inherit the inner protocol's TTL value. <literal>inherit</literal>
          means that it will inherit the outer protocol's TTL value.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MacLearning=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, enables dynamic MAC learning
          to discover remote MAC addresses.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FDBAgeingSec=</varname></term>
        <listitem>
          <para>The lifetime of Forwarding Database entry learnt by
          the kernel, in seconds.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MaximumFDBEntries=</varname></term>
        <listitem>
          <para>Configures maximum number of FDB entries.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ReduceARPProxy=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, bridge-connected VXLAN tunnel
          endpoint answers ARP requests from the local bridge on behalf
          of remote Distributed Overlay Virtual Ethernet
          <ulink url="https://en.wikipedia.org/wiki/Distributed_Overlay_Virtual_Ethernet">
          (DOVE)</ulink> clients. Defaults to false.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>L2MissNotification=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, enables netlink LLADDR miss
          notifications.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>L3MissNotification=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, enables netlink IP address miss notifications.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RouteShortCircuit=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, route short circuiting is turned
          on.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDPChecksum=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, transmitting UDP checksums when doing VXLAN/IPv4 is turned on.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDP6ZeroChecksumTx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, sending zero checksums in VXLAN/IPv6 is turned on.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDP6ZeroChecksumRx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, receiving zero checksums in VXLAN/IPv6 is turned on.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RemoteChecksumTx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, remote transmit checksum offload of VXLAN is turned on.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RemoteChecksumRx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, remote receive checksum offload in VXLAN is turned on.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>GroupPolicyExtension=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, it enables Group Policy VXLAN extension security label mechanism
          across network peers based on VXLAN. For details about the Group Policy VXLAN, see the
          <ulink url="https://tools.ietf.org/html/draft-smith-vxlan-group-policy">
          VXLAN Group Policy </ulink> document. Defaults to false.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>GenericProtocolExtension=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, Generic Protocol Extension extends the existing VXLAN protocol
          to provide protocol typing, OAM, and versioning capabilities. For details about the VXLAN GPE
          Header, see the <ulink url="https://tools.ietf.org/html/draft-ietf-nvo3-vxlan-gpe-07">
          Generic Protocol Extension for VXLAN </ulink> document. If destination port is not specified and
          Generic Protocol Extension is set then default port of 4790 is used. Defaults to false.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>DestinationPort=</varname></term>
        <listitem>
          <para>Configures the default destination UDP port. If the destination port is not specified then
          Linux kernel default will be used. Set to 4789 to get the IANA assigned value.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PortRange=</varname></term>
        <listitem>
          <para>Configures the source port range for the VXLAN. The kernel assigns the source UDP port based
          on the flow to help the receiver to do load balancing. When this option is not set, the normal
          range of local UDP ports is used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FlowLabel=</varname></term>
        <listitem>
          <para>Specifies the flow label to use in outgoing packets.
          The valid range is 0-1048575.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>IPDoNotFragment=</varname></term>
        <listitem>
          <para>Allows setting the IPv4 Do not Fragment (DF) bit in outgoing packets, or to inherit its
          value from the IPv4 inner header. Takes a boolean value, or <literal>inherit</literal>. Set
          to <literal>inherit</literal> if the encapsulated protocol is IPv6. When unset, the kernel's
          default will be used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Independent=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, the vxlan interface is created without any underlying network
          interface. Defaults to false, which means that a .network file that requests this VXLAN interface
          using <varname>VXLAN=</varname> is required for the VXLAN to be created.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[GENEVE] Section Options</title>

    <para>The [GENEVE] section only applies for
    netdevs of kind <literal>geneve</literal>, and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Id=</varname></term>
        <listitem>
          <para>Specifies the Virtual Network Identifier (VNI) to use, a number between 0 and 16777215. This
          field is mandatory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Remote=</varname></term>
        <listitem>
          <para>Specifies the unicast destination IP address to use in outgoing packets.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>TOS=</varname></term>
        <listitem>
          <para>Specifies the TOS value to use in outgoing packets. Takes a number between 1 and 255.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>TTL=</varname></term>
        <listitem>
          <para>Accepts the same values as in the [VXLAN] section, except that when unset
          or set to 0, the kernel's default will be used, meaning that packet TTL will be set from
          <filename>/proc/sys/net/ipv4/ip_default_ttl</filename>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDPChecksum=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, specifies that UDP checksum is calculated for transmitted packets
          over IPv4.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDP6ZeroChecksumTx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, skip UDP checksum calculation for transmitted packets over IPv6.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDP6ZeroChecksumRx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, allows incoming UDP packets over IPv6 with zero checksum field.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>DestinationPort=</varname></term>
        <listitem>
          <para>Specifies destination port. Defaults to 6081. If not set or assigned the empty string, the default
          port of 6081 is used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FlowLabel=</varname></term>
        <listitem>
          <para>Specifies the flow label to use in outgoing packets.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>IPDoNotFragment=</varname></term>
        <listitem>
          <para>Accepts the same key as in [VXLAN] section.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[BareUDP] Section Options</title>

    <para>The [BareUDP] section only applies for
    netdevs of kind <literal>bareudp</literal>, and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>DestinationPort=</varname></term>
        <listitem>
          <para>Specifies the destination UDP port (in range 1…65535). This is mandatory.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>EtherType=</varname></term>
        <listitem>
          <para>Specifies the L3 protocol. Takes one of <literal>ipv4</literal>, <literal>ipv6</literal>, <literal>mpls-uc</literal>
          or <literal>mpls-mc</literal>. This is mandatory.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[L2TP] Section Options</title>

    <para>The [L2TP] section only applies for
    netdevs of kind <literal>l2tp</literal>, and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>TunnelId=</varname></term>
        <listitem>
          <para>Specifies the tunnel identifier. Takes an number in the range 1…4294967295. The value used
          must match the <literal>PeerTunnelId=</literal> value being used at the peer. This setting is
          compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PeerTunnelId=</varname></term>
        <listitem>
          <para>Specifies the peer tunnel id. Takes a number in the range 1…4294967295. The value used must
          match the <literal>TunnelId=</literal> value being used at the peer. This setting is compulsory.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Remote=</varname></term>
        <listitem>
          <para>Specifies the IP address of the remote peer. This setting is compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Local=</varname></term>
        <listitem>
          <para>Specifies the IP address of a local interface. Takes an IP address, or the special
          values <literal>auto</literal>, <literal>static</literal>, or <literal>dynamic</literal>.
          Optionally a name of a local interface can be specified after <literal>@</literal>, e.g.
          <literal>192.168.0.1@eth0</literal> or <literal>auto@eth0</literal>. When an address is
          specified, then a local or specified interface must have the address, and the remote address
          must be accessible through the local address. If <literal>auto</literal>, then one of the
          addresses on a local or specified interface which is accessible to the remote address will be
          used. Similarly, if <literal>static</literal> or <literal>dynamic</literal> is set, then one
          of the static or dynamic addresses will be used. Defaults to <literal>auto</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>EncapsulationType=</varname></term>
        <listitem>
          <para>Specifies the encapsulation type of the tunnel. Takes one of <literal>udp</literal> or
          <literal>ip</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDPSourcePort=</varname></term>
        <listitem>
          <para>Specifies the UDP source port to be used for the tunnel. When UDP encapsulation is selected
          it's mandatory. Ignored when IP encapsulation is selected.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDPDestinationPort=</varname></term>
        <listitem>
          <para>Specifies destination port. When UDP encapsulation is selected it's mandatory. Ignored when IP
          encapsulation is selected.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDPChecksum=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, specifies that UDP checksum is calculated for transmitted packets
          over IPv4.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDP6ZeroChecksumTx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, skip UDP checksum calculation for transmitted packets over IPv6.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UDP6ZeroChecksumRx=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, allows incoming UDP packets over IPv6 with zero checksum field.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[L2TPSession] Section Options</title>

    <para>The [L2TPSession] section only applies for
    netdevs of kind <literal>l2tp</literal>, and accepts the
    following keys:</para>
    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Name=</varname></term>
        <listitem>
          <para>Specifies the name of the session. This setting is compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>SessionId=</varname></term>
        <listitem>
          <para>Specifies the session identifier. Takes an number in the range 1…4294967295. The value used
          must match the <literal>SessionId=</literal> value being used at the peer. This setting is
          compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PeerSessionId=</varname></term>
        <listitem>
          <para>Specifies the peer session identifier. Takes an number in the range 1…4294967295.
          The value used must match the <literal>PeerSessionId=</literal> value being used at the peer.
          This setting is compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Layer2SpecificHeader=</varname></term>
        <listitem>
          <para>Specifies layer2specific header type of the session. One of <literal>none</literal> or <literal>default</literal>. Defaults to <literal>default</literal>.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[MACsec] Section Options</title>

    <para>The [MACsec] section only applies for network devices of kind
    <literal>macsec</literal>, and accepts the following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Port=</varname></term>
        <listitem>
          <para>Specifies the port to be used for the MACsec transmit channel. The port is used to make
          secure channel identifier (SCI). Takes a value between 1 and 65535. Defaults to unset.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Encrypt=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, enable encryption. Defaults to unset.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[MACsecReceiveChannel] Section Options</title>
    <para>The [MACsecReceiveChannel] section only applies for network devices of
    kind <literal>macsec</literal>, and accepts the following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Port=</varname></term>
        <listitem>
          <para>Specifies the port to be used for the MACsec receive channel. The port is used to make
          secure channel identifier (SCI). Takes a value between 1 and 65535. This option is
          compulsory, and is not set by default.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MACAddress=</varname></term>
        <listitem>
          <para>Specifies the MAC address to be used for the MACsec receive channel. The MAC address
          used to make secure channel identifier (SCI). This setting is compulsory, and is not set by
          default.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[MACsecTransmitAssociation] Section Options</title>

    <para>The [MACsecTransmitAssociation] section only applies for network devices
    of kind <literal>macsec</literal>, and accepts the following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>PacketNumber=</varname></term>
        <listitem>
          <para>Specifies the packet number to be used for replay protection and the construction of
          the initialization vector (along with the secure channel identifier [SCI]). Takes a value
          between 1-4,294,967,295. Defaults to unset.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>KeyId=</varname></term>
        <listitem>
          <para>Specifies the identification for the key. Takes a number between 0-255. This option
          is compulsory, and is not set by default.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Key=</varname></term>
        <listitem>
          <para>Specifies the encryption key used in the transmission channel. The same key must be
          configured on the peer’s matching receive channel. This setting is compulsory, and is not set
          by default. Takes a 128-bit key encoded in a hexadecimal string, for example
          <literal>dffafc8d7b9a43d5b9a3dfbbf6a30c16</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>KeyFile=</varname></term>
        <listitem>
          <para>Takes an absolute path to a file which contains a 128-bit key encoded in a hexadecimal string,
          which will be used in the transmission channel. When this option is specified,
          <varname>Key=</varname> is ignored. Note that the file must be readable by the user
          <literal>systemd-network</literal>, so it should be, e.g., owned by
          <literal>root:systemd-network</literal> with a <literal>0640</literal> file mode. If the path
          refers to an <constant>AF_UNIX</constant> stream socket in the file system a connection is made to
          it and the key read from it.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Activate=</varname></term>
        <listitem>
          <para>Takes a boolean. If enabled, then the security association is activated. Defaults to
          unset.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>UseForEncoding=</varname></term>
        <listitem>
          <para>Takes a boolean. If enabled, then the security association is used for encoding. Only
          one [MACsecTransmitAssociation] section can enable this option. When enabled,
          <varname>Activate=yes</varname> is implied. Defaults to unset.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[MACsecReceiveAssociation] Section Options</title>

    <para>The [MACsecReceiveAssociation] section only applies for
    network devices of kind <literal>macsec</literal>, and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Port=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecReceiveChannel] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MACAddress=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecReceiveChannel] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PacketNumber=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecTransmitAssociation] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>KeyId=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecTransmitAssociation] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Key=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecTransmitAssociation] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>KeyFile=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecTransmitAssociation] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Activate=</varname></term>
        <listitem>
          <para>Accepts the same key as in [MACsecTransmitAssociation] section.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[Tunnel] Section Options</title>

    <para>The [Tunnel] section only applies for
    netdevs of kind
    <literal>ipip</literal>,
    <literal>sit</literal>,
    <literal>gre</literal>,
    <literal>gretap</literal>,
    <literal>ip6gre</literal>,
    <literal>ip6gretap</literal>,
    <literal>vti</literal>,
    <literal>vti6</literal>,
    <literal>ip6tnl</literal>, and
    <literal>erspan</literal> and accepts
    the following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>External=</varname></term>
        <listitem>
          <para>Takes a boolean value. When true, then the tunnel is externally controlled, which is
          also known as collect metadata mode, and most settings below like <varname>Local=</varname>
          or <varname>Remote=</varname> are ignored. This implies <varname>Independent=</varname>.
          Defaults to false.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Local=</varname></term>
        <listitem>
          <para>A static local address for tunneled packets. It must be an address on another interface
          of this host, or one of the special values <literal>any</literal>,
          <literal>ipv4_link_local</literal>, <literal>ipv6_link_local</literal>,
          <literal>dhcp4</literal>, <literal>dhcp6</literal>, and <literal>slaac</literal>. If one
          of the special values except for <literal>any</literal> is specified, an address which
          matches the corresponding type on the underlying interface will be used. Defaults to
          <literal>any</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Remote=</varname></term>
        <listitem>
          <para>The remote endpoint of the tunnel. Takes an IP address or the special value
          <literal>any</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>TOS=</varname></term>
        <listitem>
          <para>The Type Of Service byte value for a tunnel interface.
          For details about the TOS, see the
          <ulink url="http://tools.ietf.org/html/rfc1349"> Type of
          Service in the Internet Protocol Suite </ulink> document.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>TTL=</varname></term>
        <listitem>
          <para>A fixed Time To Live N on tunneled packets. N is a
          number in the range 1…255. 0 is a special value meaning that
          packets inherit the TTL value. The default value for IPv4
          tunnels is 0 (inherit). The default value for IPv6 tunnels is
          64.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>DiscoverPathMTU=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, enables Path MTU Discovery on
          the tunnel.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>IPv6FlowLabel=</varname></term>
        <listitem>
          <para>Configures the 20-bit flow label (see <ulink url="https://tools.ietf.org/html/rfc6437">
          RFC 6437</ulink>) field in the IPv6 header (see <ulink url="https://tools.ietf.org/html/rfc2460">
          RFC 2460</ulink>), which is used by a node to label packets of a flow.
          It is only used for IPv6 tunnels.
          A flow label of zero is used to indicate packets that have
          not been labeled.
          It can be configured to a value in the range 0…0xFFFFF, or be
          set to <literal>inherit</literal>, in which case the original flowlabel is used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>CopyDSCP=</varname></term>
        <listitem>
          <para>Takes a boolean. When true, the Differentiated Service Code
          Point (DSCP) field will be copied to the inner header from
          outer header during the decapsulation of an IPv6 tunnel
          packet. DSCP is a field in an IP packet that enables different
          levels of service to be assigned to network traffic.
          Defaults to <literal>no</literal>.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>EncapsulationLimit=</varname></term>
        <listitem>
          <para>The Tunnel Encapsulation Limit option specifies how many additional
          levels of encapsulation are permitted to be prepended to the packet.
          For example, a Tunnel Encapsulation Limit option containing a limit
          value of zero means that a packet carrying that option may not enter
          another tunnel before exiting the current tunnel.
          (see <ulink url="https://tools.ietf.org/html/rfc2473#section-4.1.1"> RFC 2473</ulink>).
          The valid range is 0…255 and <literal>none</literal>. Defaults to 4.
        </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Key=</varname></term>
        <listitem>
          <para>The <varname>Key=</varname> parameter specifies the same key to use in
          both directions (<varname>InputKey=</varname> and <varname>OutputKey=</varname>).
          The <varname>Key=</varname> is either a number or an IPv4 address-like dotted quad.
          It is used as mark-configured SAD/SPD entry as part of the lookup key (both in data
          and control path) in IP XFRM (framework used to implement IPsec protocol).
          See <ulink url="https://man7.org/linux/man-pages/man8/ip-xfrm.8.html">
          ip-xfrm — transform configuration</ulink> for details. It is only used for VTI/VTI6,
          GRE, GRETAP, and ERSPAN tunnels.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>InputKey=</varname></term>
        <listitem>
          <para>The <varname>InputKey=</varname> parameter specifies the key to use for input.
          The format is same as <varname>Key=</varname>. It is only used for VTI/VTI6, GRE, GRETAP,
          and ERSPAN tunnels.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>OutputKey=</varname></term>
        <listitem>
          <para>The <varname>OutputKey=</varname> parameter specifies the key to use for output.
          The format is same as <varname>Key=</varname>. It is only used for VTI/VTI6, GRE, GRETAP,
          and ERSPAN tunnels.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Mode=</varname></term>
        <listitem>
          <para>An <literal>ip6tnl</literal> tunnel can be in one of three
          modes
          <literal>ip6ip6</literal> for IPv6 over IPv6,
          <literal>ipip6</literal> for IPv4 over IPv6 or
          <literal>any</literal> for either.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Independent=</varname></term>
        <listitem>
          <para>Takes a boolean. When false (the default), the tunnel is always created over some network
          device, and a .network file that requests this tunnel using <varname>Tunnel=</varname> is required
          for the tunnel to be created. When true, the tunnel is created independently of any network as
          "tunnel@NONE".</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>AssignToLoopback=</varname></term>
        <listitem>
          <para>Takes a boolean. If set to <literal>yes</literal>, the loopback interface <literal>lo</literal>
          is used as the underlying device of the tunnel interface. Defaults to <literal>no</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>AllowLocalRemote=</varname></term>
        <listitem>
          <para>Takes a boolean. When true allows tunnel traffic on <varname>ip6tnl</varname> devices where the remote endpoint is a local host address.
          When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FooOverUDP=</varname></term>
        <listitem>
          <para>Takes a boolean. Specifies whether <varname>FooOverUDP=</varname> tunnel is to be configured.
          Defaults to false. This takes effects only for IPIP, SIT, GRE, and GRETAP tunnels.
          For more detail information see
          <ulink url="https://lwn.net/Articles/614348">Foo over UDP</ulink></para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FOUDestinationPort=</varname></term>
        <listitem>
          <para>This setting specifies the UDP destination port for encapsulation.
          This field is mandatory when <varname>FooOverUDP=yes</varname>, and is not set by default.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FOUSourcePort=</varname></term>
        <listitem>
          <para>This setting specifies the UDP source port for encapsulation. Defaults to <constant>0</constant>
          — that is, the source port for packets is left to the network stack to decide.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Encapsulation=</varname></term>
        <listitem>
          <para>Accepts the same key as in the [FooOverUDP] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>IPv6RapidDeploymentPrefix=</varname></term>
        <listitem>
          <para>Reconfigure the tunnel for <ulink url="https://tools.ietf.org/html/rfc5569">IPv6 Rapid
          Deployment</ulink>, also known as 6rd. The value is an ISP-specific IPv6 prefix with a non-zero length. Only
          applicable to SIT tunnels.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ISATAP=</varname></term>
        <listitem>
          <para>Takes a boolean. If set, configures the tunnel as Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) tunnel.
          Only applicable to SIT tunnels. When unset, the kernel's default will be used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>SerializeTunneledPackets=</varname></term>
        <listitem>
          <para>Takes a boolean. If set to yes, then packets are serialized. Only applies for GRE,
          GRETAP, and ERSPAN tunnels. When unset, the kernel's default will be used.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ERSPANVersion=</varname></term>
        <listitem>
          <para>Specifies the ERSPAN version number. Takes 0 for version 0 (a.k.a. type I), 1 for version 1
          (a.k.a. type II), or 2 for version 2 (a.k.a. type III). Defaults to 1.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ERSPANIndex=</varname></term>
        <listitem>
          <para>Specifies the ERSPAN v1 index field for the interface. Takes an integer in the range
          0…1048575, which is associated with the ERSPAN traffic's source port and direction. Only used when
          <varname>ERSPANVersion=1</varname>. Defaults to 0.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ERSPANDirection=</varname></term>
        <listitem>
          <para>Specifies the ERSPAN v2 mirrored traffic's direction. Takes <literal>ingress</literal> or
          <literal>egress</literal>. Only used when <varname>ERSPANVersion=2</varname>. Defaults to
          <literal>ingress</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ERSPANHardwareId=</varname></term>
        <listitem>
          <para>Specifies an unique identifier of the ERSPAN v2 engine. Takes an integer in the range 0…63.
          Only used when <varname>ERSPANVersion=2</varname>. Defaults to 0.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[FooOverUDP] Section Options</title>

    <para>The [FooOverUDP] section only applies for
    netdevs of kind <literal>fou</literal> and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Encapsulation=</varname></term>
        <listitem>
          <para>Specifies the encapsulation mechanism used to store networking packets of various protocols
          inside the UDP packets. Supports the following values:

          <literal>FooOverUDP</literal> provides the simplest no-frills model of UDP encapsulation, it simply
          encapsulates packets directly in the UDP payload. <literal>GenericUDPEncapsulation</literal> is a
          generic and extensible encapsulation, it allows encapsulation of packets for any IP protocol and
          optional data as part of the encapsulation. For more detailed information see <ulink
          url="https://lwn.net/Articles/615044">Generic UDP Encapsulation</ulink>. Defaults to
          <literal>FooOverUDP</literal>.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Port=</varname></term>
        <listitem>
          <para>Specifies the port number where the encapsulated packets will arrive. Those packets will be
          removed and manually fed back into the network stack with the encapsulation removed to be sent to
          the real destination. This option is mandatory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PeerPort=</varname></term>
        <listitem>
          <para>Specifies the peer port number. Defaults to unset. Note that when peer port is set
          <literal>Peer=</literal> address is mandatory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Protocol=</varname></term>
        <listitem>
          <para>The <varname>Protocol=</varname> specifies the protocol number of the packets arriving
          at the UDP port. When <varname>Encapsulation=FooOverUDP</varname>, this field is mandatory
          and is not set by default. Takes an IP protocol name such as <literal>gre</literal> or
          <literal>ipip</literal>, or an integer within the range 1…255. When
          <varname>Encapsulation=GenericUDPEncapsulation</varname>, this must not be specified.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Peer=</varname></term>
        <listitem>
          <para>Configures peer IP address. Note that when peer address is set <literal>PeerPort=</literal>
          is mandatory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Local=</varname></term>
        <listitem>
          <para>Configures local IP address.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[Peer] Section Options</title>

    <para>The [Peer] section only applies for
    netdevs of kind <literal>veth</literal> and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Name=</varname></term>
        <listitem>
          <para>The interface name used when creating the netdev.
          This setting is compulsory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>MACAddress=</varname></term>
        <listitem>
          <para>The peer MACAddress, if not set, it is generated in
          the same way as the MAC address of the main
          interface.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[VXCAN] Section Options</title>

    <para>The [VXCAN] section only applies for
    netdevs of kind <literal>vxcan</literal> and accepts the
    following key:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Peer=</varname></term>
        <listitem>
          <para>The peer interface name used when creating the netdev.
          This setting is compulsory.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[Tun] Section Options</title>

    <para>The [Tun] section only applies for
    netdevs of kind <literal>tun</literal>, and accepts the following
    keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>MultiQueue=</varname></term>
        <listitem><para>Takes a boolean. Configures whether
        to use multiple file descriptors (queues) to parallelize
        packets sending and receiving. Defaults to
        <literal>no</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PacketInfo=</varname></term>
        <listitem><para>Takes a boolean. Configures whether
        packets should be prepended with four extra bytes (two flag
        bytes and two protocol bytes). If disabled, it indicates that
        the packets will be pure IP packets. Defaults to
        <literal>no</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>VNetHeader=</varname></term>
        <listitem><para>Takes a boolean. Configures
        IFF_VNET_HDR flag for a tun or tap device. It allows sending
        and receiving larger Generic Segmentation Offload (GSO)
        packets. This may increase throughput significantly.
        Defaults to
        <literal>no</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>User=</varname></term>
        <listitem><para>User to grant access to the
        <filename>/dev/net/tun</filename> device.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Group=</varname></term>
        <listitem><para>Group to grant access to the
        <filename>/dev/net/tun</filename> device.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>KeepCarrier=</varname></term>
        <listitem>
          <para>Takes a boolean. If enabled, to make the interface maintain its carrier status, the file
          descriptor of the interface is kept open. This may be useful to keep the interface in running
          state, for example while the backing process is temporarily shutdown. Defaults to
          <literal>no</literal>.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[Tap] Section Options</title>

    <para>The [Tap] section only applies for
    netdevs of kind <literal>tap</literal>, and accepts the same keys
    as the [Tun] section.</para>
  </refsect1>

  <refsect1>
    <title>[WireGuard] Section Options</title>

    <para>The [WireGuard] section accepts the following
    keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>PrivateKey=</varname></term>
        <listitem>
          <para>The Base64 encoded private key for the interface. It can be
          generated using the <command>wg genkey</command> command
          (see <citerefentry project="wireguard"><refentrytitle>wg</refentrytitle><manvolnum>8</manvolnum></citerefentry>).
          This option or <varname>PrivateKeyFile=</varname> is mandatory to use WireGuard.
          Note that because this information is secret, you may want to set
          the permissions of the .netdev file to be owned by <literal>root:systemd-network</literal>
          with a <literal>0640</literal> file mode.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PrivateKeyFile=</varname></term>
        <listitem>
          <para>Takes an absolute path to a file which contains the Base64 encoded private key for the
          interface.  When this option is specified, then <varname>PrivateKey=</varname> is ignored.  Note
          that the file must be readable by the user <literal>systemd-network</literal>, so it should be,
          e.g., owned by <literal>root:systemd-network</literal> with a <literal>0640</literal> file mode. If
          the path refers to an <constant>AF_UNIX</constant> stream socket in the file system a connection is
          made to it and the key read from it.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>ListenPort=</varname></term>
        <listitem>
          <para>Sets UDP port for listening. Takes either value between 1 and 65535
          or <literal>auto</literal>. If <literal>auto</literal> is specified,
          the port is automatically generated based on interface name.
          Defaults to <literal>auto</literal>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>FirewallMark=</varname></term>
        <listitem>
          <para>Sets a firewall mark on outgoing WireGuard packets from this interface. Takes a number between 1 and 4294967295.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RouteTable=</varname></term>
        <listitem>
          <para>The table identifier for the routes to the addresses specified in the
          <varname>AllowedIPs=</varname>. Takes a negative boolean value, one of the predefined names
          <literal>default</literal>, <literal>main</literal>, and <literal>local</literal>, names
          defined in <varname>RouteTable=</varname> in
          <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
          or a number in the range 1…4294967295. When <literal>off</literal> the routes to the
          addresses specified in the <varname>AllowedIPs=</varname> setting will not be configured.
          Defaults to false. This setting will be ignored when the same setting is specified in the
          [WireGuardPeer] section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RouteMetric=</varname></term>
        <listitem>
          <para>The priority of the routes to the addresses specified in the
          <varname>AllowedIPs=</varname>. Takes an integer in the range 0…4294967295. Defaults to 0
          for IPv4 addresses, and 1024 for IPv6 addresses. This setting will be ignored when the same
          setting is specified in the [WireGuardPeer] section.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[WireGuardPeer] Section Options</title>

    <para>The [WireGuardPeer] section accepts the following
    keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>PublicKey=</varname></term>
        <listitem>
          <para>Sets a Base64 encoded public key calculated by <command>wg pubkey</command>
          (see <citerefentry project="wireguard"><refentrytitle>wg</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
          from a private key, and usually transmitted out of band to the
          author of the configuration file. This option is mandatory for this
          section.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PresharedKey=</varname></term>
        <listitem>
          <para>Optional preshared key for the interface. It can be generated
          by the <command>wg genpsk</command> command. This option adds an
          additional layer of symmetric-key cryptography to be mixed into the
          already existing public-key cryptography, for post-quantum
          resistance.
          Note that because this information is secret, you may want to set
          the permissions of the .netdev file to be owned by <literal>root:systemd-network</literal>
          with a <literal>0640</literal> file mode.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PresharedKeyFile=</varname></term>
        <listitem>
          <para>Takes an absolute path to a file which contains the Base64 encoded preshared key for the
          peer. When this option is specified, then <varname>PresharedKey=</varname> is ignored.  Note that
          the file must be readable by the user <literal>systemd-network</literal>, so it should be, e.g.,
          owned by <literal>root:systemd-network</literal> with a <literal>0640</literal> file mode. If the
          path refers to an <constant>AF_UNIX</constant> stream socket in the file system a connection is
          made to it and the key read from it.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>AllowedIPs=</varname></term>
        <listitem>
          <para>Sets a comma-separated list of IP (v4 or v6) addresses with CIDR masks
          from which this peer is allowed to send incoming traffic and to
          which outgoing traffic for this peer is directed.</para>

          <para>The catch-all 0.0.0.0/0 may be specified for matching all IPv4 addresses,
          and ::/0 may be specified for matching all IPv6 addresses.</para>

          <para>Note that this only affects <emphasis>routing inside the network interface itself</emphasis>,
          i.e. the packets that pass through the tunnel itself. To cause packets to be sent via the tunnel in
          the first place, an appropriate route needs to be added as well — either in the
          <literal>[Routes]</literal> section on the <literal>.network</literal> matching the wireguard
          interface, or externally to <filename>systemd-networkd</filename>.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Endpoint=</varname></term>
        <listitem>
          <para>Sets an endpoint IP address or hostname, followed by a colon, and then
          a port number. This endpoint will be updated automatically once to
          the most recent source IP address and port of correctly
          authenticated packets from the peer at configuration time.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>PersistentKeepalive=</varname></term>
        <listitem>
          <para>Sets a seconds interval, between 1 and 65535 inclusive, of how often
          to send an authenticated empty packet to the peer for the purpose
          of keeping a stateful firewall or NAT mapping valid persistently.
          For example, if the interface very rarely sends traffic, but it
          might at anytime receive traffic from a peer, and it is behind NAT,
          the interface might benefit from having a persistent keepalive
          interval of 25 seconds. If set to 0 or "off", this option is
          disabled. By default or when unspecified, this option is off.
          Most users will not need this.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RouteTable=</varname></term>
        <listitem>
          <para>The table identifier for the routes to the addresses specified in the
          <varname>AllowedIPs=</varname>. Takes a negative boolean value, one of the predefined names
          <literal>default</literal>, <literal>main</literal>, and <literal>local</literal>, names
          defined in <varname>RouteTable=</varname> in
          <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
          or a number in the range 1…4294967295. Defaults to unset, and the value specified in the
          same setting in the [WireGuard] section will be used.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RouteMetric=</varname></term>
        <listitem>
          <para>The priority of the routes to the addresses specified in the
          <varname>AllowedIPs=</varname>. Takes an integer in the range 0…4294967295. Defaults to
          unset, and the value specified in the same setting in the [WireGuard] section will be used.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[Bond] Section Options</title>

    <para>The [Bond] section accepts the following
    key:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Mode=</varname></term>
        <listitem>
          <para>Specifies one of the bonding policies. The default is
          <literal>balance-rr</literal> (round robin). Possible values are
          <literal>balance-rr</literal>,
          <literal>active-backup</literal>,
          <literal>balance-xor</literal>,
          <literal>broadcast</literal>,
          <literal>802.3ad</literal>,
          <literal>balance-tlb</literal>, and
          <literal>balance-alb</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>TransmitHashPolicy=</varname></term>
        <listitem>
          <para>Selects the transmit hash policy to use for slave
          selection in balance-xor, 802.3ad, and tlb modes. Possible
          values are
          <literal>layer2</literal>,
          <literal>layer3+4</literal>,
          <literal>layer2+3</literal>,
          <literal>encap2+3</literal>, and
          <literal>encap3+4</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>LACPTransmitRate=</varname></term>
        <listitem>
          <para>Specifies the rate with which link partner transmits
          Link Aggregation Control Protocol Data Unit packets in
          802.3ad mode. Possible values are <literal>slow</literal>,
          which requests partner to transmit LACPDUs every 30 seconds,
          and <literal>fast</literal>, which requests partner to
          transmit LACPDUs every second. The default value is
          <literal>slow</literal>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>MIIMonitorSec=</varname></term>
        <listitem>
          <para>Specifies the frequency that Media Independent
          Interface link monitoring will occur. A value of zero
          disables MII link monitoring. This value is rounded down to
          the nearest millisecond. The default value is 0.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>UpDelaySec=</varname></term>
        <listitem>
          <para>Specifies the delay before a link is enabled after a
          link up status has been detected. This value is rounded down
          to a multiple of <varname>MIIMonitorSec=</varname>. The default value is
          0.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>DownDelaySec=</varname></term>
        <listitem>
          <para>Specifies the delay before a link is disabled after a
          link down status has been detected. This value is rounded
          down to a multiple of <varname>MIIMonitorSec=</varname>. The default value is
          0.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>LearnPacketIntervalSec=</varname></term>
        <listitem>
          <para>Specifies the number of seconds between instances where the bonding
          driver sends learning packets to each slave peer switch.
          The valid range is 1…0x7fffffff; the default value is 1. This option
          has an effect only for the balance-tlb and balance-alb modes.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>AdSelect=</varname></term>
        <listitem>
          <para>Specifies the 802.3ad aggregation selection logic to use. Possible values are
          <literal>stable</literal>,
          <literal>bandwidth</literal> and
          <literal>count</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>AdActorSystemPriority=</varname></term>
        <listitem>
          <para>Specifies the 802.3ad actor system priority. Takes a number in the range 1…65535.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>AdUserPortKey=</varname></term>
        <listitem>
          <para>Specifies the 802.3ad user defined portion of the port key. Takes a number in the range
          0…1023.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>AdActorSystem=</varname></term>
        <listitem>
          <para>Specifies the 802.3ad system MAC address. This cannot be a null or multicast address.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>FailOverMACPolicy=</varname></term>
        <listitem>
          <para>Specifies whether the active-backup mode should set all slaves to
          the same MAC address at the time of enslavement or, when enabled, to perform special handling of the
          bond's MAC address in accordance with the selected policy. The default policy is none.
          Possible values are
          <literal>none</literal>,
          <literal>active</literal> and
          <literal>follow</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ARPValidate=</varname></term>
        <listitem>
          <para>Specifies whether or not ARP probes and replies should be
          validated in any mode that supports ARP monitoring, or whether
          non-ARP traffic should be filtered (disregarded) for link
          monitoring purposes. Possible values are
          <literal>none</literal>,
          <literal>active</literal>,
          <literal>backup</literal> and
          <literal>all</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ARPIntervalSec=</varname></term>
        <listitem>
          <para>Specifies the ARP link monitoring frequency. A value of 0 disables ARP monitoring. The
          default value is 0, and the default unit seconds.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ARPIPTargets=</varname></term>
        <listitem>
          <para>Specifies the IP addresses to use as ARP monitoring peers when
          <varname>ARPIntervalSec=</varname> is greater than 0. These are the targets of the ARP
          request sent to determine the health of the link to the targets.
          Specify these values in IPv4 dotted decimal format. At least one IP
          address must be given for ARP monitoring to function. The
          maximum number of targets that can be specified is 16. The
          default value is no IP addresses.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ARPAllTargets=</varname></term>
        <listitem>
          <para>Specifies the quantity of <varname>ARPIPTargets=</varname> that must be reachable
          in order for the ARP monitor to consider a slave as being up.
          This option affects only active-backup mode for slaves with
          ARPValidate enabled. Possible values are
          <literal>any</literal> and
          <literal>all</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>PrimaryReselectPolicy=</varname></term>
        <listitem>
          <para>Specifies the reselection policy for the primary slave.  This
          affects how the primary slave is chosen to become the active slave
          when failure of the active slave or recovery of the primary slave
          occurs. This option is designed to prevent flip-flopping between
          the primary slave and other slaves.  Possible values are
          <literal>always</literal>,
          <literal>better</literal> and
          <literal>failure</literal>.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ResendIGMP=</varname></term>
        <listitem>
          <para>Specifies the number of IGMP membership reports to be issued after
          a failover event. One membership report is issued immediately after
          the failover, subsequent packets are sent in each 200ms interval.
          The valid range is 0…255. Defaults to 1. A value of 0
          prevents the IGMP membership report from being issued in response
          to the failover event.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>PacketsPerSlave=</varname></term>
        <listitem>
          <para>Specify the number of packets to transmit through a slave before
          moving to the next one. When set to 0, then a slave is chosen at
          random. The valid range is 0…65535. Defaults to 1. This option
          only has effect when in balance-rr mode.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>GratuitousARP=</varname></term>
        <listitem>
          <para>Specify the number of peer notifications (gratuitous ARPs and
          unsolicited IPv6 Neighbor Advertisements) to be issued after a
          failover event.  As soon as the link is up on the new slave,
          a peer notification is sent on the  bonding device and each
          VLAN sub-device.  This is repeated at each link monitor interval
          (ARPIntervalSec or MIIMonitorSec, whichever is active) if the number is
          greater than 1. The valid range is 0…255. The default value is 1.
          These options affect only the active-backup mode.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>AllSlavesActive=</varname></term>
        <listitem>
          <para>Takes a boolean. Specifies that duplicate frames (received on inactive ports)
          should be dropped when false, or delivered when true. Normally, bonding will drop
          duplicate frames (received on inactive ports), which is desirable for
          most users. But there are some times it is nice to allow duplicate
          frames to be delivered. The default value is false (drop duplicate frames
          received on inactive ports).
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>DynamicTransmitLoadBalancing=</varname></term>
        <listitem>
          <para>Takes a boolean. Specifies if dynamic shuffling of flows is enabled. Applies only
          for balance-tlb mode. Defaults to unset.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>MinLinks=</varname></term>
        <listitem>
          <para>Specifies the minimum number of links that must be active before
          asserting carrier. The default value is 0.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>

    <para>For more detail information see
    <ulink url="https://docs.kernel.org/networking/bonding.html">
    Linux Ethernet Bonding Driver HOWTO</ulink></para>
  </refsect1>

  <refsect1>
    <title>[Xfrm] Section Options</title>

    <para>The [Xfrm] section accepts the following
    keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>InterfaceId=</varname></term>
        <listitem>
          <para>Sets the ID/key of the xfrm interface which needs to be associated with a SA/policy.
          Can be decimal or hexadecimal, valid range is 1-0xffffffff. This is mandatory.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Independent=</varname></term>
        <listitem>
          <para>Takes a boolean. If false (the default), the xfrm interface must have an underlying device
          which can be used for hardware offloading.</para>
        </listitem>
      </varlistentry>
    </variablelist>

    <para>For more detail information see
      <ulink url="https://lwn.net/Articles/757391">Virtual XFRM Interfaces</ulink>.</para>
  </refsect1>

  <refsect1>
    <title>[VRF] Section Options</title>
    <para>The [VRF] section only applies for
    netdevs of kind <literal>vrf</literal> and accepts the
    following key:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>Table=</varname></term>
        <listitem>
          <para>The numeric routing table identifier. This setting is compulsory.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[BatmanAdvanced] Section Options</title>

    <para>The [BatmanAdvanced] section only applies for netdevs of kind <literal>batadv</literal> and accepts
    the following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>GatewayMode=</varname></term>
        <listitem>
          <para>Takes one of <literal>off</literal>, <literal>server</literal>, or <literal>client</literal>.
          A batman-adv node can either run in server mode (sharing its internet
          connection with the mesh) or in client mode (searching for the most suitable internet connection
          in the mesh) or having the gateway support turned off entirely (which is the default setting).
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Aggregation=</varname></term>
        <listitem>
          <para>Takes a boolean value. Enables or disables aggregation of originator messages. Defaults to
           true.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>BridgeLoopAvoidance=</varname></term>
        <listitem>
          <para>Takes a boolean value. Enables or disables avoidance of loops on bridges. Defaults to true.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>DistributedArpTable=</varname></term>
        <listitem>
          <para>Takes a boolean value. Enables or disables the distributed ARP table. Defaults to true.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>Fragmentation=</varname></term>
        <listitem>
          <para>Takes a boolean value. Enables or disables fragmentation. Defaults to true.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>HopPenalty=</varname></term>
        <listitem>
          <para>The hop penalty setting allows one to modify
          <citerefentry project='mankier'><refentrytitle>batctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
          preference for multihop routes vs. short routes. This integer value is applied to the
          TQ (Transmit Quality) of each forwarded OGM (Originator Message), thereby propagating the
          cost of an extra hop (the packet has to be received and retransmitted which costs airtime).
          A higher hop penalty will make it more unlikely that other nodes will choose this node as
          intermediate hop towards any given destination. The default hop penalty of '15' is a reasonable
          value for most setups and probably does not need to be changed. However, mobile nodes could
          choose a value of 255 (maximum value) to avoid being chosen as a router by other nodes.
          The minimum value is 0.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>OriginatorIntervalSec=</varname></term>
        <listitem>
          <para>The value specifies the interval in seconds, unless another time unit is specified in which
          batman-adv floods the network with its protocol information.
          See <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>7</manvolnum></citerefentry>
          for more information.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>GatewayBandwidthDown=</varname></term>
        <listitem>
          <para>If the node is a server, this
          parameter is used to inform other nodes in the network about
          this node's internet connection download bandwidth in bits per second. Just enter any number
          suffixed with K, M, G or T (base 1000) and the batman-adv
          module will propagate the entered value in the mesh.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>GatewayBandwidthUp=</varname></term>
        <listitem>
          <para>If the node is a server, this
          parameter is used to inform other nodes in the network about
          this node's internet connection upload bandwidth in bits per second. Just enter any number
          suffixed with K, M, G or T (base 1000) and the batman-adv
          module will propagate the entered value in the mesh.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>RoutingAlgorithm=</varname></term>
        <listitem>
          <para>This can be either <literal>batman-v</literal> or <literal>batman-iv</literal> and describes which routing_algo
          of <citerefentry project='mankier'><refentrytitle>batctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> to use. The algorithm
          cannot be changed after interface creation. Defaults to <literal>batman-v</literal>.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[IPoIB] Section Options</title>
    <para>The [IPoIB] section only applies for netdevs of kind <literal>ipoib</literal> and accepts the
    following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>PartitionKey=</varname></term>
        <listitem>
          <para>Takes an integer in the range 1…0xffff, except for 0x8000. Defaults to unset, and the
          kernel's default is used.</para>
        </listitem>
      </varlistentry>

      <varlistentry id='ipoib_mode'>
        <term><varname>Mode=</varname></term>
        <listitem>
          <para>Takes one of the special values <literal>datagram</literal> or
          <literal>connected</literal>. Defaults to unset, and the kernel's default is used.</para>

          <para>When <literal>datagram</literal>, the Infiniband unreliable datagram (UD) transport is
          used, and so the interface MTU is equal to the IB L2 MTU minus the IPoIB encapsulation
          header (4 bytes). For example, in a typical IB fabric with a 2K MTU, the IPoIB MTU will be
          2048 - 4 = 2044 bytes.</para>

          <para>When <literal>connected</literal>, the Infiniband reliable connected (RC) transport is
          used. Connected mode takes advantage of the connected nature of the IB transport and allows
          an MTU up to the maximal IP packet size of 64K, which reduces the number of IP packets needed
          for handling large UDP datagrams, TCP segments, etc and increases the performance for large
          messages.</para>
        </listitem>
      </varlistentry>

      <varlistentry id='ipoib_umcast'>
        <term><varname>IgnoreUserspaceMulticastGroup=</varname></term>
        <listitem>
          <para>Takes an boolean value. When true, the kernel ignores multicast groups handled by
          userspace. Defaults to unset, and the kernel's default is used.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>[WLAN] Section Options</title>
    <para>The [WLAN] section only applies to WLAN interfaces, and accepts the following keys:</para>

    <variablelist class='network-directives'>
      <varlistentry>
        <term><varname>PhysicalDevice=</varname></term>
        <listitem>
          <para>Specifies the name or index of the physical WLAN device (e.g. <literal>0</literal> or
          <literal>phy0</literal>). The list of the physical WLAN devices that exist on the host can be
          obtained by <command>iw phy</command> command. This option is mandatory.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>Type=</varname></term>
        <listitem>
          <para>Specifies the type of the interface. Takes one of the <literal>ad-hoc</literal>,
          <literal>station</literal>, <literal>ap</literal>, <literal>ap-vlan</literal>,
          <literal>wds</literal>, <literal>monitor</literal>, <literal>mesh-point</literal>,
          <literal>p2p-client</literal>, <literal>p2p-go</literal>, <literal>p2p-device</literal>,
          <literal>ocb</literal>, and <literal>nan</literal>. This option is mandatory.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>WDS=</varname></term>
        <listitem>
          <para>Enables the Wireless Distribution System (WDS) mode on the interface. The mode is also
          known as the <literal>4 address mode</literal>. Takes a boolean value. Defaults to unset, and
          the kernel's default will be used.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Examples</title>
    <example>
      <title>/etc/systemd/network/25-bridge.netdev</title>

      <programlisting>[NetDev]
Name=bridge0
Kind=bridge</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-vlan1.netdev</title>

      <programlisting>[Match]
Virtualization=no

[NetDev]
Name=vlan1
Kind=vlan

[VLAN]
Id=1</programlisting>
    </example>
    <example>
      <title>/etc/systemd/network/25-ipip.netdev</title>
      <programlisting>[NetDev]
Name=ipip-tun
Kind=ipip
MTUBytes=1480

[Tunnel]
Local=192.168.223.238
Remote=192.169.224.239
TTL=64</programlisting>
    </example>
    <example>
      <title>/etc/systemd/network/1-fou-tunnel.netdev</title>
      <programlisting>[NetDev]
Name=fou-tun
Kind=fou

[FooOverUDP]
Port=5555
Protocol=4
      </programlisting>
    </example>
    <example>
      <title>/etc/systemd/network/25-fou-ipip.netdev</title>
      <programlisting>[NetDev]
Name=ipip-tun
Kind=ipip

[Tunnel]
Independent=yes
Local=10.65.208.212
Remote=10.65.208.211
FooOverUDP=yes
FOUDestinationPort=5555
      </programlisting>
    </example>
    <example>
      <title>/etc/systemd/network/25-tap.netdev</title>
      <programlisting>[NetDev]
Name=tap-test
Kind=tap

[Tap]
MultiQueue=yes
PacketInfo=yes</programlisting> </example>

    <example>
      <title>/etc/systemd/network/25-sit.netdev</title>
      <programlisting>[NetDev]
Name=sit-tun
Kind=sit
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
Remote=10.65.223.239</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-6rd.netdev</title>
      <programlisting>[NetDev]
Name=6rd-tun
Kind=sit
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
IPv6RapidDeploymentPrefix=2602::/24</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-gre.netdev</title>
      <programlisting>[NetDev]
Name=gre-tun
Kind=gre
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
Remote=10.65.223.239</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-ip6gre.netdev</title>
      <programlisting>[NetDev]
Name=ip6gre-tun
Kind=ip6gre

[Tunnel]
Key=123</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-vti.netdev</title>

      <programlisting>[NetDev]
Name=vti-tun
Kind=vti
MTUBytes=1480

[Tunnel]
Local=10.65.223.238
Remote=10.65.223.239</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-veth.netdev</title>
      <programlisting>[NetDev]
Name=veth-test
Kind=veth

[Peer]
Name=veth-peer</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-bond.netdev</title>
      <programlisting>[NetDev]
Name=bond1
Kind=bond

[Bond]
Mode=802.3ad
TransmitHashPolicy=layer3+4
MIIMonitorSec=1s
LACPTransmitRate=fast
</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-dummy.netdev</title>
      <programlisting>[NetDev]
Name=dummy-test
Kind=dummy
MACAddress=12:34:56:78:9a:bc</programlisting>
    </example>
    <example>
      <title>/etc/systemd/network/25-vrf.netdev</title>
      <para>Create a VRF interface with table 42.</para>
      <programlisting>[NetDev]
Name=vrf-test
Kind=vrf

[VRF]
Table=42</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/25-macvtap.netdev</title>
      <para>Create a MacVTap device.</para>
      <programlisting>[NetDev]
Name=macvtap-test
Kind=macvtap
      </programlisting>
    </example>
    <example>
      <title>/etc/systemd/network/25-wireguard.netdev</title>
      <programlisting>[NetDev]
Name=wg0
Kind=wireguard

[WireGuard]
PrivateKey=EEGlnEPYJV//kbvvIqxKkQwOiS+UENyPncC4bF46ong=
ListenPort=51820

[WireGuardPeer]
PublicKey=RDf+LSpeEre7YEIKaxg+wbpsNV7du+ktR99uBEtIiCA=
AllowedIPs=fd31:bf08:57cb::/48,192.168.26.0/24
Endpoint=wireguard.example.com:51820</programlisting>
    </example>

    <example>
      <title>/etc/systemd/network/27-xfrm.netdev</title>
      <programlisting>[NetDev]
Name=xfrm0
Kind=xfrm

[Xfrm]
Independent=yes</programlisting>
    </example>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-networkd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-network-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
