From d988ce0ccf6dbdbc0f9e4cd9783235cbd13993f8 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Mon, 17 Aug 2015 08:51:46 +0200 Subject: [PATCH] netlink: workaround veth being peered together through IFLA_LINK This is a change introduced in Linux 4.1. It's easy to detect, so, workaround it. See: commit a45253bf32bf49cdb2807bad212b84f5ab51ac26 Author: Nicolas Dichtel Date: Thu Apr 2 17:07:11 2015 +0200 veth: set iflink to the peer veth Now that the peer netns is advertised in rtnl messages, we can set this property so that IFLA_LINK will advertise the peer ifindex. It allows the userland to get the full veth configuration. Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller --- src/daemon/netlink.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/daemon/netlink.c b/src/daemon/netlink.c index 0e3dba8a..6579dd32 100644 --- a/src/daemon/netlink.c +++ b/src/daemon/netlink.c @@ -443,7 +443,11 @@ netlink_get_interfaces() if (iface1->lower_idx != -1 && iface1->lower_idx != iface1->index) TAILQ_FOREACH(iface2, ifs, next) { if (iface1->lower_idx == iface2->index) { - iface1->lower = iface2; + if (iface2->lower_idx == iface1->index) { + /* Workaround a bug introduced in Linux 4.1 */ + iface2->lower_idx = iface2->index; + iface1->lower_idx = iface1->index; + } else iface1->lower = iface2; break; } } -- 2.39.5