From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3F29AA00C3; Tue, 20 Sep 2022 05:28:34 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 12CCC4069B; Tue, 20 Sep 2022 05:28:33 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 2FF134021D for ; Tue, 20 Sep 2022 05:28:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663644511; x=1695180511; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VeYN6rEGCm7eicBWIHch91MELV/11PBftxORm9GdtgI=; b=JIJ3g0MYcrErUYIqxU6LSvCYVBCVfZkRyq340lcE0R1iH0dBbExsMRgw wz3h07hvooLOdVYf7IzUHai2V4f3c8aym6irkbZJPudSdQpyRj1TLtdx1 OJB1Q4Aa8tbPaNO0NuP1s0miXvFXeLkTDb7n/OFG3tKcCakZdPivpaKPy nRrSUBzd/wz6JorMrwSFkb9lOg/mG1migqUXrWG8q+jfYH6wQaq9aVXYw kwcMjUw+SdQY8mBGNeakggezEr2K5bsFrwGK7Um5hD4dmBswCJxXIDY2B G+FI2kXRkQReynYi3+uqTKArdCxqL//Llk5XEbds5BmEXR9PfuzenQQIv w==; X-IronPort-AV: E=McAfee;i="6500,9779,10475"; a="385872078" X-IronPort-AV: E=Sophos;i="5.93,329,1654585200"; d="scan'208";a="385872078" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2022 20:28:30 -0700 X-IronPort-AV: E=Sophos;i="5.93,329,1654585200"; d="scan'208";a="947490448" Received: from unknown (HELO localhost.localdomain) ([10.239.252.55]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2022 20:28:25 -0700 From: Yuan Wang To: dev@dpdk.org Cc: thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru, ferruh.yigit@xilinx.com, mdr@ashroe.eu, xiaoyun.li@intel.com, aman.deep.singh@intel.com, yuying.zhang@intel.com, qi.z.zhang@intel.com, qiming.yang@intel.com, jerinjacobk@gmail.com, viacheslavo@nvidia.com, stephen@networkplumber.org, xuan.ding@intel.com, hpothula@marvell.com, yaqi.tang@intel.com, Yuan Wang Subject: [PATCH v4 0/4] support protocol based buffer split Date: Tue, 20 Sep 2022 19:12:39 +0800 Message-Id: <20220920111243.1290998-1-yuanx.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220812181552.2908067-1-yuanx.wang@intel.com> References: <20220812181552.2908067-1-yuanx.wang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Protocol type based buffer split consists of splitting a received packet into several separate segments based on the packet content. It is useful in some scenarios, such as GPU acceleration. The splitting will help to enable true zero copy and hence improve the performance significantly. This patchset aims to support protocol header split based on current buffer split. When Rx queue is configured with RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT offload and corresponding protocol, packets received will be directly split into different mempools. Change log: v4: Change proto_hdr to a bit mask of RTE_PTYPE_*. Add the description on how to put the unsplit packages. Use proto_hdr to determine whether to use protocol based split. v3: Fix mail thread. v2: Add mbuf dump to the driver's buffer split path. Add buffer split to the driver feature list. Remove unsupported header protocols from the driver. Yuan Wang (4): ethdev: introduce protocol header API ethdev: introduce protocol hdr based buffer split app/testpmd: add rxhdrs commands and parameters net/ice: support buffer split in Rx path app/test-pmd/cmdline.c | 124 +++++++++++++- app/test-pmd/config.c | 70 ++++++++ app/test-pmd/parameters.c | 16 +- app/test-pmd/testpmd.c | 2 + app/test-pmd/testpmd.h | 6 + doc/guides/rel_notes/release_22_11.rst | 16 ++ drivers/net/ice/ice_ethdev.c | 32 +++- drivers/net/ice/ice_rxtx.c | 215 +++++++++++++++++++++---- drivers/net/ice/ice_rxtx.h | 16 ++ drivers/net/ice/ice_rxtx_vec_common.h | 3 + lib/ethdev/ethdev_driver.h | 15 ++ lib/ethdev/rte_ethdev.c | 106 ++++++++++-- lib/ethdev/rte_ethdev.h | 49 +++++- lib/ethdev/version.map | 3 + 14 files changed, 625 insertions(+), 48 deletions(-) -- 2.25.1