Merge branch 'ipv6-tunnel-cleanups'
authorDavid S. Miller <davem@davemloft.net>
Mon, 2 May 2016 23:23:32 +0000 (19:23 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 May 2016 23:23:32 +0000 (19:23 -0400)
commitd1ac3b16d535019b7da6fd81d81a469e72d5c3dd
tree64b8c2a69fadbd460e773a38741fc21e9f9c80be
parent570d632008fc2c7b17f55db44179fb9a03d107c4
parentb05229f442288210f2b1f5b4b2a9d71836e90686
Merge branch 'ipv6-tunnel-cleanups'

Tom Herbert says:

====================
net: Cleanup IPv6 ip tunnels

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
====================

Signed-off-by: David S. Miller <davem@davemloft.net>