gso: support GRE GSO
authorMark Kavanagh <mark.b.kavanagh@intel.com>
Sat, 7 Oct 2017 14:56:42 +0000 (22:56 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 12 Oct 2017 00:36:57 +0000 (01:36 +0100)
commit70e737e448c734b8d728fd17f3e50d28711d475d
tree4773abd4c159f84fad028e1aa4a7208a7c9e6b2d
parentb058d92ea95d50c8ed3cde333c979cb367a97d15
gso: support GRE GSO

This patch adds GSO support for GRE-tunneled packets. Supported GRE
packets must contain an outer IPv4 header, and inner TCP/IPv4 headers.
They may also contain a single VLAN tag. GRE GSO doesn't check if all
input packets have correct checksums and doesn't update checksums for
output packets. Additionally, it doesn't process IP fragmented packets.

As with VxLAN GSO, GRE GSO uses a two-segment MBUF to organize each
output packet, which requires multi-segment mbuf support in the TX
functions of the NIC driver. Also, if a packet is GSOed, GRE GSO reduces
its MBUF refcnt by 1. As a result, when all of its GSOed segments are
freed, the packet is freed automatically.

Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
doc/guides/rel_notes/release_17_11.rst
lib/librte_gso/gso_common.h
lib/librte_gso/gso_tunnel_tcp4.c
lib/librte_gso/rte_gso.c