Blame libnm-core/nm-vpn-dbus-interface.h

Packit Service b23acc
// SPDX-License-Identifier: GPL-2.0+
Packit Service b23acc
/*
Packit Service b23acc
 * Copyright (C) 2004 Red Hat, Inc.
Packit Service b23acc
 */
Packit Service b23acc
Packit Service b23acc
/* D-Bus-related definitions for NetworkManager VPN plugins.
Packit Service b23acc
 *
Packit Service b23acc
 * Note that although this header is installed as part of libnm, it is also
Packit Service b23acc
 * used by some external code that does not link to libnm.
Packit Service b23acc
 */
Packit Service b23acc
Packit Service b23acc
#ifndef __NM_VPN_DBUS_INTERFACE_H__
Packit Service b23acc
#define __NM_VPN_DBUS_INTERFACE_H__
Packit Service b23acc
Packit Service b23acc
#include "nm-dbus-interface.h"
Packit Service b23acc
Packit Service b23acc
#ifndef NM_VERSION_H
Packit Service b23acc
#define NM_DEPRECATED_IN_1_8_FOR(n)
Packit Service b23acc
#endif
Packit Service b23acc
Packit Service b23acc
/*
Packit Service b23acc
 * dbus services details
Packit Service b23acc
 */
Packit Service b23acc
#define NM_DBUS_PATH_VPN                  "/org/freedesktop/NetworkManager/VPN/Manager"
Packit Service b23acc
#define NM_DBUS_INTERFACE_VPN             "org.freedesktop.NetworkManager.VPN.Manager"
Packit Service b23acc
Packit Service b23acc
#define NM_DBUS_PATH_VPN_CONNECTION       "/org/freedesktop/NetworkManager/VPN/Connection"
Packit Service b23acc
#define NM_DBUS_INTERFACE_VPN_CONNECTION  "org.freedesktop.NetworkManager.VPN.Connection"
Packit Service b23acc
Packit Service b23acc
#define NM_VPN_DBUS_PLUGIN_PATH           "/org/freedesktop/NetworkManager/VPN/Plugin"
Packit Service b23acc
#define NM_VPN_DBUS_PLUGIN_INTERFACE      "org.freedesktop.NetworkManager.VPN.Plugin"
Packit Service b23acc
Packit Service b23acc
/*
Packit Service b23acc
 * VPN Errors
Packit Service b23acc
 */
Packit Service b23acc
#define NM_DBUS_NO_ACTIVE_VPN_CONNECTION "org.freedesktop.NetworkManager.VPNConnections.NoActiveVPNConnection"
Packit Service b23acc
#define NM_DBUS_NO_VPN_CONNECTIONS       "org.freedesktop.NetworkManager.VPNConnections.NoVPNConnections"
Packit Service b23acc
#define NM_DBUS_INVALID_VPN_CONNECTION   "org.freedesktop.NetworkManager.VPNConnections.InvalidVPNConnection"
Packit Service b23acc
Packit Service b23acc
#define NM_DBUS_VPN_ERROR_PREFIX              "org.freedesktop.NetworkManager.VPN.Error"
Packit Service b23acc
#define NM_DBUS_VPN_STARTING_IN_PROGRESS      "StartingInProgress"
Packit Service b23acc
#define NM_DBUS_VPN_ALREADY_STARTED           "AlreadyStarted"
Packit Service b23acc
#define NM_DBUS_VPN_STOPPING_IN_PROGRESS      "StoppingInProgress"
Packit Service b23acc
#define NM_DBUS_VPN_ALREADY_STOPPED           "AlreadyStopped"
Packit Service b23acc
#define NM_DBUS_VPN_WRONG_STATE               "WrongState"
Packit Service b23acc
#define NM_DBUS_VPN_BAD_ARGUMENTS             "BadArguments"
Packit Service b23acc
#define NM_DBUS_VPN_INTERACTIVE_NOT_SUPPORTED "InteractiveNotSupported"
Packit Service b23acc
Packit Service b23acc
/*
Packit Service b23acc
 * VPN daemon signals
Packit Service b23acc
 */
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_LOGIN_BANNER   "LoginBanner"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_LOGIN_FAILED   "LoginFailed"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED  "LaunchFailed"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_CONNECT_FAILED "ConnectFailed"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD "VPNConfigBad"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD  "IPConfigBad"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_STATE_CHANGE   "StateChange"
Packit Service b23acc
#define NM_DBUS_VPN_SIGNAL_IP4_CONFIG     "IP4Config"
Packit Service b23acc
Packit Service b23acc
/**
Packit Service b23acc
 * NMVpnServiceState:
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_UNKNOWN: The state of the VPN plugin is unknown.
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_INIT: The VPN plugin is initialized.
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_SHUTDOWN: Not used.
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_STARTING: The plugin is attempting to connect to a VPN server.
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_STARTED: The plugin has connected to a VPN server.
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_STOPPING: The plugin is disconnecting from the VPN server.
Packit Service b23acc
 * @NM_VPN_SERVICE_STATE_STOPPED: The plugin has disconnected from the VPN server.
Packit Service b23acc
 *
Packit Service b23acc
 * VPN daemon states
Packit Service b23acc
 */
Packit Service b23acc
typedef enum {
Packit Service b23acc
	NM_VPN_SERVICE_STATE_UNKNOWN = 0,
Packit Service b23acc
	NM_VPN_SERVICE_STATE_INIT,
Packit Service b23acc
	NM_VPN_SERVICE_STATE_SHUTDOWN,
Packit Service b23acc
	NM_VPN_SERVICE_STATE_STARTING,
Packit Service b23acc
	NM_VPN_SERVICE_STATE_STARTED,
Packit Service b23acc
	NM_VPN_SERVICE_STATE_STOPPING,
Packit Service b23acc
	NM_VPN_SERVICE_STATE_STOPPED
Packit Service b23acc
} NMVpnServiceState;
Packit Service b23acc
Packit Service b23acc
/**
Packit Service b23acc
 * NMVpnConnectionState:
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_UNKNOWN: The state of the VPN connection is
Packit Service b23acc
 *   unknown.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_PREPARE: The VPN connection is preparing to
Packit Service b23acc
 *   connect.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_NEED_AUTH: The VPN connection needs authorization
Packit Service b23acc
 *   credentials.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_CONNECT: The VPN connection is being established.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_IP_CONFIG_GET: The VPN connection is getting an IP
Packit Service b23acc
 *   address.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_ACTIVATED: The VPN connection is active.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_FAILED: The VPN connection failed.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_DISCONNECTED: The VPN connection is disconnected.
Packit Service b23acc
 *
Packit Service b23acc
 * VPN connection states
Packit Service b23acc
 */
Packit Service b23acc
typedef enum {
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_UNKNOWN = 0,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_PREPARE,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_NEED_AUTH,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_CONNECT,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_IP_CONFIG_GET,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_ACTIVATED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_FAILED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_DISCONNECTED
Packit Service b23acc
} NMVpnConnectionState;
Packit Service b23acc
Packit Service b23acc
/**
Packit Service b23acc
 * NMVpnConnectionStateReason:
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_UNKNOWN: The reason for the VPN connection
Packit Service b23acc
 *   state change is unknown.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_NONE: No reason was given for the VPN
Packit Service b23acc
 *   connection state change.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED: The VPN connection changed
Packit Service b23acc
 *   state because the user disconnected it.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED: The VPN connection
Packit Service b23acc
 *   changed state because the device it was using was disconnected.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED: The service providing the
Packit Service b23acc
 *   VPN connection was stopped.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID: The IP config of the VPN
Packit Service b23acc
 *   connection was invalid.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT: The connection attempt to
Packit Service b23acc
 *   the VPN service timed out.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT: A timeout occurred
Packit Service b23acc
 *   while starting the service providing the VPN connection.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED: Starting the service
Packit Service b23acc
 *   starting the service providing the VPN connection failed.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS: Necessary secrets for the VPN
Packit Service b23acc
 *   connection were not provided.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED: Authentication to the VPN
Packit Service b23acc
 *   server failed.
Packit Service b23acc
 * @NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED: The connection was
Packit Service b23acc
 *   deleted from settings.
Packit Service b23acc
 *
Packit Service b23acc
 * VPN connection state reasons
Packit Service b23acc
 */
Packit Service b23acc
NM_DEPRECATED_IN_1_8_FOR(NMActiveConnectionStateReason)
Packit Service b23acc
typedef enum {
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_UNKNOWN                  = NM_ACTIVE_CONNECTION_STATE_REASON_UNKNOWN,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_NONE                     = NM_ACTIVE_CONNECTION_STATE_REASON_NONE,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED        = NM_ACTIVE_CONNECTION_STATE_REASON_USER_DISCONNECTED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED      = NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED          = NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_STOPPED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID        = NM_ACTIVE_CONNECTION_STATE_REASON_IP_CONFIG_INVALID,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT          = NM_ACTIVE_CONNECTION_STATE_REASON_CONNECT_TIMEOUT,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT    = NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED     = NM_ACTIVE_CONNECTION_STATE_REASON_SERVICE_START_FAILED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS               = NM_ACTIVE_CONNECTION_STATE_REASON_NO_SECRETS,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED             = NM_ACTIVE_CONNECTION_STATE_REASON_LOGIN_FAILED,
Packit Service b23acc
	NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED       = NM_ACTIVE_CONNECTION_STATE_REASON_CONNECTION_REMOVED,
Packit Service b23acc
} NMVpnConnectionStateReason;
Packit Service b23acc
Packit Service b23acc
/**
Packit Service b23acc
 * NMVpnPluginFailure:
Packit Service b23acc
 * @NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED: Login failed.
Packit Service b23acc
 * @NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED: Connect failed.
Packit Service b23acc
 * @NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG: Invalid IP configuration returned from
Packit Service b23acc
 *   the VPN plugin.
Packit Service b23acc
 *
Packit Service b23acc
 * VPN plugin failure reasons
Packit Service b23acc
 */
Packit Service b23acc
typedef enum {
Packit Service b23acc
	NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED,
Packit Service b23acc
	NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED,
Packit Service b23acc
	NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG
Packit Service b23acc
} NMVpnPluginFailure;
Packit Service b23acc
Packit Service b23acc
#ifndef NM_VERSION_H
Packit Service b23acc
#undef NM_DEPRECATED_IN_1_8_FOR
Packit Service b23acc
#endif
Packit Service b23acc
Packit Service b23acc
/*** Generic config ***/
Packit Service b23acc
Packit Service b23acc
/* string: VPN interface name (tun0, tap0, etc) */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_TUNDEV      "tundev"
Packit Service b23acc
Packit Service b23acc
/* string: Proxy PAC */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_PROXY_PAC   "pac"
Packit Service b23acc
Packit Service b23acc
/* string: Login message */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_BANNER      "banner"
Packit Service b23acc
Packit Service b23acc
/* uint32 / array of uint8: IP address of the public external VPN gateway (network byte order) */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY "gateway"
Packit Service b23acc
Packit Service b23acc
/* uint32: Maximum Transfer Unit that the VPN interface should use */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_MTU         "mtu"
Packit Service b23acc
Packit Service b23acc
/* boolean: Has IP4 configuration? */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_HAS_IP4     "has-ip4"
Packit Service b23acc
Packit Service b23acc
/* boolean: Has IP6 configuration? */
Packit Service b23acc
#define NM_VPN_PLUGIN_CONFIG_HAS_IP6     "has-ip6"
Packit Service b23acc
Packit Service b23acc
/* boolean: If %TRUE the VPN plugin can persist/reconnect the connection over
Packit Service b23acc
 * link changes and VPN server dropouts.
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_CAN_PERSIST        "can-persist"
Packit Service b23acc
Packit Service b23acc
/*** Ip4Config ***/
Packit Service b23acc
Packit Service b23acc
/* uint32: IP address of the internal gateway of the subnet the VPN interface is
Packit Service b23acc
 *         on, if the VPN uses subnet configuration (network byte order)
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY "internal-gateway"
Packit Service b23acc
Packit Service b23acc
/* uint32: internal IP address of the local VPN interface (network byte order) */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS     "address"
Packit Service b23acc
Packit Service b23acc
/* uint32: IP address of the other side of Point-to-Point connection if the VPN
Packit Service b23acc
 *         uses Point-to-Point configuration. (network byte order)
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_PTP         "ptp"
Packit Service b23acc
Packit Service b23acc
/* uint32: IP prefix of the VPN interface; 1 - 32 inclusive */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_PREFIX      "prefix"
Packit Service b23acc
Packit Service b23acc
/* array of uint32: IP addresses of DNS servers for the VPN (network byte order) */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_DNS         "dns"
Packit Service b23acc
Packit Service b23acc
/* array of uint32: IP addresses of NBNS/WINS servers for the VPN (network byte order) */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_NBNS        "nbns"
Packit Service b23acc
Packit Service b23acc
/* uint32: Message Segment Size that the VPN interface should use */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_MSS         "mss"
Packit Service b23acc
Packit Service b23acc
/* string: DNS domain name */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN      "domain"
Packit Service b23acc
Packit Service b23acc
/* array of strings: DNS domain names */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS     "domains"
Packit Service b23acc
Packit Service b23acc
/* [ip4 routes]: custom routes the client should apply, in the format used
Packit Service b23acc
 *         by nm_utils_ip4_routes_to/from_gvalue
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_ROUTES      "routes"
Packit Service b23acc
Packit Service b23acc
/* whether the previous IP4 routing configuration should be preserved. */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_PRESERVE_ROUTES "preserve-routes"
Packit Service b23acc
Packit Service b23acc
/* boolean: prevent this VPN connection from ever getting the default route */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT "never-default"
Packit Service b23acc
Packit Service b23acc
/* Deprecated */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY   NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY
Packit Service b23acc
Packit Service b23acc
/* Legacy IP4 items; these are included in the IP4 config by older plugins,
Packit Service b23acc
 * but in the generic config by newer plugins.
Packit Service b23acc
 */
Packit Service b23acc
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_BANNER      NM_VPN_PLUGIN_CONFIG_BANNER
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_MTU         NM_VPN_PLUGIN_CONFIG_MTU
Packit Service b23acc
#define NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV      NM_VPN_PLUGIN_CONFIG_TUNDEV
Packit Service b23acc
Packit Service b23acc
/*** Ip6Config ***/
Packit Service b23acc
Packit Service b23acc
/* array of uint8: IP address of the internal gateway of the subnet the VPN interface is
Packit Service b23acc
 *         on, if the VPN uses subnet configuration (network byte order)
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY "internal-gateway"
Packit Service b23acc
Packit Service b23acc
/* array of uint8: internal IP address of the local VPN interface (network byte order) */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS     "address"
Packit Service b23acc
Packit Service b23acc
/* array of uint8: IP address of the other side of Point-to-Point connection if the VPN
Packit Service b23acc
 *         uses Point-to-Point configuration. (network byte order)
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_PTP         "ptp"
Packit Service b23acc
Packit Service b23acc
/* uint32: prefix length of the VPN interface; 1 - 128 inclusive */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_PREFIX      "prefix"
Packit Service b23acc
Packit Service b23acc
/* array of array of uint8: IP addresses of DNS servers for the VPN (network byte order) */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_DNS         "dns"
Packit Service b23acc
Packit Service b23acc
/* uint32: Message Segment Size that the VPN interface should use */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_MSS         "mss"
Packit Service b23acc
Packit Service b23acc
/* string: DNS domain name */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN      "domain"
Packit Service b23acc
Packit Service b23acc
/* array of strings: DNS domain names */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS     "domains"
Packit Service b23acc
Packit Service b23acc
/* [ip6 routes]: custom routes the client should apply, in the format used
Packit Service b23acc
 *         by nm_utils_ip6_routes_to/from_gvalue
Packit Service b23acc
 */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_ROUTES      "routes"
Packit Service b23acc
Packit Service b23acc
/* whether the previous IP6 routing configuration should be preserved. */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_PRESERVE_ROUTES "preserve-routes"
Packit Service b23acc
Packit Service b23acc
/* boolean: prevent this VPN connection from ever getting the default route */
Packit Service b23acc
#define NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT "never-default"
Packit Service b23acc
Packit Service b23acc
#endif /* __NM_VPN_DBUS_INTERFACE_H__ */