[IP6TUNNEL]: Allow to create IP6 tunnels in net namespaces.
authorPavel Emelyanov <xemul@openvz.org>
Wed, 16 Apr 2008 08:24:13 +0000 (01:24 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Apr 2008 08:24:13 +0000 (01:24 -0700)
And no need in some IPPROTO_XXX enabling, since ipv6 code
doesn't have any filtering.

So, just set proper net and mark device with NETNS_LOCAL.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_tunnel.c

index d9b27215909734704f7caf9efdc2fca26c08c532..2bda3ba100b170122edc27d843d227976a3c30e9 100644 (file)
@@ -243,6 +243,8 @@ static struct ip6_tnl *ip6_tnl_create(struct net *net, struct ip6_tnl_parm *p)
        if (dev == NULL)
                goto failed;
 
+       dev_net_set(dev, net);
+
        if (strchr(name, '%')) {
                if (dev_alloc_name(dev, name) < 0)
                        goto failed_free;
@@ -1341,6 +1343,7 @@ static void ip6_tnl_dev_setup(struct net_device *dev)
        dev->mtu = ETH_DATA_LEN - sizeof (struct ipv6hdr);
        dev->flags |= IFF_NOARP;
        dev->addr_len = sizeof(struct in6_addr);
+       dev->features |= NETIF_F_NETNS_LOCAL;
 }