NetworkManager/docs/api/network-manager-docs.xml
Thomas Haller 47d39a7fb7
docs: add more nm-settings manpages (dbus,nmcli,keyfile,ifcfg-rh)
A significant part of NetworkManager's API are the connection profiles, documented
in `man nm-settings*`. But there are different aspects about profiles, depending
on what you are interested. There is the D-Bus API, nmcli options, keyfile format,
and ifcfg-rh format. Additionally, there is also libnm API.

Add distinct manual pages for the four aspects. Currently the two new manual
pages "nm-settings-dbus" and "nm-settings-nmcli" are still identical to the
former "nm-settings.5" manual. In the future, they will diverge to
account for the differences.

There are the following aspects:

 - "dbus"
 - "keyfile"
 - "ifcfg-rh"
 - "nmcli"

For "libnm" we don't generate a separate "nm-settings-libnm" manual
page. That is instead documented via gtk-doc.

Currently the keyfile and ifcfg-rh manual pages only detail settings
which differ. But later I think also these manual pages should contain
all settings that apply.
2020-06-11 10:53:49 +02:00

339 lines
14 KiB
XML

<?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://developer.gnome.org/NetworkManager/stable/">https://developer.gnome.org/NetworkManager/stable/</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/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-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.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="../../libnm-core/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="../../libnm-core/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>