[dpdk-dev] [PATCH v5 0/2] gro: add UDP GRO and VXLAN UDP GRO support
yang_y_yi at 163.com
yang_y_yi at 163.com
Thu Sep 10 11:29:12 CEST 2020
From: Yi Yang <yangyi01 at inspur.com>
In case that UFO or GSO is enabled, GRO is very necessary,
especially for UDP, it is more so. Many NICs can't support
VXLAN UDP UFO/USO and VLAN UFO/USO, so UDP performance
improvement depends on GSO and GRO to a great extent.
This patch series added VLAN UDP GRO and VXLAN UDP GRO
support.
I have tested it in OVS DPDK, test scenario is as below:
+-------------------------+ +--------------------------+
|VM1 --- OVS DPDK --- NIC1|---| NIC2 --- OVS-DPDK --- VM2|
+-------------------------+ +--------------------------+
SERVER1 SERVER2
If no GSO and GRO, 8k UDP packet can't work in case of UFO or
in case that underlay MTU is 1500, so UDP size must meet MTU
limitation, my VM MTU is 1450 (consider vxlan header), UDP
performance is about 3Gbps, with GSO and GRO enabled, I can
send 8K UDP packet, UDP performance is about 6Gbps (Note: with
small UDP packet loss rate).
FYI: OVS DPDK patch series
https://patchwork.ozlabs.org/project/openvswitch/list/?series=194621
Changelog
---------
v4 -> v5: remove duplicate line
fix header length check issue
add unlikely for some low probability condition branch
rename udp_check_neighbor to udp4_check_neighbor
remove brace for single line else statement
remove outer_l2_len and pkt->outer_l3_len because they
are nonsense for non-VXLAN UDP packet
v3 -> v4: split two patches in cleaner way
remove ip_id which is unnecessary for UDP GRO
correct hdr_len calculation
v2 -> v3: remove UDP header length check
v1 -> v2: split into two patches
Yi Yang (2):
gro: add UDP GRO support
gro: add VXLAN UDP GRO support
lib/librte_gro/gro_udp4.c | 430 +++++++++++++++++++++++++++++++
lib/librte_gro/gro_udp4.h | 282 +++++++++++++++++++++
lib/librte_gro/gro_vxlan_udp4.c | 548 ++++++++++++++++++++++++++++++++++++++++
lib/librte_gro/gro_vxlan_udp4.h | 152 +++++++++++
lib/librte_gro/meson.build | 2 +-
lib/librte_gro/rte_gro.c | 192 +++++++++++---
lib/librte_gro/rte_gro.h | 8 +-
7 files changed, 1580 insertions(+), 34 deletions(-)
create mode 100644 lib/librte_gro/gro_udp4.c
create mode 100644 lib/librte_gro/gro_udp4.h
create mode 100644 lib/librte_gro/gro_vxlan_udp4.c
create mode 100644 lib/librte_gro/gro_vxlan_udp4.h
--
1.8.3.1
More information about the dev
mailing list