On Fri, Apr 29, 2016 at 6:00 PM, Alexander Duyck <alexander.du...@gmail.com> wrote: > On Fri, Apr 29, 2016 at 5:12 PM, Tom Herbert <t...@herbertland.com> wrote: >> The IPv6 tunnel code is very different from IPv4 code. There is a lot >> of redundancy with the IPv4 code, particularly in the GRE tunneling. >> >> This patch set cleans up the tunnel code to make the IPv6 code look >> more like the IPv4 code and use common functions between the two >> stacks where possible. >> >> This work should make it easier to maintain and extend the IPv6 ip >> tunnels. >> >> Items in this patch set: >> - Cleanup IPv6 tunnel receive path (ip6_tnl_rcv). Includes using >> gro_cells and exporting ip6_tnl_rcv so the ip6_gre can call it >> - Move GRE functions to common header file (tx functions) or >> gre_demux.c (rx functions like gre_parse_header) >> - Call common GRE functions from IPv6 GRE >> - Create ip6_tnl_xmit (to be like ip_tunnel_xmit) >> >> Tested: >> Ran super_netperf tests for TCP_RR and TCP_STREAM for: >> - IPv4 over gre, gretap, gre6, gre6tap >> - IPv6 over gre, gretap, gre6, gre6tap >> - ipip >> - ip6ip6 >> - ipip/gue >> - IPv6 over gre/gue >> - IPv4 over gre/gue > > You should probably add 2 additional test cases. One for IPv4 GRE/GUE > w/ checksum on the GRE header, and same for IPv6. It was broken > previously in terms of offloads so we need to make sure we don't > introduce a regression and break it again. > Hi Alexander,
I did test GRE/GUE with checksum and remcsum for IPv4, that works okay. Support for GUE with IPv6 is in the next patch set I am working on. Thanks, Tom >> Tom Herbert (7): >> ipv6: Cleanup IPv6 tunnel receive path >> gre: Move utility functions to common headers >> gre6: Cleanup GREv6 receive path, call common GRE functions >> ipv6: Create ip6_tnl_xmit >> gre: Create common functions for transmit >> ipv6: Generic tunnel cleanup >> gre6: Cleanup GREv6 transmit path, call common GRE functions >> >> include/net/gre.h | 104 +++++++++++++ >> include/net/ip6_tunnel.h | 11 +- >> net/ipv4/gre_demux.c | 64 ++++++++ >> net/ipv4/ip_gre.c | 199 +++--------------------- >> net/ipv6/ip6_gre.c | 392 >> +++++++++-------------------------------------- >> net/ipv6/ip6_tunnel.c | 266 +++++++++++++++++++++----------- >> 6 files changed, 452 insertions(+), 584 deletions(-) >> >> -- >> 2.8.0.rc2 >>