gro: support VxLAN GRO
authorJiayu Hu <jiayu.hu@intel.com>
Wed, 10 Jan 2018 14:03:12 +0000 (22:03 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 11 Jan 2018 22:18:36 +0000 (23:18 +0100)
commit9e0b9d2ec0f4bb7256f9b053c43d7c1d0c02c3e2
tree3df867fbaff8b6249cc9e1035e08c3d038e18973
parentb52b61f0464ee6785137f21cbabc76847bdedc0c
gro: support VxLAN GRO

This patch adds a framework that allows GRO on tunneled packets.
Furthermore, it leverages that framework to provide GRO support for
VxLAN-encapsulated packets. Supported VxLAN packets must have an outer
IPv4 header, and contain an inner TCP/IPv4 packet.

VxLAN GRO doesn't check if input packets have correct checksums and
doesn't update checksums for output packets. Additionally, it assumes
the packets are complete (i.e., MF==0 && frag_off==0), when IP
fragmentation is possible (i.e., DF==0).

Signed-off-by: Jiayu Hu <jiayu.hu@intel.com>
Reviewed-by: Junjie Chen <junjie.j.chen@intel.com>
Tested-by: Lei Yao <lei.a.yao@intel.com>
doc/guides/prog_guide/generic_receive_offload_lib.rst
lib/librte_gro/Makefile
lib/librte_gro/gro_tcp4.c
lib/librte_gro/gro_tcp4.h
lib/librte_gro/gro_vxlan_tcp4.c [new file with mode: 0644]
lib/librte_gro/gro_vxlan_tcp4.h [new file with mode: 0644]
lib/librte_gro/rte_gro.c
lib/librte_gro/rte_gro.h