mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-06 23:40:16 +01:00
bridge/bond/team: device availability shouldn't depend on IFF_UP (bgo #746918)
The merge of lr/udev-unmanaged-fd731014 made all devices wait until
udev found them, but that makes these three device types fail activate
when created by NM itself.
Since their availability depended on IFF_UP, they could not be
activated (eg, 'nmcli con up team0') until they were IFF_UP. But
when they are created by NM, although NM knows the ifindex the
platform ignores the interface until udev finds it. Thus immediately
after creating the interface in _internal_activate_device() it
won't be known to the platform, so the nm_device_is_available()
check that controls whether the device moves to DISCONNECTED
will fail. This prevents any activation and emits the message:
"Connection 'foo' is not available on the device %s at this time."
because the device is still in the UNAVAILABLE state.
danw asked why we care about IFF_UP for these devices, and I can't
remember why, and I don't think it makes sense to require now.
https://bugzilla.gnome.org/show_bug.cgi?id=746918
(cherry picked from commit 568a8d1da9)
This commit is contained in:
parent
2d4bd3818f
commit
cf6cd7f28e
3 changed files with 3 additions and 9 deletions
|
|
@ -70,9 +70,7 @@ get_generic_capabilities (NMDevice *dev)
|
|||
static gboolean
|
||||
is_available (NMDevice *dev, NMDeviceCheckDevAvailableFlags flags)
|
||||
{
|
||||
if (NM_DEVICE_GET_CLASS (dev)->is_up)
|
||||
return NM_DEVICE_GET_CLASS (dev)->is_up (dev);
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
|
|||
|
|
@ -68,9 +68,7 @@ get_generic_capabilities (NMDevice *dev)
|
|||
static gboolean
|
||||
is_available (NMDevice *dev, NMDeviceCheckDevAvailableFlags flags)
|
||||
{
|
||||
if (NM_DEVICE_GET_CLASS (dev)->is_up)
|
||||
return NM_DEVICE_GET_CLASS (dev)->is_up (dev);
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
|
|||
|
|
@ -79,9 +79,7 @@ get_generic_capabilities (NMDevice *device)
|
|||
static gboolean
|
||||
is_available (NMDevice *device, NMDeviceCheckDevAvailableFlags flags)
|
||||
{
|
||||
if (NM_DEVICE_GET_CLASS (device)->is_up)
|
||||
return NM_DEVICE_GET_CLASS (device)->is_up (device);
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue