Browse Source

[SIT]: Allow to create SIT tunnels in net namespaces.

Set proper net and mark a new device as NETNS_LOCAL before registering.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov 17 years ago
parent
commit
7a97146cc6
1 changed files with 3 additions and 0 deletions
  1. 3 0
      net/ipv6/sit.c

+ 3 - 0
net/ipv6/sit.c

@@ -182,6 +182,8 @@ static struct ip_tunnel * ipip6_tunnel_locate(struct net *net,
 	if (dev == NULL)
 	if (dev == NULL)
 		return NULL;
 		return NULL;
 
 
+	dev_net_set(dev, net);
+
 	if (strchr(name, '%')) {
 	if (strchr(name, '%')) {
 		if (dev_alloc_name(dev, name) < 0)
 		if (dev_alloc_name(dev, name) < 0)
 			goto failed_free;
 			goto failed_free;
@@ -1029,6 +1031,7 @@ static void ipip6_tunnel_setup(struct net_device *dev)
 	dev->flags		= IFF_NOARP;
 	dev->flags		= IFF_NOARP;
 	dev->iflink		= 0;
 	dev->iflink		= 0;
 	dev->addr_len		= 4;
 	dev->addr_len		= 4;
+	dev->features		|= NETIF_F_NETNS_LOCAL;
 }
 }
 
 
 static int ipip6_tunnel_init(struct net_device *dev)
 static int ipip6_tunnel_init(struct net_device *dev)