## NetworkManagerVPN NetworkManagerVPN |

## Synopsis

    #define             NM_DBUS_PATH_VPN
    #define             NM_DBUS_INTERFACE_VPN
    #define             NM_DBUS_PATH_VPN_CONNECTION
    #define             NM_DBUS_INTERFACE_VPN_CONNECTION
    #define             NM_VPN_DBUS_PLUGIN_PATH
    #define             NM_VPN_DBUS_PLUGIN_INTERFACE
    #define             NM_DBUS_NO_ACTIVE_VPN_CONNECTION
    #define             NM_DBUS_NO_VPN_CONNECTIONS
    #define             NM_DBUS_INVALID_VPN_CONNECTION
    #define             NM_DBUS_VPN_ERROR_PREFIX
    #define             NM_DBUS_VPN_STARTING_IN_PROGRESS
    #define             NM_DBUS_VPN_ALREADY_STARTED
    #define             NM_DBUS_VPN_STOPPING_IN_PROGRESS
    #define             NM_DBUS_VPN_ALREADY_STOPPED
    #define             NM_DBUS_VPN_WRONG_STATE
    #define             NM_DBUS_VPN_BAD_ARGUMENTS
    #define             NM_DBUS_VPN_INTERACTIVE_NOT_SUPPORTED
    #define             NM_DBUS_VPN_SIGNAL_LOGIN_BANNER
    #define             NM_DBUS_VPN_SIGNAL_LOGIN_FAILED
    #define             NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED
    #define             NM_DBUS_VPN_SIGNAL_CONNECT_FAILED
    #define             NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD
    #define             NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD
    #define             NM_DBUS_VPN_SIGNAL_STATE_CHANGE
    #define             NM_DBUS_VPN_SIGNAL_IP4_CONFIG
    enum                NMVPNServiceState;
    enum                NMVPNConnectionState;
    enum                NMVPNConnectionStateReason;
    enum                NMVPNPluginFailure;
    #define             NM_VPN_PLUGIN_CONFIG_TUNDEV
    #define             NM_VPN_PLUGIN_CONFIG_BANNER
    #define             NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY
    #define             NM_VPN_PLUGIN_CONFIG_MTU
    #define             NM_VPN_PLUGIN_CONFIG_HAS_IP4
    #define             NM_VPN_PLUGIN_CONFIG_HAS_IP6
    #define             NM_VPN_PLUGIN_CAN_PERSIST
    #define             NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY
    #define             NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS
    #define             NM_VPN_PLUGIN_IP4_CONFIG_PTP
    #define             NM_VPN_PLUGIN_IP4_CONFIG_PREFIX
    #define             NM_VPN_PLUGIN_IP4_CONFIG_DNS
    #define             NM_VPN_PLUGIN_IP4_CONFIG_NBNS
    #define             NM_VPN_PLUGIN_IP4_CONFIG_MSS
    #define             NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN
    #define             NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS
    #define             NM_VPN_PLUGIN_IP4_CONFIG_ROUTES
    #define             NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT
    #define             NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY
    #define             NM_VPN_PLUGIN_IP4_CONFIG_BANNER
    #define             NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY
    #define             NM_VPN_PLUGIN_IP4_CONFIG_MTU
    #define             NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV
    #define             NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY
    #define             NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS
    #define             NM_VPN_PLUGIN_IP6_CONFIG_PTP
    #define             NM_VPN_PLUGIN_IP6_CONFIG_PREFIX
    #define             NM_VPN_PLUGIN_IP6_CONFIG_DNS
    #define             NM_VPN_PLUGIN_IP6_CONFIG_MSS
    #define             NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN
    #define             NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS
    #define             NM_VPN_PLUGIN_IP6_CONFIG_ROUTES
    #define             NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT

## Description

## Details

### NM_DBUS_PATH_VPN

    #define NM_DBUS_PATH_VPN                  "/org/freedesktop/NetworkManager/VPN/Manager"

### NM_DBUS_INTERFACE_VPN

    #define NM_DBUS_INTERFACE_VPN             "org.freedesktop.NetworkManager.VPN.Manager"

### NM_DBUS_PATH_VPN_CONNECTION

    #define NM_DBUS_PATH_VPN_CONNECTION       "/org/freedesktop/NetworkManager/VPN/Connection"

### NM_DBUS_INTERFACE_VPN_CONNECTION

    #define NM_DBUS_INTERFACE_VPN_CONNECTION  "org.freedesktop.NetworkManager.VPN.Connection"

### NM_VPN_DBUS_PLUGIN_PATH

    #define NM_VPN_DBUS_PLUGIN_PATH           "/org/freedesktop/NetworkManager/VPN/Plugin"

### NM_VPN_DBUS_PLUGIN_INTERFACE

    #define NM_VPN_DBUS_PLUGIN_INTERFACE      "org.freedesktop.NetworkManager.VPN.Plugin"

### NM_DBUS_NO_ACTIVE_VPN_CONNECTION

    #define NM_DBUS_NO_ACTIVE_VPN_CONNECTION "org.freedesktop.NetworkManager.VPNConnections.NoActiveVPNConnection"

### NM_DBUS_NO_VPN_CONNECTIONS

    #define NM_DBUS_NO_VPN_CONNECTIONS       "org.freedesktop.NetworkManager.VPNConnections.NoVPNConnections"

### NM_DBUS_INVALID_VPN_CONNECTION

    #define NM_DBUS_INVALID_VPN_CONNECTION   "org.freedesktop.NetworkManager.VPNConnections.InvalidVPNConnection"

### NM_DBUS_VPN_ERROR_PREFIX

    #define NM_DBUS_VPN_ERROR_PREFIX              "org.freedesktop.NetworkManager.VPN.Error"

### NM_DBUS_VPN_STARTING_IN_PROGRESS

    #define NM_DBUS_VPN_STARTING_IN_PROGRESS      "StartingInProgress"

### NM_DBUS_VPN_ALREADY_STARTED

    #define NM_DBUS_VPN_ALREADY_STARTED           "AlreadyStarted"

### NM_DBUS_VPN_STOPPING_IN_PROGRESS

    #define NM_DBUS_VPN_STOPPING_IN_PROGRESS      "StoppingInProgress"

### NM_DBUS_VPN_ALREADY_STOPPED

    #define NM_DBUS_VPN_ALREADY_STOPPED           "AlreadyStopped"

### NM_DBUS_VPN_WRONG_STATE

    #define NM_DBUS_VPN_WRONG_STATE               "WrongState"

### NM_DBUS_VPN_BAD_ARGUMENTS

    #define NM_DBUS_VPN_BAD_ARGUMENTS             "BadArguments"

### NM_DBUS_VPN_INTERACTIVE_NOT_SUPPORTED

    #define NM_DBUS_VPN_INTERACTIVE_NOT_SUPPORTED "InteractiveNotSupported"

### NM_DBUS_VPN_SIGNAL_LOGIN_BANNER

    #define NM_DBUS_VPN_SIGNAL_LOGIN_BANNER   "LoginBanner"

### NM_DBUS_VPN_SIGNAL_LOGIN_FAILED

    #define NM_DBUS_VPN_SIGNAL_LOGIN_FAILED   "LoginFailed"

### NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED

    #define NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED  "LaunchFailed"

### NM_DBUS_VPN_SIGNAL_CONNECT_FAILED

    #define NM_DBUS_VPN_SIGNAL_CONNECT_FAILED "ConnectFailed"

### NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD

    #define NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD "VPNConfigBad"

### NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD

    #define NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD  "IPConfigBad"

### NM_DBUS_VPN_SIGNAL_STATE_CHANGE

    #define NM_DBUS_VPN_SIGNAL_STATE_CHANGE   "StateChange"

### NM_DBUS_VPN_SIGNAL_IP4_CONFIG

    #define NM_DBUS_VPN_SIGNAL_IP4_CONFIG     "IP4Config"

### enum NMVPNServiceState

    typedef enum {
    	NM_VPN_SERVICE_STATE_UNKNOWN = 0,
    	NM_VPN_SERVICE_STATE_INIT,
    	NM_VPN_SERVICE_STATE_SHUTDOWN,
    	NM_VPN_SERVICE_STATE_STARTING,
    	NM_VPN_SERVICE_STATE_STARTED,
    	NM_VPN_SERVICE_STATE_STOPPING,
    	NM_VPN_SERVICE_STATE_STOPPED
    } NMVPNServiceState;

VPN daemon states

(Corresponds to the NM_VPN_SERVICE_STATE type in nm-vpn-connection.xml.)

`NM_VPN_SERVICE_STATE_UNKNOWN` | The state of the VPN plugin is unknown.
`NM_VPN_SERVICE_STATE_INIT` | The VPN plugin is initialized.
`NM_VPN_SERVICE_STATE_SHUTDOWN` | Not used.
`NM_VPN_SERVICE_STATE_STARTING` | The plugin is attempting to connect to a VPN server.
`NM_VPN_SERVICE_STATE_STARTED` | The plugin has connected to a VPN server.
`NM_VPN_SERVICE_STATE_STOPPING` | The plugin is disconnecting from the VPN server.
`NM_VPN_SERVICE_STATE_STOPPED` | The plugin has disconnected from the VPN server.

### enum NMVPNConnectionState

    typedef enum {
    	NM_VPN_CONNECTION_STATE_UNKNOWN = 0,
    	NM_VPN_CONNECTION_STATE_PREPARE,
    	NM_VPN_CONNECTION_STATE_NEED_AUTH,
    	NM_VPN_CONNECTION_STATE_CONNECT,
    	NM_VPN_CONNECTION_STATE_IP_CONFIG_GET,
    	NM_VPN_CONNECTION_STATE_ACTIVATED,
    	NM_VPN_CONNECTION_STATE_FAILED,
    	NM_VPN_CONNECTION_STATE_DISCONNECTED
    } NMVPNConnectionState;

VPN connection states

(Corresponds to the NM_VPN_CONNECTION_STATE type in nm-vpn-connection.xml.)

`NM_VPN_CONNECTION_STATE_UNKNOWN` | The state of the VPN connection is unknown.
`NM_VPN_CONNECTION_STATE_PREPARE` | The VPN connection is preparing to connect.
`NM_VPN_CONNECTION_STATE_NEED_AUTH` | The VPN connection needs authorization credentials.
`NM_VPN_CONNECTION_STATE_CONNECT` | The VPN connection is being established.
`NM_VPN_CONNECTION_STATE_IP_CONFIG_GET` | The VPN connection is getting an IP address.
`NM_VPN_CONNECTION_STATE_ACTIVATED` | The VPN connection is active.
`NM_VPN_CONNECTION_STATE_FAILED` | The VPN connection failed.
`NM_VPN_CONNECTION_STATE_DISCONNECTED` | The VPN connection is disconnected.

### enum NMVPNConnectionStateReason

    typedef enum {
    	NM_VPN_CONNECTION_STATE_REASON_UNKNOWN = 0,
    	NM_VPN_CONNECTION_STATE_REASON_NONE,
    	NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED,
    	NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED,
    	NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED,
    	NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID,
    	NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT,
    	NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT,
    	NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED,
    	NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS,
    	NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED,
    	NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED
    } NMVPNConnectionStateReason;

VPN connection state reasons

(Corresponds to the NM_VPN_CONNECTION_STATE_REASON type in nm-vpn-connection.xml.)

`NM_VPN_CONNECTION_STATE_REASON_UNKNOWN` | The reason for the VPN connection state change is unknown.
`NM_VPN_CONNECTION_STATE_REASON_NONE` | No reason was given for the VPN connection state change.
`NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED` | The VPN connection changed state because the user disconnected it.
`NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED` | The VPN connection changed state because the device it was using was disconnected.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED` | The service providing the VPN connection was stopped.
`NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID` | The IP config of the VPN connection was invalid.
`NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT` | The connection attempt to the VPN service timed out.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT` | A timeout occurred while starting the service providing the VPN connection.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED` | Starting the service starting the service providing the VPN connection failed.
`NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS` | Necessary secrets for the VPN connection were not provided.
`NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED` | Authentication to the VPN server failed.
`NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED` | The connection was deleted from settings.

### enum NMVPNPluginFailure

    typedef enum {
    	NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED,
    	NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED,
    	NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG
    } NMVPNPluginFailure;

VPN plugin failure reasons

(Corresponds to the NM_VPN_PLUGIN_FAILURE type in nm-vpn-plugin.xml.)

`NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED` | Login failed.
`NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED` | Connect failed.
`NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG` | Invalid IP configuration returned from the VPN plugin.

### NM_VPN_PLUGIN_CONFIG_TUNDEV

    #define NM_VPN_PLUGIN_CONFIG_TUNDEV      "tundev"

### NM_VPN_PLUGIN_CONFIG_BANNER

    #define NM_VPN_PLUGIN_CONFIG_BANNER      "banner"

### NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY

    #define NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY "gateway"

### NM_VPN_PLUGIN_CONFIG_MTU

    #define NM_VPN_PLUGIN_CONFIG_MTU         "mtu"

### NM_VPN_PLUGIN_CONFIG_HAS_IP4

    #define NM_VPN_PLUGIN_CONFIG_HAS_IP4     "has-ip4"

### NM_VPN_PLUGIN_CONFIG_HAS_IP6

    #define NM_VPN_PLUGIN_CONFIG_HAS_IP6     "has-ip6"

### NM_VPN_PLUGIN_CAN_PERSIST

    #define NM_VPN_PLUGIN_CAN_PERSIST        "can-persist"

### NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY

    #define NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY "internal-gateway"

### NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS

    #define NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS     "address"

### NM_VPN_PLUGIN_IP4_CONFIG_PTP

    #define NM_VPN_PLUGIN_IP4_CONFIG_PTP         "ptp"

### NM_VPN_PLUGIN_IP4_CONFIG_PREFIX

    #define NM_VPN_PLUGIN_IP4_CONFIG_PREFIX      "prefix"

### NM_VPN_PLUGIN_IP4_CONFIG_DNS

    #define NM_VPN_PLUGIN_IP4_CONFIG_DNS         "dns"

### NM_VPN_PLUGIN_IP4_CONFIG_NBNS

    #define NM_VPN_PLUGIN_IP4_CONFIG_NBNS        "nbns"

### NM_VPN_PLUGIN_IP4_CONFIG_MSS

    #define NM_VPN_PLUGIN_IP4_CONFIG_MSS         "mss"

### NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN

    #define NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN      "domain"

### NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS

    #define NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS     "domains"

### NM_VPN_PLUGIN_IP4_CONFIG_ROUTES

    #define NM_VPN_PLUGIN_IP4_CONFIG_ROUTES      "routes"

### NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT

    #define NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT "never-default"

### NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY

    #define NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY   NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY

### NM_VPN_PLUGIN_IP4_CONFIG_BANNER

    #define NM_VPN_PLUGIN_IP4_CONFIG_BANNER      NM_VPN_PLUGIN_CONFIG_BANNER

### NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY

    #define NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY

### NM_VPN_PLUGIN_IP4_CONFIG_MTU

    #define NM_VPN_PLUGIN_IP4_CONFIG_MTU         NM_VPN_PLUGIN_CONFIG_MTU

### NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV

    #define NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV      NM_VPN_PLUGIN_CONFIG_TUNDEV

### NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY

    #define NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY "internal-gateway"

### NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS

    #define NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS     "address"

### NM_VPN_PLUGIN_IP6_CONFIG_PTP

    #define NM_VPN_PLUGIN_IP6_CONFIG_PTP         "ptp"

### NM_VPN_PLUGIN_IP6_CONFIG_PREFIX

    #define NM_VPN_PLUGIN_IP6_CONFIG_PREFIX      "prefix"

### NM_VPN_PLUGIN_IP6_CONFIG_DNS

    #define NM_VPN_PLUGIN_IP6_CONFIG_DNS         "dns"

### NM_VPN_PLUGIN_IP6_CONFIG_MSS

    #define NM_VPN_PLUGIN_IP6_CONFIG_MSS         "mss"

### NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN

    #define NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN      "domain"

### NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS

    #define NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS     "domains"

### NM_VPN_PLUGIN_IP6_CONFIG_ROUTES

    #define NM_VPN_PLUGIN_IP6_CONFIG_ROUTES      "routes"

### NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT

    #define NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT "never-default"