From patchwork Sun Jun 17 03:13:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hu, Jiayu" X-Patchwork-Id: 41219 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C90331B4B0; Sun, 17 Jun 2018 05:05:27 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 1EADA1B3B6 for ; Sun, 17 Jun 2018 05:05:25 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jun 2018 20:05:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,233,1526367600"; d="scan'208";a="49937431" Received: from dpdk15.sh.intel.com ([10.67.111.146]) by orsmga008.jf.intel.com with ESMTP; 16 Jun 2018 20:05:23 -0700 From: Jiayu Hu To: dev@dpdk.org Cc: konstantin.ananyev@intel.com, yuwei1.zhang@intel.com, bernard.iremonger@intel.com, Jiayu Hu Date: Sun, 17 Jun 2018 11:13:11 +0800 Message-Id: <1529205194-87434-1-git-send-email-jiayu.hu@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1527579670-91026-1-git-send-email-jiayu.hu@intel.com> References: <1527579670-91026-1-git-send-email-jiayu.hu@intel.com> Subject: [dpdk-dev] [PATCH v2 0/3] Support UDP/IPv4 GSO X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" With the support of UDP Fragmentation Offload (UFO) and TCP Segmentation Offload (TSO) in virtio, VMs can exchange large UDP and TCP packets exceeding MTU between each other, which can greatly reduce per-packet processing overheads. When the destination of the large TCP and UDP packets is crossing machines, the host application needs to call two different libraries, GSO and IP fragmentation, to split the large packets respectively. However,the GSO and IP fragmentation library have quite different APIs, which greatly complicates the host application implementation. To simplify application development, we propose to support UDP/IPv4 fragmentation in the GSO library. With supporting UDP GSO, host applicationss can use the unified APIs to split large UDP and TCP packets. This patchset is to support UDP/IPv4 GSO. The first patch is to provide UDP GSO function, the second patch is to enable UDP/IPv4 GSO in the testpmd checksum forwarding engine, and the last patch is to update the programmer guide and testpmd user guide. Change log ========== V2: - fix fragment offset calculation bug. - add UDP GSO description in testpmd user guide. - shorten the second patch name. Jiayu Hu (3): gso: support UDP/IPv4 fragmentation app/testpmd: enable UDP GSO in csum engine gso: update documents for UDP/IPv4 GSO app/test-pmd/cmdline.c | 5 +- app/test-pmd/csumonly.c | 2 + app/test-pmd/testpmd.c | 2 +- .../generic_segmentation_offload_lib.rst | 6 ++ doc/guides/testpmd_app_ug/testpmd_funcs.rst | 6 ++ lib/librte_gso/Makefile | 1 + lib/librte_gso/gso_common.h | 3 + lib/librte_gso/gso_udp4.c | 81 ++++++++++++++++++++++ lib/librte_gso/gso_udp4.h | 42 +++++++++++ lib/librte_gso/rte_gso.c | 24 +++++-- lib/librte_gso/rte_gso.h | 6 +- 11 files changed, 169 insertions(+), 9 deletions(-) create mode 100644 lib/librte_gso/gso_udp4.c create mode 100644 lib/librte_gso/gso_udp4.h