<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd-networkd.service" conditional='ENABLE_NETWORKD'>

  <refentryinfo>
    <title>systemd-networkd.service</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-networkd.service</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-networkd.service</refname>
    <refname>systemd-networkd</refname>
    <refpurpose>Network manager</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>systemd-networkd.service</filename></para>
    <para><filename>/usr/lib/systemd/systemd-networkd</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><command>systemd-networkd</command> is a system service that
    manages networks. It detects and configures network devices as
    they appear, as well as creating virtual network devices.</para>

    <para>Certain low-level settings of physical network devices (e.g. device
    names and altnames) as well as the creation of SR-IOV virtual functions on
    physical network interfaces may be managed by
    <citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    according to the contents of
    <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    files.</para>

    <para><command>systemd-networkd</command> will create "virtual" network
    devices (e.g. bridges and tunnels) based on the configuration in
    <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    files, respecting the [Match] sections in those files.</para>

    <para><command>systemd-networkd</command> will manage network addresses and
    routes for any link for which it finds a <filename>.network</filename> file
    with an appropriate [Match] section, see
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    For those links, it will flush existing network addresses and routes when
    bringing up the device (except when directed not to). Any links not matched
    by one of the <filename>.network</filename> files will be ignored. It is
    also possible to explicitly tell <filename>systemd-networkd</filename> to
    ignore a link by using the <varname>Unmanaged=yes</varname> option, see
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    </para>

    <para>When <filename>systemd-networkd</filename> exits, it generally leaves existing network devices and
    configuration intact. This makes it possible to transition from the initrd and to restart the service
    without breaking connectivity. This also means that when configuration is updated and
    <filename>systemd-networkd</filename> is restarted, netdev interfaces for which configuration was removed
    will not be dropped, and may need to be cleaned up manually.</para>

    <para><command>systemd-networkd</command> may be introspected and controlled at runtime using
    <citerefentry><refentrytitle>networkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
    </para>

    <para>See
    <citerefentry><refentrytitle>org.freedesktop.network1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    and
    <citerefentry><refentrytitle>org.freedesktop.LogControl1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    for a description of the D-Bus API.</para>
  </refsect1>

  <refsect1><title>Configuration Files</title>
    <para>The configuration files are read from the files located in the
    system network directory <filename>/usr/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>.</para>

    <para>Networks are configured in <filename>.network</filename>
    files, see
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
    and virtual network devices are configured in
    <filename>.netdev</filename> files, see
    <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
    </para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para><simplelist type="inline">
      <member><citerefentry><refentrytitle>networkctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd-networkd-wait-online.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>systemd-network-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>org.freedesktop.network1</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>

</refentry>
