veth: advertise link netns via netlink
authorNicolas Dichtel <nicolas.dichtel@6wind.com>
Tue, 20 Jan 2015 14:15:46 +0000 (15:15 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 24 Jan 2015 01:51:15 +0000 (17:51 -0800)
Assign rtnl_link_ops->get_link_net() callback so that IFLA_LINK_NETNSID is
added to rtnetlink messages.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/veth.c

index 8ad596573d1783d512ba4b40e2044909850e7f52..4cca36ebc4fb194a22af440f11047ecc0ce7fd1e 100644 (file)
@@ -469,6 +469,14 @@ static const struct nla_policy veth_policy[VETH_INFO_MAX + 1] = {
        [VETH_INFO_PEER]        = { .len = sizeof(struct ifinfomsg) },
 };
 
+static struct net *veth_get_link_net(const struct net_device *dev)
+{
+       struct veth_priv *priv = netdev_priv(dev);
+       struct net_device *peer = rtnl_dereference(priv->peer);
+
+       return peer ? dev_net(peer) : dev_net(dev);
+}
+
 static struct rtnl_link_ops veth_link_ops = {
        .kind           = DRV_NAME,
        .priv_size      = sizeof(struct veth_priv),
@@ -478,6 +486,7 @@ static struct rtnl_link_ops veth_link_ops = {
        .dellink        = veth_dellink,
        .policy         = veth_policy,
        .maxtype        = VETH_INFO_MAX,
+       .get_link_net   = veth_get_link_net,
 };
 
 /*