diff options
author | Nicolas Dichtel <nicolas.dichtel@6wind.com> | 2013-08-13 17:51:11 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-15 01:00:20 -0700 |
commit | 6c742e714d8c282fd8f8b22d3e20b5141738c1ee (patch) | |
tree | e941ce5158e8fd6e33230f0642f391bca2113796 /net/ipv4/ipip.c | |
parent | fc8f999daa10a5c5c19562b88be96a9b2bacd9b7 (diff) | |
download | op-kernel-dev-6c742e714d8c282fd8f8b22d3e20b5141738c1ee.zip op-kernel-dev-6c742e714d8c282fd8f8b22d3e20b5141738c1ee.tar.gz |
ipip: add x-netns support
This patch allows to switch the netns when packet is encapsulated or
decapsulated. In other word, the encapsulated packet is received in a netns,
where the lookup is done to find the tunnel. Once the tunnel is found, the
packet is decapsulated and injecting into the corresponding interface which
stands to another netns.
When one of the two netns is removed, the tunnel is destroyed.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ipip.c')
-rw-r--r-- | net/ipv4/ipip.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c index 51fc2a1..87bd295 100644 --- a/net/ipv4/ipip.c +++ b/net/ipv4/ipip.c @@ -286,7 +286,6 @@ static void ipip_tunnel_setup(struct net_device *dev) dev->flags = IFF_NOARP; dev->iflink = 0; dev->addr_len = 4; - dev->features |= NETIF_F_NETNS_LOCAL; dev->features |= NETIF_F_LLTX; dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; @@ -437,7 +436,7 @@ static int __net_init ipip_init_net(struct net *net) static void __net_exit ipip_exit_net(struct net *net) { struct ip_tunnel_net *itn = net_generic(net, ipip_net_id); - ip_tunnel_delete_net(itn); + ip_tunnel_delete_net(itn, &ipip_link_ops); } static struct pernet_operations ipip_net_ops = { |