about summary refs log tree commit diff
path: root/include/NetworkManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/NetworkManager.h')
-rw-r--r--include/NetworkManager.h391
1 files changed, 391 insertions, 0 deletions
diff --git a/include/NetworkManager.h b/include/NetworkManager.h
new file mode 100644
index 00000000..9df444f2
--- /dev/null
+++ b/include/NetworkManager.h
@@ -0,0 +1,391 @@
+/* NetworkManager -- Network link manager
+ *
+ * Dan Williams <dcbw@redhat.com>
+ *
+ * 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 General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * (C) Copyright 2004 - 2008 Red Hat, Inc.
+ */
+
+#ifndef NETWORK_MANAGER_H
+#define NETWORK_MANAGER_H
+
+/*
+ * dbus services details
+ */
+#define	NM_DBUS_SERVICE                     "org.freedesktop.NetworkManager"
+
+#define	NM_DBUS_PATH                        "/org/freedesktop/NetworkManager"
+#define	NM_DBUS_INTERFACE                   "org.freedesktop.NetworkManager"
+#define	NM_DBUS_INTERFACE_DEVICE            NM_DBUS_INTERFACE ".Device"
+#define NM_DBUS_INTERFACE_DEVICE_WIRED      NM_DBUS_INTERFACE_DEVICE ".Wired"
+#define NM_DBUS_INTERFACE_DEVICE_WIRELESS   NM_DBUS_INTERFACE_DEVICE ".Wireless"
+#define NM_DBUS_INTERFACE_DEVICE_BLUETOOTH  NM_DBUS_INTERFACE_DEVICE ".Bluetooth"
+#define NM_DBUS_PATH_ACCESS_POINT           NM_DBUS_PATH "/AccessPoint"
+#define NM_DBUS_INTERFACE_ACCESS_POINT      NM_DBUS_INTERFACE ".AccessPoint"
+#define NM_DBUS_INTERFACE_SERIAL_DEVICE     NM_DBUS_INTERFACE_DEVICE ".Serial"
+#define NM_DBUS_INTERFACE_GSM_DEVICE        NM_DBUS_INTERFACE_DEVICE ".Gsm"
+#define NM_DBUS_INTERFACE_CDMA_DEVICE       NM_DBUS_INTERFACE_DEVICE ".Cdma"
+#define NM_DBUS_INTERFACE_ACTIVE_CONNECTION NM_DBUS_INTERFACE ".Connection.Active"
+#define NM_DBUS_INTERFACE_IP4_CONFIG        NM_DBUS_INTERFACE ".IP4Config"
+#define NM_DBUS_INTERFACE_DHCP4_CONFIG      NM_DBUS_INTERFACE ".DHCP4Config"
+#define NM_DBUS_INTERFACE_IP6_CONFIG        NM_DBUS_INTERFACE ".IP6Config"
+#define NM_DBUS_INTERFACE_DHCP6_CONFIG      NM_DBUS_INTERFACE ".DHCP6Config"
+
+
+#define NM_DBUS_SERVICE_USER_SETTINGS     "org.freedesktop.NetworkManagerUserSettings"
+#define NM_DBUS_SERVICE_SYSTEM_SETTINGS   "org.freedesktop.NetworkManagerSystemSettings"
+#define NM_DBUS_IFACE_SETTINGS            "org.freedesktop.NetworkManagerSettings"
+#define NM_DBUS_IFACE_SETTINGS_SYSTEM     "org.freedesktop.NetworkManagerSettings.System"
+#define NM_DBUS_PATH_SETTINGS             "/org/freedesktop/NetworkManagerSettings"
+
+#define NM_DBUS_IFACE_SETTINGS_CONNECTION "org.freedesktop.NetworkManagerSettings.Connection"
+#define NM_DBUS_PATH_SETTINGS_CONNECTION  "/org/freedesktop/NetworkManagerSettings/Connection"
+#define NM_DBUS_IFACE_SETTINGS_CONNECTION_SECRETS "org.freedesktop.NetworkManagerSettings.Connection.Secrets"
+
+
+/*
+ * Types of NetworkManager states
+ */
+typedef enum NMState
+{
+	NM_STATE_UNKNOWN = 0,
+	NM_STATE_ASLEEP,
+	NM_STATE_CONNECTING,
+	NM_STATE_CONNECTED,
+	NM_STATE_DISCONNECTED
+} NMState;
+
+
+/*
+ * Types of NetworkManager devices
+ */
+typedef enum NMDeviceType
+{
+	NM_DEVICE_TYPE_UNKNOWN = 0,
+	NM_DEVICE_TYPE_ETHERNET,
+	NM_DEVICE_TYPE_WIFI,
+	NM_DEVICE_TYPE_GSM,
+	NM_DEVICE_TYPE_CDMA,
+	NM_DEVICE_TYPE_BT,  /* Bluetooth */
+	NM_DEVICE_TYPE_OLPC_MESH
+} NMDeviceType;
+
+/* DEPRECATED TYPE NAMES */
+#define DEVICE_TYPE_UNKNOWN          NM_DEVICE_TYPE_UNKNOWN
+#define DEVICE_TYPE_802_3_ETHERNET   NM_DEVICE_TYPE_ETHERNET
+#define DEVICE_TYPE_802_11_WIRELESS  NM_DEVICE_TYPE_WIFI
+#define DEVICE_TYPE_GSM              NM_DEVICE_TYPE_GSM
+#define DEVICE_TYPE_CDMA             NM_DEVICE_TYPE_CDMA
+
+
+/*
+ * General device capability bits
+ *
+ */
+#define NM_DEVICE_CAP_NONE               0x00000000
+#define NM_DEVICE_CAP_NM_SUPPORTED       0x00000001
+#define NM_DEVICE_CAP_CARRIER_DETECT     0x00000002
+
+
+/* 802.11 wireless device-specific capabilities */
+#define NM_WIFI_DEVICE_CAP_NONE          0x00000000
+#define NM_WIFI_DEVICE_CAP_CIPHER_WEP40  0x00000001
+#define NM_WIFI_DEVICE_CAP_CIPHER_WEP104 0x00000002
+#define NM_WIFI_DEVICE_CAP_CIPHER_TKIP   0x00000004
+#define NM_WIFI_DEVICE_CAP_CIPHER_CCMP   0x00000008
+#define NM_WIFI_DEVICE_CAP_WPA           0x00000010
+#define NM_WIFI_DEVICE_CAP_RSN           0x00000020
+
+
+/*
+ * 802.11 Access Point flags
+ *
+ */
+#define NM_802_11_AP_FLAGS_NONE          0x00000000
+#define NM_802_11_AP_FLAGS_PRIVACY       0x00000001
+
+/*
+ * 802.11 Access Point security flags
+ *
+ * These describe the current security requirements of the BSSID as extracted
+ * from various pieces of beacon information, like beacon flags and various
+ * information elements.
+ */
+#define NM_802_11_AP_SEC_NONE            0x00000000
+#define NM_802_11_AP_SEC_PAIR_WEP40      0x00000001
+#define NM_802_11_AP_SEC_PAIR_WEP104     0x00000002
+#define NM_802_11_AP_SEC_PAIR_TKIP       0x00000004
+#define NM_802_11_AP_SEC_PAIR_CCMP       0x00000008
+#define NM_802_11_AP_SEC_GROUP_WEP40     0x00000010
+#define NM_802_11_AP_SEC_GROUP_WEP104    0x00000020
+#define NM_802_11_AP_SEC_GROUP_TKIP      0x00000040
+#define NM_802_11_AP_SEC_GROUP_CCMP      0x00000080
+#define NM_802_11_AP_SEC_KEY_MGMT_PSK    0x00000100
+#define NM_802_11_AP_SEC_KEY_MGMT_802_1X 0x00000200
+
+/*
+ * 802.11 AP and Station modes
+ *
+ */
+typedef enum {
+	NM_802_11_MODE_UNKNOWN = 0,
+	NM_802_11_MODE_ADHOC,
+	NM_802_11_MODE_INFRA
+} NM80211Mode;
+
+/**
+ * NMBluetoothCapabilities:
+ * @NM_BT_CAPABILITY_NONE: device has no usable capabilities
+ * @NM_BT_CAPABILITY_DUN: device provides Dial-Up Networking capability
+ * @NM_BT_CAPABILITY_PAN: device provides Personal Area Networking capability
+ *
+ * #NMBluetoothCapabilities values indicate the usable capabilities of a
+ * Bluetooth device.
+ */
+typedef enum {
+	NM_BT_CAPABILITY_NONE = 0x00000000,
+	NM_BT_CAPABILITY_DUN  = 0x00000001,
+	NM_BT_CAPABILITY_NAP  = 0x00000002,
+} NMBluetoothCapabilities;
+
+
+/*
+ * Device states
+ */
+typedef enum
+{
+	NM_DEVICE_STATE_UNKNOWN = 0,
+
+	/* Initial state of all devices and the only state for devices not
+	 * managed by NetworkManager.
+	 *
+	 * Allowed next states:
+	 *   UNAVAILABLE:  the device is now managed by NetworkManager
+	 */
+	NM_DEVICE_STATE_UNMANAGED = 1,
+
+	/* Indicates the device is not yet ready for use, but is managed by
+	 * NetworkManager.  For Ethernet devices, the device may not have an
+	 * active carrier.  For WiFi devices, the device may not have it's radio
+	 * enabled.
+	 *
+	 * Allowed next states:
+	 *   UNMANAGED:  the device is no longer managed by NetworkManager
+	 *   DISCONNECTED:  the device is now ready for use
+	 */
+	NM_DEVICE_STATE_UNAVAILABLE = 2,
+
+	/* Indicates the device does not have an activate connection to anything.
+	 *
+	 * Allowed next states:
+	 *   UNMANAGED:  the device is no longer managed by NetworkManager
+	 *   UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
+	 *   PREPARE:  the device has started activation
+	 */
+	NM_DEVICE_STATE_DISCONNECTED = 3,
+
+	/* Indicate states in device activation.
+	 *
+	 * Allowed next states:
+	 *   UNMANAGED:  the device is no longer managed by NetworkManager
+	 *   UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
+	 *   FAILED:  an error ocurred during activation
+	 *   NEED_AUTH:  authentication/secrets are needed
+	 *   ACTIVATED:  (IP_CONFIG only) activation was successful
+	 *   DISCONNECTED:  the device's connection is no longer valid, or NetworkManager went to sleep
+	 */
+	NM_DEVICE_STATE_PREPARE = 4,
+	NM_DEVICE_STATE_CONFIG = 5,
+	NM_DEVICE_STATE_NEED_AUTH = 6,
+	NM_DEVICE_STATE_IP_CONFIG = 7,
+
+	/* Indicates the device is part of an active network connection.
+	 *
+	 * Allowed next states:
+	 *   UNMANAGED:  the device is no longer managed by NetworkManager
+	 *   UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
+	 *   FAILED:  a DHCP lease was not renewed, or another error
+	 *   DISCONNECTED:  the device's connection is no longer valid, or NetworkManager went to sleep
+	 */
+	NM_DEVICE_STATE_ACTIVATED = 8,
+
+	/* Indicates the device's activation failed.
+	 *
+	 * Allowed next states:
+	 *   UNMANAGED:  the device is no longer managed by NetworkManager
+	 *   UNAVAILABLE:  the device is no longer ready for use (rfkill, no carrier, etc)
+	 *   DISCONNECTED:  the device's connection is ready for activation, or NetworkManager went to sleep
+	 */
+	NM_DEVICE_STATE_FAILED = 9
+} NMDeviceState;
+
+
+/*
+ * Device state change reason codes
+ */
+typedef enum {
+	/* No reason given */
+	NM_DEVICE_STATE_REASON_NONE = 0,
+
+	/* Unknown error */
+	NM_DEVICE_STATE_REASON_UNKNOWN = 1,
+
+	/* Device is now managed */
+	NM_DEVICE_STATE_REASON_NOW_MANAGED = 2,
+
+	/* Device is now managed unmanaged */
+	NM_DEVICE_STATE_REASON_NOW_UNMANAGED = 3,
+
+	/* The device could not be readied for configuration */
+	NM_DEVICE_STATE_REASON_CONFIG_FAILED = 4,
+
+	/* IP configuration could not be reserved (no available address, timeout, etc) */
+	NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE = 5,
+
+	/* The IP config is no longer valid */
+	NM_DEVICE_STATE_REASON_IP_CONFIG_EXPIRED = 6,
+
+	/* Secrets were required, but not provided */
+	NM_DEVICE_STATE_REASON_NO_SECRETS = 7,
+
+	/* 802.1x supplicant disconnected */
+	NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT = 8,
+
+	/* 802.1x supplicant configuration failed */
+	NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED = 9,
+
+	/* 802.1x supplicant failed */
+	NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED = 10,
+
+	/* 802.1x supplicant took too long to authenticate */
+	NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT = 11,
+
+	/* PPP service failed to start */
+	NM_DEVICE_STATE_REASON_PPP_START_FAILED = 12,
+
+	/* PPP service disconnected */
+	NM_DEVICE_STATE_REASON_PPP_DISCONNECT = 13,
+
+	/* PPP failed */
+	NM_DEVICE_STATE_REASON_PPP_FAILED = 14,
+
+	/* DHCP client failed to start */
+	NM_DEVICE_STATE_REASON_DHCP_START_FAILED = 15,
+
+	/* DHCP client error */
+	NM_DEVICE_STATE_REASON_DHCP_ERROR = 16,
+
+	/* DHCP client failed */
+	NM_DEVICE_STATE_REASON_DHCP_FAILED = 17,
+
+	/* Shared connection service failed to start */
+	NM_DEVICE_STATE_REASON_SHARED_START_FAILED = 18,
+
+	/* Shared connection service failed */
+	NM_DEVICE_STATE_REASON_SHARED_FAILED = 19,
+
+	/* AutoIP service failed to start */
+	NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED = 20,
+
+	/* AutoIP service error */
+	NM_DEVICE_STATE_REASON_AUTOIP_ERROR = 21,
+
+	/* AutoIP service failed */
+	NM_DEVICE_STATE_REASON_AUTOIP_FAILED = 22,
+
+	/* The line is busy */
+	NM_DEVICE_STATE_REASON_MODEM_BUSY = 23,
+
+	/* No dial tone */
+	NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE = 24,
+
+	/* No carrier could be established */
+	NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER = 25,
+
+	/* The dialing request timed out */
+	NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT = 26,
+
+	/* The dialing attempt failed */
+	NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED = 27,
+
+	/* Modem initialization failed */
+	NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED = 28,
+
+	/* Failed to select the specified APN */
+	NM_DEVICE_STATE_REASON_GSM_APN_FAILED = 29,
+
+	/* Not searching for networks */
+	NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING = 30,
+
+	/* Network registration denied */
+	NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED = 31,
+
+	/* Network registration timed out */
+	NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT = 32,
+
+	/* Failed to register with the requested network */
+	NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED = 33,
+
+	/* PIN check failed */
+	NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED = 34,
+
+	/* Necessary firmware for the device may be missing */
+	NM_DEVICE_STATE_REASON_FIRMWARE_MISSING = 35,
+
+	/* The device was removed */
+	NM_DEVICE_STATE_REASON_REMOVED = 36,
+
+	/* NetworkManager went to sleep */
+	NM_DEVICE_STATE_REASON_SLEEPING = 37,
+
+	/* The device's active connection disappeared */
+	NM_DEVICE_STATE_REASON_CONNECTION_REMOVED = 38,
+
+	/* Device disconnected by user or client */
+	NM_DEVICE_STATE_REASON_USER_REQUESTED = 39,
+
+	/* Carrier/link changed */
+	NM_DEVICE_STATE_REASON_CARRIER = 40,
+
+	/* The device's existing connection was assumed */
+	NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED = 41,
+
+	/* The supplicant is now available */
+	NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE = 42,
+
+	/* The modem could not be found */
+	NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND = 43,
+
+	/* The Bluetooth connection failed or timed out */
+	NM_DEVICE_STATE_REASON_BT_FAILED = 44,
+
+	/* Unused */
+	NM_DEVICE_STATE_REASON_LAST = 0xFFFF
+} NMDeviceStateReason;
+
+
+typedef enum {
+	NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0,
+
+	/* Indicates the connection is activating */
+	NM_ACTIVE_CONNECTION_STATE_ACTIVATING,
+
+	/* Indicates the connection is currently active */
+	NM_ACTIVE_CONNECTION_STATE_ACTIVATED
+} NMActiveConnectionState;
+
+#endif /* NETWORK_MANAGER_H */
+