<?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>Version &version;</releaseinfo>

    <copyright>
      <year>2012</year>
      <year>2013</year>
      <year>2014</year>
      <year>2015</year>
      <year>2016</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>
  </bookinfo>

  <chapter id="manpages">
    <title>Manual Pages</title>
    <xi:include href="../../man/nmcli.xml"/>
    <xi:include href="../../man/nmtui.xml"/>
    <xi:include href="../../man/nm-online.xml"/>
    <xi:include href="../../man/NetworkManager.conf.xml"/>
    <xi:include href="../../man/nm-settings.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/nmcli-examples.xml"/>
    <xi:include href="../../man/NetworkManager.xml"/>
  </chapter>

  <chapter id="spec">
    <title>D-Bus API Reference</title>

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

    <section id="dbus-interfaces">
      <title>Interfaces</title>
      <!-- TODO: Split me into chapters about daemon, vpn plugins, dispatcher and the secret agent.
                    Then describe the daemon's singletons and object hierarchy. -->
      <xi:include href="../../introspection/nmdbus-manager-org.freedesktop.NetworkManager.xml"/>
      <xi:include href="../../introspection/nmdbus-settings-org.freedesktop.NetworkManager.Settings.xml"/>
      <xi:include href="../../introspection/nmdbus-agent-manager-org.freedesktop.NetworkManager.AgentManager.xml"/>
      <xi:include href="../../introspection/nmdbus-access-point-org.freedesktop.NetworkManager.AccessPoint.xml"/>
      <xi:include href="../../introspection/nmdbus-ppp-manager-org.freedesktop.NetworkManager.PPP.xml"/>
      <xi:include href="../../introspection/nmdbus-settings-connection-org.freedesktop.NetworkManager.Settings.Connection.xml"/>
      <xi:include href="../../introspection/nmdbus-vpn-connection-org.freedesktop.NetworkManager.VPN.Connection.xml"/>
      <xi:include href="../../introspection/nmdbus-active-connection-org.freedesktop.NetworkManager.Connection.Active.xml"/>
      <xi:include href="../../introspection/nmdbus-device-org.freedesktop.NetworkManager.Device.xml"/>
      <xi:include href="../../introspection/nmdbus-device-adsl-org.freedesktop.NetworkManager.Device.Adsl.xml"/>
      <xi:include href="../../introspection/nmdbus-device-bond-org.freedesktop.NetworkManager.Device.Bond.xml"/>
      <xi:include href="../../introspection/nmdbus-device-bridge-org.freedesktop.NetworkManager.Device.Bridge.xml"/>
      <xi:include href="../../introspection/nmdbus-device-bt-org.freedesktop.NetworkManager.Device.Bluetooth.xml"/>
      <xi:include href="../../introspection/nmdbus-device-ethernet-org.freedesktop.NetworkManager.Device.Wired.xml"/>
      <xi:include href="../../introspection/nmdbus-device-generic-org.freedesktop.NetworkManager.Device.Generic.xml"/>
      <xi:include href="../../introspection/nmdbus-device-infiniband-org.freedesktop.NetworkManager.Device.Infiniband.xml"/>
      <xi:include href="../../introspection/nmdbus-device-ip-tunnel-org.freedesktop.NetworkManager.Device.IPTunnel.xml"/>
      <xi:include href="../../introspection/nmdbus-device-macvlan-org.freedesktop.NetworkManager.Device.Macvlan.xml"/>
      <xi:include href="../../introspection/nmdbus-device-modem-org.freedesktop.NetworkManager.Device.Modem.xml"/>
      <xi:include href="../../introspection/nmdbus-device-olpc-mesh-org.freedesktop.NetworkManager.Device.OlpcMesh.xml"/>
      <xi:include href="../../introspection/nmdbus-device-team-org.freedesktop.NetworkManager.Device.Team.xml"/>
      <xi:include href="../../introspection/nmdbus-device-tun-org.freedesktop.NetworkManager.Device.Tun.xml"/>
      <xi:include href="../../introspection/nmdbus-device-veth-org.freedesktop.NetworkManager.Device.Veth.xml"/>
      <xi:include href="../../introspection/nmdbus-device-vlan-org.freedesktop.NetworkManager.Device.Vlan.xml"/>
      <xi:include href="../../introspection/nmdbus-device-vxlan-org.freedesktop.NetworkManager.Device.Vxlan.xml"/>
      <xi:include href="../../introspection/nmdbus-device-wifi-org.freedesktop.NetworkManager.Device.Wireless.xml"/>
      <xi:include href="../../introspection/nmdbus-device-wimax-org.freedesktop.NetworkManager.Device.WiMax.xml"/>
      <xi:include href="../../introspection/nmdbus-dhcp4-config-org.freedesktop.NetworkManager.DHCP4Config.xml"/>
      <xi:include href="../../introspection/nmdbus-dhcp6-config-org.freedesktop.NetworkManager.DHCP6Config.xml"/>
      <xi:include href="../../introspection/nmdbus-ip4-config-org.freedesktop.NetworkManager.IP4Config.xml"/>
      <xi:include href="../../introspection/nmdbus-ip6-config-org.freedesktop.NetworkManager.IP6Config.xml"/>
      <xi:include href="../../introspection/nmdbus-vpn-plugin-org.freedesktop.NetworkManager.VPN.Plugin.xml"/>
      <xi:include href="../../introspection/nmdbus-secret-agent-org.freedesktop.NetworkManager.SecretAgent.xml"/>
      <xi:include href="../../introspection/nmdbus-device-statistics-org.freedesktop.NetworkManager.Device.Statistics.xml"/>
    </section>
    <section id="dbus-types">
      <title>Types</title>
      <xi:include href="../../libnm-core/nm-dbus-types.xml"/>
      <xi:include href="../../libnm-core/nm-vpn-dbus-types.xml"/>
    </section>
  </chapter>

  <chapter 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>
	<section>
	  <title>Configuration Settings</title>
	  <note><para>
	    (NetworkManager was built without full introspection support. Setting
	    documentation is not available.)
	  </para></note>
	</section>
      </xi:fallback>
    </xi:include>
    <section 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>
    </section>
  </chapter>

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

  <!-- License -->

  <appendix id="license">
    <title>License</title>
    <para>
<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../COPYING" parse="text"><xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
    </para>
  </appendix>
</book>

