aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2008-04-16 04:17:18 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-16 04:17:18 -0400
commit7a97146cc6e8145f65abfee36e56de7b8061c34f (patch)
tree08a2f8e5ecaf0368cd6db2ec908974d48a45acbd /net/ipv6
parent907a08c4023b54ffebf3fb966efcbcc1312abe32 (diff)
[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>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/sit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 7badac6c7416..4b2f1033994e 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -182,6 +182,8 @@ static struct ip_tunnel * ipip6_tunnel_locate(struct net *net,
182 if (dev == NULL) 182 if (dev == NULL)
183 return NULL; 183 return NULL;
184 184
185 dev_net_set(dev, net);
186
185 if (strchr(name, '%')) { 187 if (strchr(name, '%')) {
186 if (dev_alloc_name(dev, name) < 0) 188 if (dev_alloc_name(dev, name) < 0)
187 goto failed_free; 189 goto failed_free;
@@ -1029,6 +1031,7 @@ static void ipip6_tunnel_setup(struct net_device *dev)
1029 dev->flags = IFF_NOARP; 1031 dev->flags = IFF_NOARP;
1030 dev->iflink = 0; 1032 dev->iflink = 0;
1031 dev->addr_len = 4; 1033 dev->addr_len = 4;
1034 dev->features |= NETIF_F_NETNS_LOCAL;
1032} 1035}
1033 1036
1034static int ipip6_tunnel_init(struct net_device *dev) 1037static int ipip6_tunnel_init(struct net_device *dev)