<?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-network-generator.service">

  <refentryinfo>
    <title>systemd-network-generator.service</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-network-generator.service</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-network-generator.service</refname>
    <refname>systemd-network-generator</refname>
    <refpurpose>Generate network configuration from the kernel command line</refpurpose>
  </refnamediv>

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

  <refsect1>
    <title>Description</title>

    <para><filename>systemd-network-generator.service</filename> is a system service that translates
    <varname>ip=</varname> and the related settings on the kernel command line (see below) into
    <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
    <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, and
    <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    configuration files understood by
    <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    and
    <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
    </para>

    <para>Files are generated in <filename>/run/systemd/network/</filename>.</para>

    <para>Note: despite the name, this generator executes as a normal systemd service and is
    <emphasis>not</emphasis> an implementation of the
    <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    concept.</para>
  </refsect1>

  <refsect1>
    <title>Kernel command line options</title>

    <para>This tool understands the following options:</para>

    <variablelist class='kernel-commandline-options'>
      <varlistentry>
        <term><varname>ip=</varname></term>
        <term><varname>rd.route=</varname></term>
        <term><varname>rd.peerdns=</varname></term>
        <listitem>
          <para>— translated into
          <citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry> files.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>ifname=</varname></term>
        <term><varname>net.ifname-policy=</varname></term>
        <listitem>
          <para>— translated into
          <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry> files.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><varname>vlan=</varname></term>
        <term><varname>bond=</varname></term>
        <term><varname>bridge=</varname></term>
        <term><varname>bootdev=</varname></term>
        <listitem>
          <para>— translated into
          <citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry> files.</para>
        </listitem>
      </varlistentry>

      <!-- unsupported:
           team=<teammaster>:<teamslaves>
           bootdev=
           BOOTIF=
           bootdev=
           bootdev=
           bootdev=
      -->
    </variablelist>

    <para>See
    <citerefentry project='man-pages'><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    and
    <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    for option syntax and details.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry project='man-pages'><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
