From: Tonghao Zhang <xiangxia.m....@gmail.com>

Don't allow to remove the vxlan device to other namesapce,
because we maintain the data of vxlan net device on original
net-namespace.

    $ ip netns add ns100
    $ ip link add vxlan100 type vxlan dstport 4789 external
    $ ip link set dev vxlan100 netns ns100
    $ ip netns exec ns100 ip link add vxlan200 type vxlan dstport 4789 external
    $ ip netns exec ns100 ip link
    ...
    vxlan200: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT 
group default qlen 1000
    vxlan100: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT 
group default qlen 1000

And we should create it on new net-namespace, so disallow removing it.

Signed-off-by: Tonghao Zhang <xiangxia.m....@gmail.com>
---
 drivers/net/vxlan.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 5994d54..63add28 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -2998,6 +2998,7 @@ static void vxlan_setup(struct net_device *dev)
        dev->needs_free_netdev = true;
        SET_NETDEV_DEVTYPE(dev, &vxlan_type);
 
+       dev->features   |= NETIF_F_NETNS_LOCAL;
        dev->features   |= NETIF_F_LLTX;
        dev->features   |= NETIF_F_SG | NETIF_F_HW_CSUM;
        dev->features   |= NETIF_F_RXCSUM;
-- 
1.8.3.1

Reply via email to