<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY version SYSTEM "version.xml">
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
  <bookinfo>
    <title>NetworkManager Reference Manual</title>
    <releaseinfo>
      for NetworkManager &version;
      The latest version of this documentation can be found on-line at
      <ulink url="https://networkmanager.dev/docs/api/latest/">https://networkmanager.dev/docs/api/latest/</ulink>.
    </releaseinfo>

    <copyright>
      <year>2012</year>
      <year>2013</year>
      <year>2014</year>
      <year>2015</year>
      <year>2016</year>
      <year>2017</year>
      <year>2018</year>
      <holder>The NetworkManager Authors</holder>
    </copyright>

    <legalnotice>
      <para>
	Permission is granted to copy, distribute and/or modify this
	document under the terms of the <citetitle>GNU Free
	Documentation License</citetitle>, Version 1.1 or any later
	version published by the Free Software Foundation with no
	Invariant Sections, no Front-Cover Texts, and no Back-Cover
	Texts. You may obtain a copy of the <citetitle>GNU Free
	Documentation License</citetitle> from the Free Software
	Foundation by visiting <ulink type="http"
	url="http://www.fsf.org">their Web site</ulink> or by writing
	to:

	<address>
	  The Free Software Foundation, Inc.,
	  <street>51 Franklin Street</street> - Fifth Floor,
	  <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>,
	  <country>USA</country>
	</address>
      </para>
    </legalnotice>

    <abstract>
      <para>
        This manual is the reference documentation for NetworkManager, the standard
        Linux network management service. It is intended for system administrators and
        integrators who need to understand the capabilities of NetworkManager, its
        configuration options, command line tools and the D-Bus API for programmatic
        control of the service.
      </para>
      <para>
        The end users NetworkManager should instead refer to respective documentation
        of their desktop environment of choice.
      </para>
      <para>
        The application developers who prefer not to use the D-Bus API directly can use the
        <ulink url="https://developer.gnome.org/libnm/stable/">libnm</ulink> library
        shipped with NetworkManager or its bindings to a higher level language such as
        Python, Ruby or Vala via GObject introspection.
      </para>
    </abstract>
  </bookinfo>

  <part id="manpages">
    <title>Manual Pages</title>
    <xi:include href="../../man/NetworkManager.xml"/>
    <xi:include href="../../man/NetworkManager.conf.xml"/>
    <xi:include href="../../man/NetworkManager-dispatcher.xml"/>
    <xi:include href="../../man/NetworkManager-wait-online.service.xml"/>
    <xi:include href="../../man/nmcli.xml"/>
    <xi:include href="../../man/nmcli-examples.xml"/>
    <xi:include href="../../man/nmtui.xml"/>
    <xi:include href="../../man/nm-settings-dbus.xml"><xi:fallback /></xi:include>
    <xi:include href="../../man/nm-settings-nmcli.xml"><xi:fallback /></xi:include>
    <xi:include href="../../man/nm-settings-keyfile.xml"><xi:fallback /></xi:include>
    <xi:include href="../../man/nm-settings-ifcfg-rh.xml"><xi:fallback /></xi:include>
    <xi:include href="../../man/nm-online.xml"/>
    <xi:include href="../../man/nm-initrd-generator.xml"/>
    <xi:include href="../../man/nm-cloud-setup.xml"><xi:fallback /></xi:include>
    <xi:include href="../../man/nm-openvswitch.xml"><xi:fallback /></xi:include>
  </part>

  <part id="ref-settings">
    <title>Network Configuration Setting Specification</title>
    <para>
      This part documents the properties and value types of each "Setting"
      object that composes the basic unit of NetworkManager configuration,
      the "Connection".  Each Connection object is simply a dictionary mapping
      setting names (like "802-3-ethernet" or "bluetooth") to a dictionary of
      key/value pairs that represents each itself.
    </para>
    <xi:include href="settings-spec.xml">
      <xi:fallback>
	<chapter>
	  <title>Configuration Settings</title>
	  <note><para>
	    (NetworkManager was built without full introspection support. Setting
	    documentation is not available.)
	  </para></note>
	</chapter>
      </xi:fallback>
    </xi:include>
    <chapter id="secrets-flags">
      <title>Secret flag types</title>
      <para>
        Each secret property in a setting has an associated "flags" property
        that describes how to handle that secret.  The "flags" property is a
        bitfield that contains zero or more of the following values logically
        OR-ed together.
      </para>
      <para>
        <itemizedlist>
          <listitem>
            <literal>0x0 (none)</literal> - the system is responsible for providing
            and storing this secret.
          </listitem>
          <listitem>
            <literal>0x1 (agent-owned)</literal> - a user-session secret agent
            is responsible for providing and storing this secret; when it is
            required, agents will be asked to provide it.
          </listitem>
          <listitem>
            <literal>0x2 (not-saved)</literal> - this secret should not be saved
            but should be requested from the user each time it is required. This
            flag should be used for One-Time-Pad secrets, PIN codes from
            hardware tokens, or if the user simply does not want to save the
            secret.
          </listitem>
          <listitem>
            <literal>0x4 (not-required)</literal> - in some situations it cannot
            be automatically determined that a secret is required or not.  This
            flag hints that the secret is not required and should not be
            requested from the user.
          </listitem>
        </itemizedlist>
      </para>
    </chapter>
  </part>

  <part id="spec">
    <title id="dbus-interfaces">D-Bus API Reference</title>

    <para>
      This part documents the D-Bus interface used to access the
      NetworkManager daemon.
    </para>

    <chapter id="ref-dbus-manager">
      <title>The <literal>/org/freedesktop/NetworkManager</literal> object</title>
      <!-- TODO: Describe the object here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.xml"/>
    </chapter>

    <chapter id="ref-dbus-agent-manager">
      <title>The <literal>/org/freedesktop/NetworkManager/AgentManager</literal> object</title>
      <!-- TODO: Describe the object here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.AgentManager.xml"/>
    </chapter>

    <chapter id="ref-dbus-dns-manager">
      <title>The <literal>/org/freedesktop/NetworkManager/DnsManager</literal> object</title>
      <!-- TODO: Describe the object here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.DnsManager.xml"/>
    </chapter>

    <chapter id="ref-dbus-settings-manager">
      <title>The <literal>/org/freedesktop/NetworkManager/Settings</literal> object</title>
      <!-- TODO: Describe the object here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.Settings.xml"/>
    </chapter>

    <chapter id="ref-dbus-settings">
      <title>The <literal>/org/freedesktop/NetworkManager/Settings/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.Settings.Connection.xml"/>
    </chapter>

    <chapter id="ref-dbus-devices">
      <title>The <literal>/org/freedesktop/NetworkManager/Devices/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Statistics.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Adsl.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bluetooth.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bond.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Bridge.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Dummy.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Generic.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.IPTunnel.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Loopback.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Lowpan.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Macsec.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Macvlan.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Modem.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.OlpcMesh.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.OvsBridge.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.OvsInterface.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.OvsPort.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Ppp.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Team.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Tun.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Veth.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Vlan.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Vrf.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Vxlan.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.WifiP2P.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.WireGuard.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wired.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wireless.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.Wpan.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.PPP.xml"/>
    </chapter>

    <chapter id="ref-dbus-active-connections">
      <title>The <literal>/org/freedesktop/NetworkManager/ActiveConnection/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.Connection.Active.xml"/>
      <xi:include href="dbus-org.freedesktop.NetworkManager.VPN.Connection.xml"/>
    </chapter>

    <chapter id="ref-dbus-ip4-configs">
      <title>The <literal>/org/freedesktop/NetworkManager/IP4Config/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.IP4Config.xml"/>
    </chapter>

    <chapter id="ref-dbus-ip6-configs">
      <title>The <literal>/org/freedesktop/NetworkManager/IP6Config/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.IP6Config.xml"/>
    </chapter>

    <chapter id="ref-dbus-dhcp4-configs">
      <title>The <literal>/org/freedesktop/NetworkManager/DHCP4Config/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.DHCP4Config.xml"/>
    </chapter>

    <chapter id="ref-dbus-dhcp6-configs">
      <title>The <literal>/org/freedesktop/NetworkManager/DHCP4Config/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.DHCP6Config.xml"/>
    </chapter>

    <chapter id="ref-dbus-access-points">
      <title>The <literal>/org/freedesktop/NetworkManager/AccessPoint/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.AccessPoint.xml"/>
    </chapter>

    <chapter id="ref-dbus-wifi-p2p-peers">
      <title>The <literal>/org.freedesktop.NetworkManager.WifiP2PPeer/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.WifiP2PPeer.xml"/>
    </chapter>

    <chapter id="ref-dbus-checkpoint">
      <title>The <literal>/org/freedesktop/NetworkManager/Checkpoint/*</literal> objects</title>
      <!-- TODO: Describe the objects here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.Checkpoint.xml"/>
    </chapter>

    <chapter id="dbus-types">
      <title>Types</title>
      <xi:include href="../../src/libnm-core-public/nm-dbus-types.xml"/>
    </chapter>
  </part>

  <part id="secret-agents">
    <title>Secret Agent D-Bus API Reference</title>

    <chapter id="dbus-secret-agent">
      <title>Secret agents</title>
      <!-- TODO: Describe the secret agent here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.SecretAgent.xml"/>
    </chapter>
  </part>

  <part id="vpn-plugins">
    <title>VPN Plugin D-Bus API Reference</title>

    <chapter id="dbus-vpn-plugin">
      <title>VPN services</title>
      <!-- TODO: Describe the VPN services here -->
      <xi:include href="dbus-org.freedesktop.NetworkManager.VPN.Plugin.xml"/>
    </chapter>
    <chapter id="dbus-vpn-types">
      <title>Types</title>
      <xi:include href="../../src/libnm-core-public/nm-vpn-dbus-types.xml"/>
    </chapter>
  </part>

  <index>
    <title>Index</title>
  </index>

  <!-- License -->
  <appendix id="license">
    <title>License</title>

    <para>
      This program is free software; you can redistribute
      it and/or modify it under the terms of the <citetitle>GNU
      General Public License</citetitle> as published by the Free
      Software Foundation; either version 2 of the License, or
      (at your option) any later version.
    </para>

    <para>
      This program is distributed in the hope that it will
      be useful, but WITHOUT ANY WARRANTY; without even the
      implied warranty of MERCHANTABILITY or FITNESS FOR A
      PARTICULAR PURPOSE. See the GNU General Public License for
      more details.
    </para>

    <para>
      You should have received a copy of the <citetitle>GNU
      General Public License</citetitle> along with this program;
      if not, write to the
      <address>
        Free Software Foundation, Inc.,
        <street>51 Franklin Street</street> - Fifth Floor,
        <city>Boston</city>, <state>MA</state> <postcode>02110-1301</postcode>,
        <country>USA</country>
      </address>
    </para>

    <para>
      A copy of the <citetitle>GNU General Public License</citetitle>
      can also be obtained from the <ulink url="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">
      GNU web site</ulink>.
    </para>
  </appendix>
</book>

