mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-10 11:40:18 +01:00
core: merge branch 'th/device-manage-conf'
https://github.com/NetworkManager/NetworkManager/pull/29
This commit is contained in:
commit
a47c48fd84
4 changed files with 66 additions and 6 deletions
|
|
@ -821,7 +821,7 @@ ipv6.ip6-privacy=1
|
|||
<programlisting>
|
||||
[device]
|
||||
match-device=interface-name:eth3
|
||||
unmanaged=1
|
||||
managed=1
|
||||
</programlisting>
|
||||
</para>
|
||||
<refsect2>
|
||||
|
|
@ -829,6 +829,19 @@ unmanaged=1
|
|||
<para>
|
||||
The following properties can be configured per-device.
|
||||
<variablelist>
|
||||
<varlistentry id="managed">
|
||||
<term><varname>managed</varname></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Whether the device is managed or not. A device can be
|
||||
marked as managed via udev rules (ENV{NM_UNMANAGED}),
|
||||
or via setting plugins (keyfile.unmanaged-devices).
|
||||
This is yet another way. Note that this configuration
|
||||
can be overruled at runtime via D-Bus. Also, it has
|
||||
higher priority then udev rules.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry id="ignore-carrier">
|
||||
<term><varname>ignore-carrier</varname></term>
|
||||
<listitem>
|
||||
|
|
|
|||
|
|
@ -2671,6 +2671,7 @@ device_link_changed (NMDevice *self)
|
|||
NMDeviceStateReason reason;
|
||||
|
||||
nm_device_set_unmanaged_by_user_udev (self);
|
||||
nm_device_set_unmanaged_by_user_conf (self);
|
||||
|
||||
reason = NM_DEVICE_STATE_REASON_NOW_MANAGED;
|
||||
|
||||
|
|
@ -3309,6 +3310,7 @@ realize_start_setup (NMDevice *self,
|
|||
nm_device_set_unmanaged_flags (self, NM_UNMANAGED_LOOPBACK, priv->ifindex == 1);
|
||||
|
||||
nm_device_set_unmanaged_by_user_udev (self);
|
||||
nm_device_set_unmanaged_by_user_conf (self);
|
||||
|
||||
nm_device_set_unmanaged_flags (self, NM_UNMANAGED_PLATFORM_INIT,
|
||||
plink && !plink->initialized);
|
||||
|
|
@ -11191,6 +11193,7 @@ NM_UTILS_FLAGS2STR_DEFINE (nm_unmanaged_flags2str, NMUnmanagedFlags,
|
|||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_USER_EXPLICIT, "user-explicit"),
|
||||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_BY_DEFAULT, "by-default"),
|
||||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_USER_SETTINGS, "user-settings"),
|
||||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_USER_CONF, "user-conf"),
|
||||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_USER_UDEV, "user-udev"),
|
||||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_EXTERNAL_DOWN, "external-down"),
|
||||
NM_UTILS_FLAGS2STR (NM_UNMANAGED_IS_SLAVE, "is-slave"),
|
||||
|
|
@ -11283,11 +11286,19 @@ _get_managed_by_flags(NMUnmanagedFlags flags, NMUnmanagedFlags mask, gboolean fo
|
|||
|
||||
if (NM_FLAGS_ANY (mask, NM_UNMANAGED_USER_UDEV)) {
|
||||
/* configuration from udev or nm-config overwrites the by-default flag
|
||||
* which is based on the device type. */
|
||||
flags &= ~NM_UNMANAGED_BY_DEFAULT;
|
||||
* which is based on the device type.
|
||||
* configuration from udev overwrites external-down */
|
||||
flags &= ~( NM_UNMANAGED_BY_DEFAULT
|
||||
| NM_UNMANAGED_EXTERNAL_DOWN);
|
||||
}
|
||||
|
||||
/* configuration from udev overwrites external-down */
|
||||
flags &= ~NM_UNMANAGED_EXTERNAL_DOWN;
|
||||
if (NM_FLAGS_ANY (mask, NM_UNMANAGED_USER_CONF)) {
|
||||
/* configuration from NetworkManager.conf overwrites the by-default flag
|
||||
* which is based on the device type.
|
||||
* It also overwrites the udev configuration and external-down */
|
||||
flags &= ~( NM_UNMANAGED_BY_DEFAULT
|
||||
|| NM_UNMANAGED_USER_UDEV
|
||||
|| NM_UNMANAGED_EXTERNAL_DOWN);
|
||||
}
|
||||
|
||||
if ( NM_FLAGS_HAS (mask, NM_UNMANAGED_IS_SLAVE)
|
||||
|
|
@ -11299,9 +11310,9 @@ _get_managed_by_flags(NMUnmanagedFlags flags, NMUnmanagedFlags mask, gboolean fo
|
|||
if (NM_FLAGS_HAS (mask, NM_UNMANAGED_USER_EXPLICIT)) {
|
||||
/* if the device is managed by user-decision, certain other flags
|
||||
* are ignored. */
|
||||
|
||||
flags &= ~( NM_UNMANAGED_BY_DEFAULT
|
||||
| NM_UNMANAGED_USER_UDEV
|
||||
| NM_UNMANAGED_USER_CONF
|
||||
| NM_UNMANAGED_EXTERNAL_DOWN);
|
||||
}
|
||||
|
||||
|
|
@ -11607,6 +11618,35 @@ nm_device_set_unmanaged_by_user_udev (NMDevice *self)
|
|||
NM_DEVICE_STATE_REASON_USER_REQUESTED);
|
||||
}
|
||||
|
||||
void
|
||||
nm_device_set_unmanaged_by_user_conf (NMDevice *self)
|
||||
{
|
||||
gboolean value;
|
||||
NMUnmanFlagOp set_op;
|
||||
|
||||
value = nm_config_data_get_device_config_boolean (NM_CONFIG_GET_DATA,
|
||||
NM_CONFIG_KEYFILE_KEY_DEVICE_MANAGED,
|
||||
self,
|
||||
-1,
|
||||
TRUE);
|
||||
switch (value) {
|
||||
case TRUE:
|
||||
set_op = NM_UNMAN_FLAG_OP_SET_MANAGED;
|
||||
break;
|
||||
case FALSE:
|
||||
set_op = NM_UNMAN_FLAG_OP_SET_UNMANAGED;
|
||||
break;
|
||||
default:
|
||||
set_op = NM_UNMAN_FLAG_OP_FORGET;
|
||||
break;
|
||||
}
|
||||
|
||||
nm_device_set_unmanaged_by_flags (self,
|
||||
NM_UNMANAGED_USER_CONF,
|
||||
set_op,
|
||||
NM_DEVICE_STATE_REASON_USER_REQUESTED);
|
||||
}
|
||||
|
||||
void
|
||||
nm_device_set_unmanaged_by_quitting (NMDevice *self)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -580,6 +580,10 @@ void nm_device_copy_ip6_dns_config (NMDevice *self, NMDevice *from_device);
|
|||
* the settings plugins, such as NM_CONTROLLED=no in ifcfg-rh), it cannot
|
||||
* be overruled and is authorative. That is because users may depend on
|
||||
* dropping a ifcfg-rh file to ensure the device is unmanaged.
|
||||
* @NM_UNMANAGED_USER_CONF: %TRUE when unmanaged by user decision via
|
||||
* the NetworkManager.conf ("unmanaged" in the [device] section).
|
||||
* Contray to @NM_UNMANAGED_USER_SETTINGS, this can be overwritten via
|
||||
* D-Bus.
|
||||
* @NM_UNMANAGED_BY_DEFAULT: %TRUE for certain device types where we unmanage
|
||||
* them by default
|
||||
* @NM_UNMANAGED_USER_UDEV: %TRUE when unmanaged by user decision (via UDev rule)
|
||||
|
|
@ -604,6 +608,7 @@ typedef enum { /*< skip >*/
|
|||
/* These flags can be non-effective and be overwritten
|
||||
* by other flags. */
|
||||
NM_UNMANAGED_BY_DEFAULT = (1LL << 8),
|
||||
NM_UNMANAGED_USER_CONF = (1LL << 9),
|
||||
NM_UNMANAGED_USER_UDEV = (1LL << 10),
|
||||
NM_UNMANAGED_EXTERNAL_DOWN = (1LL << 11),
|
||||
NM_UNMANAGED_IS_SLAVE = (1LL << 12),
|
||||
|
|
@ -634,6 +639,7 @@ void nm_device_set_unmanaged_by_flags_queue (NMDevice *self,
|
|||
NMDeviceStateReason reason);
|
||||
void nm_device_set_unmanaged_by_user_settings (NMDevice *self);
|
||||
void nm_device_set_unmanaged_by_user_udev (NMDevice *self);
|
||||
void nm_device_set_unmanaged_by_user_conf (NMDevice *self);
|
||||
void nm_device_set_unmanaged_by_quitting (NMDevice *device);
|
||||
|
||||
gboolean nm_device_is_nm_owned (NMDevice *device);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@
|
|||
#define NM_CONFIG_KEYFILE_KEY_IFUPDOWN_MANAGED "managed"
|
||||
#define NM_CONFIG_KEYFILE_KEY_AUDIT "audit"
|
||||
|
||||
#define NM_CONFIG_KEYFILE_KEY_DEVICE_MANAGED "managed"
|
||||
#define NM_CONFIG_KEYFILE_KEY_DEVICE_IGNORE_CARRIER "ignore-carrier"
|
||||
#define NM_CONFIG_KEYFILE_KEY_DEVICE_SRIOV_NUM_VFS "sriov-num-vfs"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue