Re: [net-next,v3] GRE over IPv6
From: Kozlov Dmitry <hidden>
Date: 2012-07-30 11:52:54
On Monday 30 July 2012 14:38:06 Timo Teras wrote:
On Sat, 28 Jul 2012 22:12:42 -0000 xeb@mail.ru wrote:quoted
GRE over IPv6 implementation. Signed-off-by: Dmitry Kozlov <redacted> --- Changes: Initialize nt->dev before calling ip6gre_tnl_link_config in ip6gre_newlink. Add missing ip6gre.c include/linux/if_arp.h | 1 + include/linux/if_tunnel.h | 3 + include/linux/ip6_tunnel.h | 18 + include/net/ip6_tunnel.h | 40 +- include/net/ipv6.h | 1 + net/ipv6/Kconfig | 16 + net/ipv6/Makefile | 1 + net/ipv6/ip6_gre.c | 1817 ++++++++++++++++++++++++++++++++++++++++++++ net/ipv6/ip6_tunnel.c | 86 ++- 9 files changed, 1958 insertions(+), 25 deletions(-)Would it be possible and/or feasible to instead modify ip_gre to support also ipv6 as outer protocol? It already has ipv6 stuff in it for the inner protocol support. And it would avoid duplicating most of the code. And I would especially love that approach, since I could then on per-target basis say if it should be contacted with IPv4 or IPv6. As in: ip addr add 10.0.0.1/24 dev gre1 ip neigh add 10.0.0.2 lladdr 192.168.x.x dev gre1 nud permanent ip neigh add 10.0.0.3 lladdr fe80::xxxx:xxxx:xxxx:xxxx/64 dev gre1 nud permanent
Sounds good, but it involves too many if/else because there are much ipv4 and ipv6 specifics and code will be unreadable. I see only shared part is tunnel initialization and managing code. Tunnel lookup, receive and transmit parts are mostly different.