# NetworkManager D-Bus Interface Specification

## Version 0.8

Copyright (C) 2008 - 2009 Red Hat, Inc.
Copyright (C) 2008 - 2009 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.Device.Bluetooth`
- `org.freedesktop.NetworkManager.Device.OlpcMesh`
- `org.freedesktop.NetworkManager.IP4Config`
- `org.freedesktop.NetworkManager.IP6Config`
- `org.freedesktop.NetworkManager.DHCP4Config`
- `org.freedesktop.NetworkManager.DHCP6Config`
- `org.freedesktop.NetworkManagerSettings`
- `org.freedesktop.NetworkManagerSettings.System`
- `org.freedesktop.NetworkManagerSettings.Connection`
- `org.freedesktop.NetworkManagerSettings.Connection.Secrets`
- `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 object path of device to be activated for physical connections. This parameter is ignored for VPN connections, because the specific_object (if provided) specifies the device to use.
`specific_object` - `o`
  The path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of "/" should be used (ie, no specific object). For WiFi connections, pass the object path of a specific AP from the card's scan list, or "/" to pick and AP automatically. For VPN connections, pass the object path of an ActiveConnection object that should serve as the "base" connection (to which the VPN connections lifetime will be tied), or pass "/" and NM will automatically use the current default device.

#### 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. This command should not be called directly by users or clients; it is intended for system suspend/resume tracking.

#### Parameters

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

### Enable ( b: enable ) → nothing

Control whether overall networking is enabled or disabled. When disabled, all interfaces that NM manages are deactivated. When enabled, all managed interfaces are re-enabled and available to be activated. This command should be used by clients that provide to users the ability to enable/disable all networking.

#### Parameters

`enable` - `b`
  If FALSE, indicates that all networking should be disabled. If TRUE, indicates that NetworkManager should begin managing network devices.

### GetPermissions ( ) → a{ss}

Returns the permissions a caller has for various authenticated operations that NetworkManager provides, like Enable/Disable networking, changing WiFi, WWAN, and WiMAX state, etc.

#### Returns

`permissions` - `a{ss}`
  Dictionary of available permissions and results. Each permission is represented by a name (ie "org.freedesktop.NetworkManager.Foobar") and each result is one of the following values: "yes" (the permission is available), "auth" (the permission is available after a successful authentication), or "no" (the permission is denied). Clients may use these values in the UI to indicate the ability to perform certain operations.

### SetLogging ( s: level, s: domains ) → nothing

Set logging verbosity and which operations are logged.

#### Parameters

`level` - `s`
  One of [ERR, WARN, INFO, DEBUG].
`domains` - `s`
  A combination of logging domains separated by commas (','), or "NONE" to disable logging. Each domain enables logging for operations related to that domain. Available domains are: [NONE, HW, RFKILL, ETHER, WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING, SUPPLICANT, USER_SET, SYS_SET, SUSPEND, CORE, DEVICE, OLPC]

### 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:

### CheckPermissions ( )

Emitted when system authorization details change, indicating that clients may wish to recheck permissions with GetPermissions.

### 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:

`NetworkingEnabled` - `b` - `(read)`
  Indicates if overall networking is currently enabled or not. See the Enable() method.
`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.
`WwanEnabled` - `b` - `(readwrite)`
  Indicates if mobile broadband devices are currently enabled or not.
`WwanHardwareEnabled` - `b` - `(read)`
  Indicates if the mobile broadband hardware is currently enabled, i.e. the state of the RF kill switch.
`ActiveConnections` - `ao` - `(read)`
  List of active connection object paths.
`Version` - `s` - `(read)`
  NetworkManager version.
`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

## Methods:

### Disconnect ( ) → nothing

Disconnects a device and prevents the device from automatically activating further connections without user intervention.

## 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)`
  Unique Device Identifier.
`Interface` - `s` - `(read)`
  The name of the device's control (and often data) interface.
`IpInterface` - `s` - `(read)`
  The name of the device's data interface when available. This property may not refer to the actual data interface until the device has successfully established a data connection, indicated by the device's State becoming ACTIVATED.
`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.
`Ip6Config` - `o` - `(read)`
  Object path of the Ip6Config object describing the configuration of the device. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Dhcp6Config` - `o` - `(read)`
  Object path of the Dhcp6Config 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.
`FirmwareMissing` - `b` - `(read)`
  If TRUE, indicates the device is likely missing firmware necessary for its operation.
`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.
`NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED = 41`
  The device's existing connection was assumed.
`NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE = 42`
  The 802.1x supplicant is now available.
`NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND = 43`
  The modem could not be found.
`NM_DEVICE_STATE_REASON_BT_FAILED = 44`
  The Bluetooth connection timed out or failed.

## 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)`
  Active hardware address of the device.
`PermHwAddress` - `s` - `(read)`
  Permanent hardware address of the device.
`Speed` - `u` - `(read)`
  Design speed of the device, in megabits/second (Mb/s).
`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 active hardware address of the device.
`PermHwAddress` - `s` - `(read)`
  The permanent 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.Device.Bluetooth

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)`
  Bluetooth hardware address of the device.
`Name` - `s` - `(read)`
  Bluetooth name of the device.
`BtCapabilities` - `u` - `(read)` (NM_BT_CAPABILITIES)
  Bluetooth capabilities of the device (either DUN or NAP).

## Sets of flags:

### NM_BT_CAPABILITIES

Flags describing the capabilities of a Bluetooth device.

`NM_BT_CAPABILITY_NONE = 0x0`
  The device has no recognized capabilities.
`NM_BT_CAPABILITY_DUN = 0x1`
  The device supports Bluetooth Dial-Up Networking.
`NM_BT_CAPABILITY_PAN = 0x2`
  The device supports Bluetooth Personal Area Networking.

# org.freedesktop.NetworkManager.Device.OlpcMesh

Interface has no methods.

## 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.

## Properties:

`HwAddress` - `s` - `(read)`
  The hardware address of the device.
`Companion` - `o` - `(read)`
  The object path of the companion device.
`ActiveChannel` - `u` - `(read)`
  The currently active channel.

# org.freedesktop.NetworkManager.IP4Config

Interface has no methods.

Interface has no signals.

## Properties:

`Addresses` - `aau` - `(read)`
  Array of tuples of IPv4 address/prefix/gateway. All 3 elements of each tuple are in network byte order. Essentially: [(addr, prefix, gateway), (addr, prefix, gateway), ...]
`Nameservers` - `au` - `(read)`
  The nameservers in use.
`WinsServers` - `au` - `(read)`
  The Windows Internet Name Service servers associated with the connection. Each address is in network byte order.
`Domains` - `as` - `(read)`
  A list of domains this address belongs to.
`Routes` - `aau` - `(read)`
  Tuples of IPv4 route/prefix/next-hop/metric. All 4 elements of each tuple are in network byte order. 'route' and 'next hop' are IPv4 addresses, while prefix and metric are simple unsigned integers. Essentially: [(route, prefix, next-hop, metric), (route, prefix, next-hop, metric), ...]

# org.freedesktop.NetworkManager.IP6Config

Interface has no methods.

Interface has no signals.

## Properties:

`Addresses` - `a(ayuay)` - `(read)`
  Tuples of IPv6 address/prefix/gateway.
`Nameservers` - `aay` - `(read)`
  The nameservers in use.
`Domains` - `as` - `(read)`
  A list of domains this address belongs to.
`Routes` - `a(ayuayu)` - `(read)`
  Tuples of IPv6 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.NetworkManager.DHCP6Config

Options and configuration returned by the IPv6 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.

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

Add new connection.

#### Parameters

`connection` - `a{sa{sv}}`
  Connection settings and properties.

## Signals:

### NewConnection ( o: connection )

Emitted when a new connection has been added.

#### Parameters

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

Interface has no properties.

# org.freedesktop.NetworkManagerSettings.System

Implemented by the system settings service to provide additional settings to NetworkManager.

## Methods:

### SaveHostname ( s: hostname ) → nothing

Save the hostname to persistent configuration.

#### Parameters

`hostname` - `s`
  The hostname to save to persistent configuration. If blank, the persistent hostname is cleared.

### GetPermissions ( ) → u

Returns a bitfield indicating certain operations the caller is permitted to perform. Some of these operations may require authorization by the user.

#### Returns

`permissions` - `u` (NM_SETTINGS_SYSTEM_PERMISSIONS)
  A bitfield of permitted operations. Some of these operations may require the user to authorize via password entry or other means.

## Signals:

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

#### Parameters

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

### CheckPermissions ( )

Emitted when system authorization details change, indicating that clients may wish to recheck permissions with GetPermissions.

## Properties:

`Hostname` - `s` - `(read)`
  The machine hostname stored in persistent configuration.
`CanModify` - `b` - `(read)`
  If true, adding and modifying connections is supported.

## Sets of flags:

### NM_SETTINGS_SYSTEM_PERMISSIONS

`NM_SETTINGS_SYSTEM_PERMISSION_NONE = 0x0`
  No permissions.
`NM_SETTINGS_SYSTEM_PERMISSION_CONNECTION_MODIFY = 0x1`
  Can modify/add/delete connections.
`NM_SETTINGS_SYSTEM_PERMISSION_WIFI_SHARING_PROTECTED = 0x2`
  Can share connections via a encrypted user-created WiFi network.
`NM_SETTINGS_SYSTEM_PERMISSION_WIFI_SHARING_OPEN = 0x4`
  Can share connections via a open/unencrypted user-created WiFi network.
`NM_SETTINGS_SYSTEM_PERMISSION_HOSTNAME_MODIFY = 0x8`
  Can modify the persistent system hostname.

# 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 complete connection setting parameters, including changes.

### Removed ( )

Emitted when this connection has been deleted/removed. After receipt of this signal, the object no longer exists.

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 IPv4 connection, i.e. whether it currently owns the default IPv4 route.
`Default6` - `b` - `(read)`
  Whether this active connection is the default IPv6 connection, i.e. whether it currently owns the default IPv6 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.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.
`NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED = 10`
  Authentication to the VPN server failed.
`NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED = 11`
  The connection was deleted from settings.

# 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.Device.Bluetooth`
- `org.freedesktop.NetworkManager.Device.OlpcMesh`
- `org.freedesktop.NetworkManager.IP4Config`
- `org.freedesktop.NetworkManager.IP6Config`
- `org.freedesktop.NetworkManager.DHCP4Config`
- `org.freedesktop.NetworkManager.DHCP6Config`
- `org.freedesktop.NetworkManagerSettings`
- `org.freedesktop.NetworkManagerSettings.System`
- `org.freedesktop.NetworkManagerSettings.Connection`
- `org.freedesktop.NetworkManagerSettings.Connection.Secrets`
- `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_BT_CAPABILITIES` - u
- `NM_DEVICE_CAP` - u
- `NM_DEVICE_STATE` - u
- `NM_DEVICE_STATE_REASON` - u
- `NM_DEVICE_TYPE` - u
- `NM_SETTINGS_SYSTEM_PERMISSIONS` - 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 }