[v6,0/3] gro: add UDP/IPv4 GRO and VXLAN UDP/IPv4 GRO support
Message ID | 20200917034959.194372-1-yang_y_yi@163.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 17FF0A04B5; Thu, 17 Sep 2020 05:50:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D237D1D449; Thu, 17 Sep 2020 05:50:05 +0200 (CEST) Received: from mail-m974.mail.163.com (mail-m974.mail.163.com [123.126.97.4]) by dpdk.org (Postfix) with ESMTP id ED4151D449 for <dev@dpdk.org>; Thu, 17 Sep 2020 05:50:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=XDDOJ DmTdZeSmTQm7RT7IbU0/j7Nd5ni9h0IJVkn0nQ=; b=JzrtaMfQaRYKzyiUcUYSU 1JDY3DYbdwng5M3NnOBjt5hfQDLzMRrWFy0c9/kM+vaZSF+uAzO1WvGgmQaYL8l0 EKmUOCKs7RGQN2na/wL+ImUg+l6I5rkAiVMtAS4HIKRKfr9Eay+ERdWiBM1hjUVE zXednAyCduvE1MRQyteOLM= Received: from yangyi0100.home.langchao.com (unknown [111.207.123.58]) by smtp4 (Coremail) with SMTP id HNxpCgBHKOLn3GJfpGpBQA--.12527S2; Thu, 17 Sep 2020 11:50:00 +0800 (CST) From: yang_y_yi@163.com To: dev@dpdk.org Cc: jiayu.hu@intel.com, thomas@monjalon.net, yangyi01@inspur.com, yang_y_yi@163.com Date: Thu, 17 Sep 2020 11:49:56 +0800 Message-Id: <20200917034959.194372-1-yang_y_yi@163.com> X-Mailer: git-send-email 2.19.2.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: HNxpCgBHKOLn3GJfpGpBQA--.12527S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxXry3ur48Xw4kCFyrGF1rZwb_yoW5GF45pa 93Kr4fJr9rJr1xX39xJw40qr95JF18J3W7G34Igry8Xrs2vw4jqrW8KFyfGry7Wr97Xr40 qw1Iq3W5Cr1jkwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x0zR5rchUUUUU= X-Originating-IP: [111.207.123.58] X-CM-SenderInfo: 51dqwsp1b1xqqrwthudrp/xtbBEgmii16iZJTjlQAAsI Subject: [dpdk-dev] [PATCH v6 0/3] gro: add UDP/IPv4 GRO and VXLAN UDP/IPv4 GRO support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Message
yang_y_yi
Sept. 17, 2020, 3:49 a.m. UTC
From: Yi Yang <yangyi01@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/IPv4 GRO and VXLAN UDP/IPv4
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
---------
v5 -> v6: add doc update patch for prog_guide and rel_notes
rename udp_check_vxlan_neighbor to udp4_check_vxlan_neighbor
remove outer_ip_id and outer_is_atomic
some other misc changes
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 (3):
gro: add UDP/IPv4 GRO support
gro: add VXLAN UDP/IPv4 GRO support
doc: update prog_guide and rel_notes for GRO
.../prog_guide/generic_receive_offload_lib.rst | 6 +-
doc/guides/rel_notes/release_20_11.rst | 6 +
lib/librte_gro/gro_udp4.c | 430 ++++++++++++++++
lib/librte_gro/gro_udp4.h | 282 +++++++++++
lib/librte_gro/gro_vxlan_udp4.c | 542 +++++++++++++++++++++
lib/librte_gro/gro_vxlan_udp4.h | 154 ++++++
lib/librte_gro/meson.build | 2 +-
lib/librte_gro/rte_gro.c | 191 ++++++--
lib/librte_gro/rte_gro.h | 8 +-
9 files changed, 1584 insertions(+), 37 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