dbus: add a SET_ADMIN_STATE flag to SetManaged()

This flag will make that, at the same time that the device is moved to
managed/unmanaged, it's admin state is set to up/down. Many users want
to have a way to have their devices in a DOWN admin state when they are
not using them. Because of the complex activation process, NM wants to
have its devices in UP state all the time. However, it is not a problem
to have it DOWN if we are not managing it.
This commit is contained in:
Íñigo Huguet 2026-02-13 15:41:27 +01:00 committed by Rahul Rajesh
parent 32ee7c0f41
commit 2fb76ed126
2 changed files with 12 additions and 4 deletions

View file

@ -15010,6 +15010,13 @@ set_managed(NMDevice *self, gboolean managed, NMDeviceManagedFlags flags, GError
if (managed_old != managed)
_notify(self, PROP_MANAGED);
if (flags & NM_DEVICE_MANAGED_FLAGS_SET_ADMIN_STATE) {
nm_platform_link_change_flags(nm_device_get_platform(self),
nm_device_get_ifindex(self),
IFF_UP,
managed);
}
return TRUE;
}

View file

@ -1265,10 +1265,11 @@ typedef enum /*< flags >*/ {
* Since: 1.58
*/
typedef enum /*< flags >*/ {
NM_DEVICE_MANAGED_FLAGS_NONE = 0,
NM_DEVICE_MANAGED_FLAGS_TO_DISK = 0x1,
NM_DEVICE_MANAGED_FLAGS_BY_MAC = 0x2,
NM_DEVICE_MANAGED_FLAGS_CLEAR_DISK = 0x4,
NM_DEVICE_MANAGED_FLAGS_NONE = 0,
NM_DEVICE_MANAGED_FLAGS_TO_DISK = 0x1,
NM_DEVICE_MANAGED_FLAGS_BY_MAC = 0x2,
NM_DEVICE_MANAGED_FLAGS_CLEAR_DISK = 0x4,
NM_DEVICE_MANAGED_FLAGS_SET_ADMIN_STATE = 0x8,
} NMDeviceManagedFlags;
/**