platform: workaround kernel bug about missing IFLA_LINK/parent when creating veth
The related bug rh#1285827 in kernel causes a missing IFLA_LINK/parent attribute when creating a veth pair: # ip monitor link & [1] 6745 # ip link add dev vm1 type veth peer name vm2 30: vm2@NONE: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN link/ether be:e3:b7:0e:14:52 brd ff:ff:ff:ff:ff:ff 31: vm1@vm2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN link/ether da:e6:a6:c5:42:54 brd ff:ff:ff:ff:ff:ff Add a workaround and test. Related: https://bugzilla.redhat.com/show_bug.cgi?id=1285827
This commit is contained in:
@@ -2802,6 +2802,15 @@ cache_pre_hook (NMPCache *cache, const NMPObject *old, const NMPObject *new, NMP
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( new->link.type == NM_LINK_TYPE_VETH
|
||||
&& new->link.parent == 0) {
|
||||
/* the initial notification when adding a veth pair can lack the parent/IFLA_LINK
|
||||
* (https://bugzilla.redhat.com/show_bug.cgi?id=1285827).
|
||||
* Request it again. */
|
||||
delayed_action_schedule (platform,
|
||||
DELAYED_ACTION_TYPE_REFRESH_LINK,
|
||||
GINT_TO_POINTER (new->link.ifindex));
|
||||
}
|
||||
}
|
||||
{
|
||||
/* on enslave/release, we also refresh the master. */
|
||||
|
Reference in New Issue
Block a user