All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 net-next 00/14] ipv6: Enable GUEoIPv6 and more fixes for v6 tunneling
@ 2016-05-15 23:42 Tom Herbert
  2016-05-15 23:42 ` [PATCH v5 net-next 01/14] gso: Remove arbitrary checks for unsupported GSO Tom Herbert
                   ` (13 more replies)
  0 siblings, 14 replies; 29+ messages in thread
From: Tom Herbert @ 2016-05-15 23:42 UTC (permalink / raw)
  To: davem, netdev; +Cc: kernel-team

This patch set:
  - Fixes GRE6 to process translate flags correctly from configuration
  - Adds support for GSO and GRO for ip6ip6 and ip4ip6
  - Add support for FOU and GUE in IPv6
  - Support GRE, ip6ip6 and ip4ip6 over FOU/GUE
  - Fixes ip6_input to deal with UDP encapsulations
  - Some other minor fixes

v2:
  - Removed a check of GSO types in MPLS
  - Define GSO type SKB_GSO_IPXIP6 and SKB_GSO_IPXIP4 (based on input
    from Alexander)
  - Don't define GSO types specifically for IP6IP6 and IP4IP6, above
    fix makes that unnecessary
  - Don't bother clearing encapsulation flag in UDP tunnel segment
    (another item suggested by Alexander).

v3:
  - Address some minor comments from Alexander

v4:
  - Rebase on changes to fix IP TX tunnels
  - Fix MTU issues in ip4ip6, ip6ip6
  - Add test data for above

v5:
  - Address feedback from Shmulik Ladkani regarding extension header
    code that does not return next header but in instead relies
    on returning value via nhoff. Solution here is to fix EH
    processing to return nexthdr value.
  - Refactored IPv4 encaps so that we won't need to create
    a ip6_tunnel_core.c when adding encap support IPv6.

Tested:
   Tested a variety of case, but not the full matrix (which is quite
   large now). Most of the obvious cases (e.g. GRE) work fine. Still
   some issues probably with GSO/GRO being effective in all cases.

    - IPv4/GRE/GUE/IPv6 with RCO
      1 TCP_STREAM
      	6616 Mbps
      200 TCP_RR
	1244043 tps
        141/243/446 90/95/99% latencies
	86.61% CPU utilization

    - IPv6/GRE/GUE/IPv6 with RCO
      1 TCP_STREAM
	6940 Mbps
      200 TCP_RR
	1270903 tps
	138/236/440 90/95/99% latencies
	87.51% CPU utilization

     - IP6IP6
      1 TCP_STREAM
	2576 Mbps
      200 TCP_RR
	498981 tps
	388/498/631 90/95/99% latencies
	19.75% CPU utilization (1 CPU saturated)

     - IP6IP6/GUE with RCO
      1 TCP_STREAM
	2031 Mbps
      200 TCP_RR
	1233818 tps
	143/244/451 90/95/99% latencies
	87.57 CPU utilization

     - IP4IP6
      1 TCP_STREAM
	2371 Mbps
      200 TCP_RR
	763774 tps
	250/318/466 90/95/99% latencies
	35.25% CPU utilization (1 CPU saturated)

     - IP4IP6/GUE with RCO
      1 TCP_STREAM
	2054 Mbps
      200 TCP_RR
	1196385 tps
	148/251/460 90/95/99% latencies
	87.56 CPU utilization

     - GRE with keyid
      200 TCP_RR
	744173 tps
	258/332/461 90/95/99% latencies
	34.59% CPU utilization (1 CPU saturated)
      

Tom Herbert (14):
  gso: Remove arbitrary checks for unsupported GSO
  net: define gso types for IPx over IPv4 and IPv6
  ipv6: Fix nexthdr for reinjection
  ipv6: Change "final" protocol processing for encapsulation
  net: Cleanup encap items in ip_tunnels.h
  fou: Call setup_udp_tunnel_sock
  fou: Split out {fou,gue}_build_header
  fou: Support IPv6 in fou
  ip6_tun: Add infrastructure for doing encapsulation
  fou: Add encap ops for IPv6 tunnels
  ip6_gre: Add support for fou/gue encapsulation
  ip6_tunnel: Add support for fou/gue encapsulation
  ip6ip6: Support for GSO/GRO
  ip4ip6: Support for GSO/GRO

 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c  |   5 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c         |   4 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c       |   3 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c       |   3 +-
 drivers/net/ethernet/intel/i40evf/i40e_txrx.c     |   3 +-
 drivers/net/ethernet/intel/i40evf/i40evf_main.c   |   3 +-
 drivers/net/ethernet/intel/igb/igb_main.c         |   3 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   3 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |   3 +-
 include/linux/netdev_features.h                   |  12 +-
 include/linux/netdevice.h                         |   4 +-
 include/linux/skbuff.h                            |   4 +-
 include/net/fou.h                                 |  10 +-
 include/net/inet_common.h                         |   5 +
 include/net/ip6_tunnel.h                          |  58 ++++++++
 include/net/ip_tunnels.h                          |  76 +++++++---
 net/core/ethtool.c                                |   4 +-
 net/ipv4/af_inet.c                                |  32 ++---
 net/ipv4/fou.c                                    | 144 +++++++++++--------
 net/ipv4/gre_offload.c                            |  14 --
 net/ipv4/ip_tunnel.c                              |  45 ------
 net/ipv4/ip_tunnel_core.c                         |   9 ++
 net/ipv4/ipip.c                                   |   2 +-
 net/ipv4/tcp_offload.c                            |  19 ---
 net/ipv4/udp_offload.c                            |  10 --
 net/ipv6/Makefile                                 |   1 +
 net/ipv6/fou6.c                                   | 140 ++++++++++++++++++
 net/ipv6/ip6_gre.c                                |  77 +++++++++-
 net/ipv6/ip6_input.c                              |  33 ++++-
 net/ipv6/ip6_offload.c                            |  77 +++++++---
 net/ipv6/ip6_tunnel.c                             | 167 ++++++++++++++++++++--
 net/ipv6/sit.c                                    |   4 +-
 net/ipv6/udp_offload.c                            |  13 --
 net/mpls/mpls_gso.c                               |   9 --
 net/netfilter/ipvs/ip_vs_xmit.c                   |  17 +--
 35 files changed, 718 insertions(+), 298 deletions(-)
 create mode 100644 net/ipv6/fou6.c

-- 
2.8.0.rc2

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2016-05-16 20:16 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-15 23:42 [PATCH v5 net-next 00/14] ipv6: Enable GUEoIPv6 and more fixes for v6 tunneling Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 01/14] gso: Remove arbitrary checks for unsupported GSO Tom Herbert
2016-05-16 16:49   ` Alexander Duyck
2016-05-15 23:42 ` [PATCH v5 net-next 02/14] net: define gso types for IPx over IPv4 and IPv6 Tom Herbert
2016-05-16  0:34   ` Jeff Kirsher
2016-05-16 16:32   ` Alexander Duyck
2016-05-16 18:07     ` Tom Herbert
2016-05-16 18:13       ` Alexander Duyck
2016-05-16 18:28         ` Tom Herbert
2016-05-16 18:31           ` Alexander Duyck
2016-05-16 16:52   ` Alexander Duyck
2016-05-16 17:04   ` Alexander Duyck
2016-05-15 23:42 ` [PATCH v5 net-next 03/14] ipv6: Fix nexthdr for reinjection Tom Herbert
2016-05-16 18:19   ` Shmulik Ladkani
2016-05-16 18:35     ` Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 04/14] ipv6: Change "final" protocol processing for encapsulation Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 05/14] net: Cleanup encap items in ip_tunnels.h Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 06/14] fou: Call setup_udp_tunnel_sock Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 07/14] fou: Split out {fou,gue}_build_header Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 08/14] fou: Support IPv6 in fou Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 09/14] ip6_tun: Add infrastructure for doing encapsulation Tom Herbert
2016-05-16 19:24   ` Alexander Duyck
2016-05-16 19:28     ` Tom Herbert
2016-05-16 20:16       ` Alexander Duyck
2016-05-15 23:42 ` [PATCH v5 net-next 10/14] fou: Add encap ops for IPv6 tunnels Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 11/14] ip6_gre: Add support for fou/gue encapsulation Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 12/14] ip6_tunnel: " Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 13/14] ip6ip6: Support for GSO/GRO Tom Herbert
2016-05-15 23:42 ` [PATCH v5 net-next 14/14] ip4ip6: " Tom Herbert

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.