mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-08 10:08:05 +02:00
api: add two more device states (IP_CHECK and DEACTIVATING)
We'll use IP_CHECK for detecting whether we're behind a captive portal or on a network that does not have access to the Internet. We'll probably run some variety of plugins during this stage to help detect this, and possibly handle it for us (auto-login to captive portal for example). DEACTIVATING will be used for tearing down network shares or cleanly closing network sessions when we're able to clean up an activation. ie, "pre-down" for Debian.
This commit is contained in:
parent
915dd85d23
commit
7971227011
4 changed files with 72 additions and 76 deletions
|
|
@ -293,8 +293,12 @@ device_state_to_string (NMDeviceState state)
|
||||||
return _("connecting (need authentication)");
|
return _("connecting (need authentication)");
|
||||||
case NM_DEVICE_STATE_IP_CONFIG:
|
case NM_DEVICE_STATE_IP_CONFIG:
|
||||||
return _("connecting (getting IP configuration)");
|
return _("connecting (getting IP configuration)");
|
||||||
|
case NM_DEVICE_STATE_IP_CHECK:
|
||||||
|
return _("connecting (checking IP connectivity)");
|
||||||
case NM_DEVICE_STATE_ACTIVATED:
|
case NM_DEVICE_STATE_ACTIVATED:
|
||||||
return _("connected");
|
return _("connected");
|
||||||
|
case NM_DEVICE_STATE_DEACTIVATING:
|
||||||
|
return _("deactivating");
|
||||||
case NM_DEVICE_STATE_FAILED:
|
case NM_DEVICE_STATE_FAILED:
|
||||||
return _("connection failed");
|
return _("connection failed");
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -156,73 +156,53 @@ typedef enum {
|
||||||
} NMBluetoothCapabilities;
|
} NMBluetoothCapabilities;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Device states
|
* NMDeviceState:
|
||||||
*/
|
* @NM_DEVICE_STATE_UNKNOWN: the device's state is unknown
|
||||||
|
* @NM_DEVICE_STATE_UNMANAGED: the device is recognized, but not managed by
|
||||||
|
* NetworkManager
|
||||||
|
* @NM_DEVICE_STATE_UNAVAILABLE: the device is managed by NetworkManager, but
|
||||||
|
* is not available for use. Reasons may include the wireless switched off,
|
||||||
|
* missing firmware, no ethernet carrier, missing supplicant or modem manager,
|
||||||
|
* etc.
|
||||||
|
* @NM_DEVICE_STATE_DISCONNECTED: the device can be activated, but is currently
|
||||||
|
* idle and not connected to a network.
|
||||||
|
* @NM_DEVICE_STATE_PREPARE: the device is preparing the connection to the
|
||||||
|
* network. This may include operations like changing the MAC address,
|
||||||
|
* setting physical link properties, and anything else required to connect
|
||||||
|
* to the requested network.
|
||||||
|
* @NM_DEVICE_STATE_CONFIG: the device is connecting to the requested network.
|
||||||
|
* This may include operations like associating with the WiFi AP, dialing
|
||||||
|
* the modem, connecting to the remote Bluetooth device, etc.
|
||||||
|
* @NM_DEVICE_STATE_NEED_AUTH: the device requires more information to continue
|
||||||
|
* connecting to the requested network. This includes secrets like WiFi
|
||||||
|
* passphrases, login passwords, PIN codes, etc.
|
||||||
|
* @NM_DEVICE_STATE_IP_CONFIG: the device is requesting IPv4 and/or IPv6
|
||||||
|
* addresses and routing information from the network.
|
||||||
|
* @NM_DEVICE_STATE_IP_CHECK: the device is checking whether further action is
|
||||||
|
* required for the requested network connection. This may include checking
|
||||||
|
* whether only local network access is available, whether a captive portal
|
||||||
|
* is blocking access to the Internet, etc.
|
||||||
|
* @NM_DEVICE_STATE_ACTIVATED: the device has a network connection, either local
|
||||||
|
* or global.
|
||||||
|
* @NM_DEVICE_STATE_DEACTIVATING: the device's network connection is no longer
|
||||||
|
* valid and the device is tearing down resources used for the previous
|
||||||
|
* connection.
|
||||||
|
*
|
||||||
|
**/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NM_DEVICE_STATE_UNKNOWN = 0,
|
NM_DEVICE_STATE_UNKNOWN = 0,
|
||||||
|
NM_DEVICE_STATE_UNMANAGED = 10,
|
||||||
/* Initial state of all devices and the only state for devices not
|
NM_DEVICE_STATE_UNAVAILABLE = 20,
|
||||||
* managed by NetworkManager.
|
NM_DEVICE_STATE_DISCONNECTED = 30,
|
||||||
*
|
NM_DEVICE_STATE_PREPARE = 40,
|
||||||
* Allowed next states:
|
NM_DEVICE_STATE_CONFIG = 50,
|
||||||
* UNAVAILABLE: the device is now managed by NetworkManager
|
NM_DEVICE_STATE_NEED_AUTH = 60,
|
||||||
*/
|
NM_DEVICE_STATE_IP_CONFIG = 70,
|
||||||
NM_DEVICE_STATE_UNMANAGED = 1,
|
NM_DEVICE_STATE_IP_CHECK = 80,
|
||||||
|
NM_DEVICE_STATE_ACTIVATED = 90,
|
||||||
/* Indicates the device is not yet ready for use, but is managed by
|
NM_DEVICE_STATE_DEACTIVATING = 100,
|
||||||
* NetworkManager. For Ethernet devices, the device may not have an
|
NM_DEVICE_STATE_FAILED = 110
|
||||||
* 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;
|
} NMDeviceState;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,47 +104,57 @@
|
||||||
The device is in an unknown state.
|
The device is in an unknown state.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="UNMANAGED" value="1">
|
<tp:enumvalue suffix="UNMANAGED" value="10">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is not managed by NetworkManager.
|
The device is recognized but not managed by NetworkManager.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="UNAVAILABLE" value="2">
|
<tp:enumvalue suffix="UNAVAILABLE" value="20">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device cannot be used (carrier off, rfkill, etc).
|
The device cannot be used (carrier off, rfkill, etc).
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="DISCONNECTED" value="3">
|
<tp:enumvalue suffix="DISCONNECTED" value="30">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is not connected.
|
The device is not connected.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="PREPARE" value="4">
|
<tp:enumvalue suffix="PREPARE" value="40">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is preparing to connect.
|
The device is preparing to connect.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="CONFIG" value="5">
|
<tp:enumvalue suffix="CONFIG" value="50">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is being configured.
|
The device is being configured.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="NEED_AUTH" value="6">
|
<tp:enumvalue suffix="NEED_AUTH" value="60">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is awaiting secrets necessary to continue connection.
|
The device is awaiting secrets necessary to continue connection.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="IP_CONFIG" value="7">
|
<tp:enumvalue suffix="IP_CONFIG" value="70">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The IP settings of the device are being requested and configured.
|
The IP settings of the device are being requested and configured.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="ACTIVATED" value="8">
|
<tp:enumvalue suffix="IP_CHECK" value="80">
|
||||||
|
<tp:docstring>
|
||||||
|
The device's IP connectivity ability is being determined.
|
||||||
|
</tp:docstring>
|
||||||
|
</tp:enumvalue>
|
||||||
|
<tp:enumvalue suffix="ACTIVATED" value="90">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is active.
|
The device is active.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
</tp:enumvalue>
|
</tp:enumvalue>
|
||||||
<tp:enumvalue suffix="FAILED" value="9">
|
<tp:enumvalue suffix="DEACTIVATING" value="100">
|
||||||
|
<tp:docstring>
|
||||||
|
The device's network connection is being torn down.
|
||||||
|
</tp:docstring>
|
||||||
|
</tp:enumvalue>
|
||||||
|
<tp:enumvalue suffix="FAILED" value="110">
|
||||||
<tp:docstring>
|
<tp:docstring>
|
||||||
The device is in a failure state following an attempt to activate it.
|
The device is in a failure state following an attempt to activate it.
|
||||||
</tp:docstring>
|
</tp:docstring>
|
||||||
|
|
|
||||||
|
|
@ -1920,6 +1920,8 @@ scanning_allowed (NMDeviceWifi *self)
|
||||||
case NM_DEVICE_STATE_CONFIG:
|
case NM_DEVICE_STATE_CONFIG:
|
||||||
case NM_DEVICE_STATE_NEED_AUTH:
|
case NM_DEVICE_STATE_NEED_AUTH:
|
||||||
case NM_DEVICE_STATE_IP_CONFIG:
|
case NM_DEVICE_STATE_IP_CONFIG:
|
||||||
|
case NM_DEVICE_STATE_IP_CHECK:
|
||||||
|
case NM_DEVICE_STATE_DEACTIVATING:
|
||||||
/* Don't scan when unusable or activating */
|
/* Don't scan when unusable or activating */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
case NM_DEVICE_STATE_DISCONNECTED:
|
case NM_DEVICE_STATE_DISCONNECTED:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue