This patch series enables the use of segmentation and checksum offloads
with IPv6 based GRE tunnels.

In order to enable this series I had to make a change to
iptunnel_handle_offloads so that it would no longer free the skb.  This was
necessary as there were multiple paths in the IPv6 GRE code that required
the skb to still be present so it could be freed.  As it turned out I
believe this actually fixes a bug that was present in FOU/GUE based tunnels
anyway.

Below is a quick breakdown of the performance gains seen with a simple
netperf test passing traffic through a ip6gretap tunnel and then an i40e
interface:

Throughput Throughput  Local Local   Result 
           Units       CPU   Service Tag    
                       Util  Demand         
                       %  
3544.93    10^6bits/s  6.30  4.656   "before"
13081.75   10^6bits/s  3.75  0.752   "after"

---

Alexander Duyck (5):
      ip_tunnel_core: iptunnel_handle_offloads returns int and doesn't free skb
      ip6gretap: Fix MTU to allow for Ethernet header
      ip6gre: Add support for basic offloads offloads excluding GSO
      GRE: Add support for GRO/GSO of IPv6 GRE traffic
      ip6gre: Add support for GSO


 drivers/net/geneve.c            |   32 ++++++---------
 drivers/net/vxlan.c             |    6 +--
 include/net/ip_tunnels.h        |    2 -
 include/net/udp_tunnel.h        |    3 -
 net/ipv4/fou.c                  |   16 ++++----
 net/ipv4/gre_offload.c          |   14 ++++++-
 net/ipv4/ip_gre.c               |   20 +++-------
 net/ipv4/ip_tunnel_core.c       |   13 ++----
 net/ipv4/ipip.c                 |    7 +--
 net/ipv6/ip6_gre.c              |   81 +++++++++++++++++++++++++++------------
 net/ipv6/sit.c                  |   14 +++----
 net/netfilter/ipvs/ip_vs_xmit.c |    6 +--
 12 files changed, 116 insertions(+), 98 deletions(-)

--

Reply via email to