# NetworkManager D-Bus Interface Specification

## Version 0.7.0

Copyright (C) 2008 Red Hat, Inc.
Copyright (C) 2008 Novell, Inc.

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

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.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

## Interfaces

- `org.freedesktop.NetworkManager`
- `org.freedesktop.NetworkManager.AccessPoint`
- `org.freedesktop.NetworkManager.Device`
- `org.freedesktop.NetworkManager.Device.Wired`
- `org.freedesktop.NetworkManager.Device.Wireless`
- `org.freedesktop.NetworkManager.Device.Cdma`
- `org.freedesktop.NetworkManager.Device.Gsm`
- `org.freedesktop.NetworkManager.Device.Serial`
- `org.freedesktop.NetworkManager.IP4Config`
- `org.freedesktop.NetworkManager.DHCP4Config`
- `org.freedesktop.NetworkManagerSettings`
- `org.freedesktop.NetworkManagerSettings.Connection`
- `org.freedesktop.NetworkManagerSettings.Connection.Secrets`
- `org.freedesktop.NetworkManager.Connection.Active`
- `org.freedesktop.NetworkManager.Connection.Active`
- `org.freedesktop.NetworkManager.VPN.Connection`
- `org.freedesktop.NetworkManager.VPN.Plugin`

# org.freedesktop.NetworkManager

## Methods:

### GetDevices ( ) → ao

Get the list of network devices.

#### Returns

`devices` - `ao`
  List of object paths of network devices known to the system.

### ActivateConnection ( s: service_name, o: connection, o: device, o: specific_object ) → o

Activate a connection using the supplied device.

#### Parameters

`service_name` - `s`
  The D-Bus service name of the settings service that provides this connection.
`connection` - `o`
  The connection to activate the devices with.
`device` - `o`
  The device to be activated.
`specific_object` - `o`
  The path of a device-type-specific object this activation should use, for example a WiFi access point.

#### Returns

`active_connection` - `o`
  The path of the active connection object representing this active connection.

#### Possible errors

`org.freedesktop.NetworkManager.Error.UnknownConnection`
  Connection was not provided by any known settings service. (generic description)
`org.freedesktop.NetworkManager.Error.UnknownDevice`
  Unknown device. (generic description)
`org.freedesktop.NetworkManager.Error.InvalidService`
  Invalid settings service (not a recognized system or user settings service name). (generic description)
`org.freedesktop.NetworkManager.Error.ConnectionActivating`
  Another connection is already activating or the same connection is already active. FIXME: check if the error name is correct. FIXME: split into 2 errors?
`org.freedesktop.NetworkManager.Error.ConnectionInvalid`
  The connection is invalid for this device.

### DeactivateConnection ( o: active_connection ) → nothing

Deactivate an active connection.

#### Parameters

`active_connection` - `o`
  The currently active connection to deactivate.

### Sleep ( b: sleep ) → nothing

Control the NetworkManager daemon's sleep state. When asleep, all interfaces that it manages are deactivated. When awake, devices are available to be activated.

#### Parameters

`sleep` - `b`
  Indicates whether the NetworkManager daemon should sleep or wake.

### sleep ( ) → nothing

DEPRECATED. Control the NetworkManager daemon's sleep state. When asleep, all interfaces that it manages are deactivated.

### wake ( ) → nothing

DEPRECATED. Control the NetworkManager daemon's sleep state. When awake, all known interfaces are available to be activated.

### state ( ) → u

DEPRECATED. The overall state of the NetworkManager daemon.

#### Returns

`state` - `u` (NM_STATE)

## Signals:

### StateChanged ( u: state )

NetworkManager's state changed.

#### Parameters

`state` - `u` (NM_STATE)
  The new state of NetworkManager.

### PropertiesChanged ( a{sv}: properties )

NetworkManager's properties changed.

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  The changed properties.

### DeviceAdded ( o: device_path )

A device was added to the system

#### Parameters

`device_path` - `o`
  The object path of the newly added device.

### DeviceRemoved ( o: device_path )

A device was removed from the system, and is no longer available.

#### Parameters

`device_path` - `o`
  The object path of the device that was just removed.

### StateChange ( u: state )

DEPRECATED. NetworkManager's state changed. Use the 'StateChanged' signal instead.

#### Parameters

`state` - `u` (NM_STATE)
  The new state of NetworkManager.

## Properties:

`WirelessEnabled` - `b` - `(readwrite)`
  Indicates if wireless is currently enabled or not.
`WirelessHardwareEnabled` - `b` - `(read)`
  Indicates if the wireless hardware is currently enabled, i.e. the state of the RF kill switch.
`ActiveConnections` - `ao` - `(read)`
  List of active connection object paths.
`State` - `u` - `(read)` (NM_STATE)
  The overall state of the NetworkManager daemon.

## Enumerated types:

### NM_STATE

Describes the overall state of the daemon.

`NM_STATE_UNKNOWN = 0`
  The NetworkManager daemon is in an unknown state.
`NM_STATE_ASLEEP = 1`
  The NetworkManager daemon is asleep and all interfaces managed by it are inactive.
`NM_STATE_CONNECTING = 2`
  The NetworkManager daemon is connecting a device. FIXME: What does this mean when one device is active and another is connecting?
`NM_STATE_CONNECTED = 3`
  The NetworkManager daemon is connected.
`NM_STATE_DISCONNECTED = 4`
  The NetworkManager daemon is disconnected.

# org.freedesktop.NetworkManager.AccessPoint

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Flags` - `u` - `(read)` (NM_802_11_AP_FLAGS)
  Flags describing the capabilities of the access point.
`WpaFlags` - `u` - `(read)` (NM_802_11_AP_SEC)
  Flags describing the access point's capabilities according to WPA (Wifi Protected Access).
`RsnFlags` - `u` - `(read)` (NM_802_11_AP_SEC)
  Flags describing the access point's capabilities according to the RSN (Robust Secure Network) protocol.
`Ssid` - `ay` - `(read)`
  The Service Set Identifier identifying the access point.
`Frequency` - `u` - `(read)`
  The radio channel frequency in use by the access point, in MHz.
`HwAddress` - `s` - `(read)`
  The hardware address (BSSID) of the access point.
`Mode` - `u` - `(read)` (NM_802_11_MODE)
  Describes the operating mode of the access point.
`MaxBitrate` - `u` - `(read)`
  The maximum bitrate this access point is capable of, in kilobits/second (Kb/s).
`Strength` - `y` - `(read)`
  The current signal quality of the access point, in percent.

## Sets of flags:

### NM_802_11_AP_FLAGS

Flags describing the general capabilities of the access point.

`NM_802_11_AP_FLAGS_NONE = 0x0`
  Null capability - says nothing about the access point.
`NM_802_11_AP_FLAGS_PRIVACY = 0x1`
  Access point supports privacy measures.

### NM_802_11_AP_SEC

Flags describing the security capabilities of the access point.

`NM_802_11_AP_SEC_NONE = 0x0`
  Null flag.
`NM_802_11_AP_SEC_PAIR_WEP40 = 0x1`
  Access point supports pairwise 40-bit WEP encryption.
`NM_802_11_AP_SEC_PAIR_WEP104 = 0x2`
  Access point supports pairwise 104-bit WEP encryption.
`NM_802_11_AP_SEC_PAIR_TKIP = 0x4`
  Access point supports pairwise TKIP encryption.
`NM_802_11_AP_SEC_PAIR_CCMP = 0x8`
  Access point supports pairwise CCMP encryption.
`NM_802_11_AP_SEC_GROUP_WEP40 = 0x10`
  Access point supports a group 40-bit WEP cipher.
`NM_802_11_AP_SEC_GROUP_WEP104 = 0x20`
  Access point supports a group 104-bit WEP cipher.
`NM_802_11_AP_SEC_GROUP_TKIP = 0x40`
  Access point supports a group TKIP cipher.
`NM_802_11_AP_SEC_GROUP_CCMP = 0x80`
  Access point supports a group CCMP cipher.
`NM_802_11_AP_SEC_KEY_MGMT_PSK = 0x100`
  Access point supports PSK key management.
`NM_802_11_AP_SEC_KEY_MGMT_802_1X = 0x200`
  Access point supports 802.1x key management.

# org.freedesktop.NetworkManager.Device

Interface has no methods.

## Signals:

### StateChanged ( u: new_state, u: old_state, u: reason )

#### Parameters

`new_state` - `u` (NM_DEVICE_STATE)
  The new state of the device.
`old_state` - `u` (NM_DEVICE_STATE)
  The previous state of the device.
`reason` - `u` (NM_DEVICE_STATE_REASON)
  A reason for the state transition.

## Properties:

`Udi` - `s` - `(read)`
  HAL UDI for the device.
`Interface` - `s` - `(read)`
  The network interface offered by the device.
`Driver` - `s` - `(read)`
  The driver handling the device.
`Capabilities` - `u` - `(read)` (NM_DEVICE_CAP)
  Flags describing the capabilities of the device.
`Ip4Address` - `i` - `(read)`
  The IPv4 address bound to the device. FIXME: what about devices with >1 IP address?
`State` - `u` - `(read)` (NM_DEVICE_STATE)
  The current state of the device.
`Ip4Config` - `o` - `(read)`
  Object path of the Ip4Config object describing the configuration of the device. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Dhcp4Config` - `o` - `(read)`
  Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Managed` - `b` - `(read)`
  Whether or not this device is managed by NetworkManager.
`DeviceType` - `u` - `(read)` (NM_DEVICE_TYPE)
  The general type of the network device; ie Ethernet, WiFi, etc.

## Enumerated types:

### NM_DEVICE_STATE

`NM_DEVICE_STATE_UNKNOWN = 0`
  The device is in an unknown state.
`NM_DEVICE_STATE_UNMANAGED = 1`
  The device is not managed by NetworkManager.
`NM_DEVICE_STATE_UNAVAILABLE = 2`
  The device cannot be used (carrier off, rfkill, etc).
`NM_DEVICE_STATE_DISCONNECTED = 3`
  The device is not connected.
`NM_DEVICE_STATE_PREPARE = 4`
  The device is preparing to connect.
`NM_DEVICE_STATE_CONFIG = 5`
  The device is being configured.
`NM_DEVICE_STATE_NEED_AUTH = 6`
  The device is awaiting secrets necessary to continue connection.
`NM_DEVICE_STATE_IP_CONFIG = 7`
  The IP settings of the device are being requested and configured.
`NM_DEVICE_STATE_ACTIVATED = 8`
  The device is active.
`NM_DEVICE_STATE_FAILED = 9`
  The device is in a failure state following an attempt to activate it.

### NM_DEVICE_TYPE

`NM_DEVICE_TYPE_UNKNOWN = 0`
  The device type is unknown.
`NM_DEVICE_TYPE_ETHERNET = 1`
  The device is wired Ethernet device.
`NM_DEVICE_TYPE_WIFI = 2`
  The device is an 802.11 WiFi device.
`NM_DEVICE_TYPE_GSM = 3`
  The device is a GSM-based cellular WAN device.
`NM_DEVICE_TYPE_CDMA = 4`
  The device is a CDMA/IS-95-based cellular WAN device.

### NM_DEVICE_STATE_REASON

`NM_DEVICE_STATE_REASON_UNKNOWN = 0`
  The reason for the device state change is unknown.
`NM_DEVICE_STATE_REASON_NONE = 1`
  The state change is normal.
`NM_DEVICE_STATE_REASON_NOW_MANAGED = 2`
  The device is now managed.
`NM_DEVICE_STATE_REASON_NOW_UNMANAGED = 3`
  The device is no longer managed.
`NM_DEVICE_STATE_REASON_CONFIG_FAILED = 4`
  The device could not be readied for configuration.
`NM_DEVICE_STATE_REASON_CONFIG_UNAVAILABLE = 5`
  IP configuration could not be reserved (no available address, timeout, etc).
`NM_DEVICE_STATE_REASON_CONFIG_EXPIRED = 6`
  The IP configuration is no longer valid.
`NM_DEVICE_STATE_REASON_NO_SECRETS = 7`
  Secrets were required, but not provided.
`NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT = 8`
  The 802.1X supplicant disconnected from the access point or authentication server.
`NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED = 9`
  Configuration of the 802.1X supplicant failed.
`NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED = 10`
  The 802.1X supplicant quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT = 11`
  The 802.1X supplicant took too long to authenticate.
`NM_DEVICE_STATE_REASON_PPP_START_FAILED = 12`
  The PPP service failed to start within the allowed time.
`NM_DEVICE_STATE_REASON_PPP_DISCONNECT = 13`
  The PPP service disconnected unexpectedly.
`NM_DEVICE_STATE_REASON_PPP_FAILED = 14`
  The PPP service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_DHCP_START_FAILED = 15`
  The DHCP service failed to start within the allowed time.
`NM_DEVICE_STATE_REASON_DHCP_ERROR = 16`
  The DHCP service reported an unexpected error.
`NM_DEVICE_STATE_REASON_DHCP_FAILED = 17`
  The DHCP service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_SHARED_START_FAILED = 18`
  The shared connection service failed to start.
`NM_DEVICE_STATE_REASON_SHARED_FAILED = 19`
  The shared connection service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED = 20`
  The AutoIP service failed to start.
`NM_DEVICE_STATE_REASON_AUTOIP_ERROR = 21`
  The AutoIP service reported an unexpected error.
`NM_DEVICE_STATE_REASON_AUTOIP_FAILED = 22`
  The AutoIP service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_MODEM_BUSY = 23`
  Dialing failed because the line was busy.
`NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE = 24`
  Dialing failed because there was no dial tone.
`NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER = 25`
  Dialing failed because there was carrier.
`NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT = 26`
  Dialing timed out.
`NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED = 27`
  Dialing failed.
`NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED = 28`
  Modem initialization failed.
`NM_DEVICE_STATE_REASON_GSM_APN_FAILED = 29`
  Failed to select the specified GSM APN.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING = 30`
  Not searching for networks.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED = 31`
  Network registration was denied.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT = 32`
  Network registration timed out.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED = 33`
  Failed to register with the requested GSM network.
`NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED = 34`
  PIN check failed.
`NM_DEVICE_STATE_REASON_FIRMWARE_MISSING = 35`
  Necessary firmware for the device may be missing.
`NM_DEVICE_STATE_REASON_REMOVED = 36`
  The device was removed.
`NM_DEVICE_STATE_REASON_SLEEPING = 37`
  NetworkManager went to sleep.
`NM_DEVICE_STATE_REASON_CONNECTION_REMOVED = 38`
  The device's active connection was removed or disappeared.
`NM_DEVICE_STATE_REASON_USER_REQUESTED = 39`
  A user or client requested the disconnection.
`NM_DEVICE_STATE_REASON_CARRIER = 40`
  The device's carrier/link changed.

## Sets of flags:

### NM_DEVICE_CAP

`NM_DEVICE_CAP_NONE = 0x0`
  Null capability.
`NM_DEVICE_CAP_NM_SUPPORTED = 0x1`
  The device is supported by NetworkManager.
`NM_DEVICE_CAP_CARRIER_DETECT = 0x2`
  The device supports carrier detection.

# org.freedesktop.NetworkManager.Device.Wired

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`Speed` - `u` - `(read)`
  Design speed of the device.
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

# org.freedesktop.NetworkManager.Device.Wireless

## Methods:

### GetAccessPoints ( ) → ao

Get the list of access points visible to this device.

#### Returns

`access_points` - `ao`
  List of access point object paths

## Signals:

### PropertiesChanged ( a{sv}: properties )

Emitted when the wireless device's properties changed.

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary containing the FIXME: check changed parameters.

### AccessPointAdded ( o: access_point )

Emitted when a new access point is found by the device.

#### Parameters

`access_point` - `o`
  The object path of the newly found access point.

### AccessPointRemoved ( o: access_point )

Emitted when an access point disappears from view of the device.

#### Parameters

`access_point` - `o`
  The object path of the access point that has disappeared.

## Properties:

`HwAddress` - `s` - `(read)`
  The hardware address of the device.
`Mode` - `u` - `(read)` (NM_802_11_MODE)
  The operating mode of the wireless device.
`Bitrate` - `u` - `(read)`
  The bit rate currently used by the wireless device, in kilobits/second (Kb/s).
`ActiveAccessPoint` - `o` - `(read)`
  Object path of the access point currently used by the wireless device.
`WirelessCapabilities` - `u` - `(read)` (NM_802_11_DEVICE_CAP)
  The capabilities of the wireless device.

## Sets of flags:

### NM_802_11_DEVICE_CAP

Flags describing the capabilities of a wireless device.

`NM_802_11_DEVICE_CAP_NONE = 0x0`
  Null capability - syntactic sugar for no capabilities supported. Do not AND this with other capabilities!
`NM_802_11_DEVICE_CAP_CIPHER_WEP40 = 0x1`
  The device supports the 40-bit WEP cipher.
`NM_802_11_DEVICE_CAP_CIPHER_WEP104 = 0x2`
  The device supports the 104-bit WEP cipher.
`NM_802_11_DEVICE_CAP_CIPHER_TKIP = 0x4`
  The device supports the TKIP cipher.
`NM_802_11_DEVICE_CAP_CIPHER_CCMP = 0x8`
  The device supports the CCMP cipher.
`NM_802_11_DEVICE_CAP_WPA = 0x10`
  The device supports the WPA encryption/authentication protocol.
`NM_802_11_DEVICE_CAP_RSN = 0x20`
  The device supports the RSN encryption/authentication protocol.

# org.freedesktop.NetworkManager.Device.Cdma

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

Interface has no properties.

# org.freedesktop.NetworkManager.Device.Gsm

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

Interface has no properties.

# org.freedesktop.NetworkManager.Device.Serial

Interface has no methods.

## Signals:

### PppStats ( u: in_bytes, u: out_bytes )

#### Parameters

`in_bytes` - `u`
  Bytes received
`out_bytes` - `u`
  Bytes sent

Interface has no properties.

# org.freedesktop.NetworkManager.IP4Config

Interface has no methods.

Interface has no signals.

## Properties:

`Addresses` - `aau` - `(read)`
  Tuples of IPv4 address/prefix/gateway.
`Nameservers` - `au` - `(read)`
  The nameservers in use.
`WinsServers` - `au` - `(read)`
  The Windows Internet Name Service servers associated with the connection.
`Domains` - `as` - `(read)`
  A list of domains this address belongs to.
`Routes` - `aau` - `(read)`
  Tuples of IPv4 route/prefix/next-hop/metric.

# org.freedesktop.NetworkManager.DHCP4Config

Options and configuration returned by the IPv4 DHCP server.

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Options` - `a{sv}` - `(read)`
  Configuration options returned by a DHCP server, if any.

# org.freedesktop.NetworkManagerSettings

The NetworkManagerSettings interface is provided by the service which provides connections to NetworkManager.

## Methods:

### ListConnections ( ) → ao

List the connections stored by this Settings object.

#### Returns

`connections` - `ao`
  List of connections.

## Signals:

### NewConnection ( o: connection )

Emitted when a new connection has been configured.

#### Parameters

`connection` - `o`
  Object path of the new connection.

Interface has no properties.

# org.freedesktop.NetworkManagerSettings.Connection

Represents a single network connection configuration.

## Methods:

### Update ( a{sa{sv}}: properties ) → nothing

Update the connection with new settings and properties, replacing all previous settings and properties.

#### Parameters

`properties` - `a{sa{sv}}`
  New connection properties.

### Delete ( ) → nothing

Delete the connection.

### GetSettings ( ) → a{sa{sv}}

Get the settings maps describing this object.

#### Returns

`settings` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  The nested settings maps describing this object.

## Signals:

### Updated ( a{sa{sv}}: settings )

Emitted when some settings changed.

#### Parameters

`settings` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Contains the changed settings.

### Removed ( )

Emitted when this settings object was removed. FIXME: Is this emitted after it was removed or when it is about to be removed? If after removed, then different semantics to Device removed. if prior to removal, should be called AboutToBeRemoved.

Interface has no properties.

# org.freedesktop.NetworkManagerSettings.Connection.Secrets

Secrets have a separate interface so that they can be locked down.

## Methods:

### GetSecrets ( s: setting_name, as: hints, b: request_new ) → a{sa{sv}}

Get the secrets encapsulated in this object.

#### Parameters

`setting_name` - `s`
  Name of the setting to return.
`hints` - `as`
  Array of strings of key names in the Setting for which NM thinks a secrets may be required.
`request_new` - `b`
  Indicates whether new secrets should be requested or if the request can be fulfilled from storage.

#### Returns

`secrets` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Nested settings maps containing secrets. Each setting MUST contain at least the 'name' field, containing the name of the setting, and one or more secrets.

Interface has no signals.

Interface has no properties.

# org.freedesktop.NetworkManager.Connection.Active

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`ServiceName` - `s` - `(read)`
  The D-Bus service name providing this connection.
`Connection` - `o` - `(read)`
  The path of the connection.
`SpecificObject` - `o` - `(read)`
  A specific object associated with the active connection.
`Devices` - `ao` - `(read)`
  Array of object paths representing devices which are part of this active connection.
`State` - `u` - `(read)` (NM_ACTIVE_CONNECTION_STATE)
  The state of this active connection.
`Default` - `b` - `(read)`
  Whether this active connection is the default connection, i.e. whether it currently owns the default route.
`Vpn` - `b` - `(read)`
  Whether this active connection is also a VPN connection.

## Enumerated types:

### NM_ACTIVE_CONNECTION_STATE

`NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0`
  The active connection is in an unknown state.
`NM_ACTIVE_CONNECTION_STATE_ACTIVATING = 1`
  The connection is activating.
`NM_ACTIVE_CONNECTION_STATE_ACTIVATED = 2`
  The connection is activated.

# org.freedesktop.NetworkManager.Connection.Active

Interface has no methods.

Interface has no signals.

## Properties:

`ServiceName` - `s` - `(read)`
  The D-Bus service name providing this connection.
`Connection` - `o` - `(read)`
  The path of the connection.
`SpecificObject` - `o` - `(read)`
  A specific object associated with the active connection.
`Devices` - `ao` - `(read)`
  Array of object paths representing devices which are part of this active connection.
`State` - `u` - `(read)` (NM_ACTIVE_CONNECTION_STATE)
  The state of this active connection.
`Default` - `b` - `(read)`
  Whether this active connection is the default connection, i.e. whether it currently owns the default route.

# org.freedesktop.NetworkManager.VPN.Connection

Represents an active connection to a Virtual Private Network.

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

### VpnStateChanged ( u: state, u: reason )

Emitted when the state of the VPN connection has changed.

#### Parameters

`state` - `u` (NM_VPN_CONNECTION_STATE)
  The new state of the VPN connection.
`reason` - `u` (NM_VPN_CONNECTION_STATE_REASON)
  Reason code describing the change to the new state.

## Properties:

`VpnState` - `u` - `(read)` (NM_VPN_CONNECTION_STATE)
  The VPN-specific state of the connection.
`Banner` - `s` - `(read)`
  The banner string of the VPN connection.

## Enumerated types:

### NM_VPN_CONNECTION_STATE

`NM_VPN_CONNECTION_STATE_UNKNOWN = 0`
  The state of the VPN connection is unknown.
`NM_VPN_CONNECTION_STATE_PREPARE = 1`
  The VPN connection is preparing to connect.
`NM_VPN_CONNECTION_STATE_NEED_AUTH = 2`
  The VPN connection needs authorization credentials.
`NM_VPN_CONNECTION_STATE_CONNECT = 3`
  The VPN connection is being established. FIXME: Should be CONNECTING or CONNECTED.
`NM_VPN_CONNECTION_STATE_IP_CONFIG_GET = 4`
  The VPN connection is getting an IP address. FIXME: Should be an -ING
`NM_VPN_CONNECTION_STATE_ACTIVATED = 5`
  The VPN connection is active.
`NM_VPN_CONNECTION_STATE_FAILED = 6`
  The VPN connection failed.
`NM_VPN_CONNECTION_STATE_DISCONNECTED = 7`
  The VPN connection is disconnected.

### NM_VPN_CONNECTION_STATE_REASON

`NM_VPN_CONNECTION_STATE_REASON_UNKNOWN = 0`
  The reason for the VPN connection state change is unknown.
`NM_VPN_CONNECTION_STATE_REASON_NONE = 1`
  No reason was given for the VPN connection state change.
`NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED = 2`
  The VPN connection changed state because the user disconnected it.
`NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED = 3`
  The VPN connection changed state because the device it was using was disconnected.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED = 4`
  The service providing the VPN connection was stopped.
`NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID = 5`
  The IP config of the VPN connection was invalid.
`NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT = 6`
  The connection attempt to the VPN service timed out.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT = 7`
  A timeout occurred while starting the service providing the VPN connection.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED = 8`
  Starting the service starting the service providing the VPN connection failed.
`NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS = 9`
  Necessary secrets for the VPN connection were not provided.

# org.freedesktop.NetworkManager.VPN.Plugin

This interface is provided by plugins providing VPN services to the NetworkManager daemon.

## Methods:

### Connect ( a{sa{sv}}: connection ) → nothing

Tells the plugin to connect.

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Describes the connection to be established.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.StartingInProgress`
  The request could not be processed because the VPN connection is already being started.(generic description)
`org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted`
  The request could not be processed because a VPN connection was already active.(generic description)
`org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress`
  The request could not be processed because the VPN connection is already being stopped.(generic description)
`org.freedesktop.NetworkManager.VPN.Error.BadArguments`
  Invalid arguments were passed with the request. FIXME: too general.(generic description)
`org.freedesktop.NetworkManager.VPN.Error.LaunchFailed`
  A binary providing the service failed to launch.(generic description)

### NeedSecrets ( a{sa{sv}}: settings ) → s

Asks the plugin whether the provided connection will require secrets to connect successfully.

#### Parameters

`settings` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Describes the connection that may need secrets.

#### Returns

`setting_name` - `s`
  The setting name within the provided connection that requires secrets, if any.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid`
  The request could not be processed because the VPN connection settings were invalid.(generic description)

### Disconnect ( ) → nothing

Disconnect the plugin.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress`
  The request could not be processed because the VPN connection is already being stopped.(generic description)
`org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped`
  The request could not be processed because the VPN connection was already stopped.(generic description)

### SetIp4Config ( a{sv}: config ) → nothing

Set IPv4 details on the connection.

#### Parameters

`config` - `a{sv}` (String_Variant_Map)
  Ip4Config details for the conneciton.

### SetFailure ( s: reason ) → nothing

Indicate a failure to the plugin.

#### Parameters

`reason` - `s`
  The reason for the failure.

## Signals:

### StateChanged ( u: state )

Emitted when the plugin state changes.

#### Parameters

`state` - `u` (NM_VPN_CONNECTION_STATE)
  The new state of the plugin.

### Ip4Config ( a{sv}: ip4config )

The plugin obtained an IPv4 configuration.

#### Parameters

`ip4config` - `a{sv}` (String_Variant_Map)
  The IPv4 configuration.

### LoginBanner ( s: banner )

Emitted when the plugin receives a login banner from the VPN service.

#### Parameters

`banner` - `s`
  The login banner string.

### Failure ( u: reason )

Emitted when a failure in the VPN plugin occurs.

#### Parameters

`reason` - `u` (NM_VPN_PLUGIN_FAILURE)
  Reason code for the failure.

## Properties:

`State` - `u` - `(read)` (NM_VPN_CONNECTION_STATE)
  The state of the plugin.

## Enumerated types:

### NM_VPN_PLUGIN_FAILURE

`NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED = 0`
  Login failed.
`NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED = 1`
  Connect failed.
`NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG = 2`
  Invalid IP configuration returned from the VPN plugin.

# Generic types:

## Enumerated types:

### NM_802_11_MODE

`NM_802_11_MODE_UNKNOWN = 0`
  Mode is unknown.
`NM_802_11_MODE_ADHOC = 1`
  Uncoordinated network without central infrastructure.
`NM_802_11_MODE_INFRA = 2`
  Coordinated network with one or more central controllers.

## Mapping types:

### String_Variant_Map - a{ s: Key → v: Value }

A mapping from strings to variants representing extra key-value pairs.

#### Members

`Key` - `s`
  (undocumented)
`Value` - `v`
  (undocumented)

### String_String_Map - a{ s: Key → s: Value }

A mapping from strings to strings representing extra key-value pairs.

#### Members

`Key` - `s`
  (undocumented)
`Value` - `s`
  (undocumented)

### String_String_Variant_Map_Map - a{ s: Key → a{sv}: Value }

A mapping from strings to a map of string to variant.

#### Members

`Key` - `s`
  (undocumented)
`Value` - `a{sv}` (String_Variant_Map)
  (undocumented)

# Errors:

## org.freedesktop.NetworkManager.Error.UnknownConnection

Connection was not provided by any known settings service.

## org.freedesktop.NetworkManager.Error.UnknownDevice

Unknown device.

## org.freedesktop.NetworkManager.Error.InvalidService

Invalid settings service (not a recognized system or user settings service name).

## org.freedesktop.NetworkManager.Error.SystemConnection

Connection was superseded by a system connection.

## org.freedesktop.NetworkManager.Error.PermissionDenied

User does not have the permission to activate this connection.

# Errors:

## org.freedesktop.NetworkManager.VPN.Error.General

This is a drab, nondescript error.

## org.freedesktop.NetworkManager.VPN.Error.StartingInProgress

The request could not be processed because the VPN connection is already being started.

## org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted

The request could not be processed because a VPN connection was already active.

## org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress

The request could not be processed because the VPN connection is already being stopped.

## org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped

The request could not be processed because the VPN connection was already stopped.

## org.freedesktop.NetworkManager.VPN.Error.WrongState

The request could not be processed because the VPN connection is in the wrong state for this type of request. FIXME: too general?

## org.freedesktop.NetworkManager.VPN.Error.BadArguments

Invalid arguments were passed with the request. FIXME: too general.

## org.freedesktop.NetworkManager.VPN.Error.LaunchFailed

A binary providing the service failed to launch.

## org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid

The request could not be processed because the VPN connection settings were invalid.

# Index

## Index of interfaces

- `org.freedesktop.NetworkManager`
- `org.freedesktop.NetworkManager.AccessPoint`
- `org.freedesktop.NetworkManager.Device`
- `org.freedesktop.NetworkManager.Device.Wired`
- `org.freedesktop.NetworkManager.Device.Wireless`
- `org.freedesktop.NetworkManager.Device.Cdma`
- `org.freedesktop.NetworkManager.Device.Gsm`
- `org.freedesktop.NetworkManager.Device.Serial`
- `org.freedesktop.NetworkManager.IP4Config`
- `org.freedesktop.NetworkManager.DHCP4Config`
- `org.freedesktop.NetworkManagerSettings`
- `org.freedesktop.NetworkManagerSettings.Connection`
- `org.freedesktop.NetworkManagerSettings.Connection.Secrets`
- `org.freedesktop.NetworkManager.Connection.Active`
- `org.freedesktop.NetworkManager.Connection.Active`
- `org.freedesktop.NetworkManager.VPN.Connection`
- `org.freedesktop.NetworkManager.VPN.Plugin`

## Index of types

- `NM_802_11_AP_FLAGS` - u
- `NM_802_11_AP_SEC` - u
- `NM_802_11_DEVICE_CAP` - u
- `NM_802_11_MODE` - u
- `NM_ACTIVE_CONNECTION_STATE` - u
- `NM_DEVICE_CAP` - u
- `NM_DEVICE_STATE` - u
- `NM_DEVICE_STATE_REASON` - u
- `NM_DEVICE_TYPE` - u
- `NM_STATE` - u
- `NM_VPN_CONNECTION_STATE` - u
- `NM_VPN_CONNECTION_STATE_REASON` - u
- `NM_VPN_PLUGIN_FAILURE` - u
- `String_String_Map` - a{ s → s }
- `String_String_Variant_Map_Map` - a{ s → a{sv} }
- `String_Variant_Map` - a{ s → v }