diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index c3cff1a77b..1b6e2faf10 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -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; } diff --git a/src/libnm-core-public/nm-dbus-interface.h b/src/libnm-core-public/nm-dbus-interface.h index f5842c5fc7..ac6a5411ce 100644 --- a/src/libnm-core-public/nm-dbus-interface.h +++ b/src/libnm-core-public/nm-dbus-interface.h @@ -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; /**