From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E976C433F5 for ; Thu, 29 Sep 2022 11:14:54 +0000 (UTC) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8A61A40694; Thu, 29 Sep 2022 13:14:53 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 1CD9B40395 for ; Thu, 29 Sep 2022 13:14:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664450092; x=1695986092; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZTwGQTb6hNmr3vB4twoT30JPWhbMtaAfE4nLcdIqfiQ=; b=DTAziQ5i/s07cMF1YitWatDlSIpW6rRIDXGH73gTI+OsVGrGkhUUFlyj dVH6u191wFcY1fkaP9PhNY4uBouZpHcfmM5EPBO7NEaV6sznZv9pd0tcA bzYDwfH5Lt961WldUlWw56b8zD/V3DG73sUUslW07Vltn+x/5wFpiEeqK g7EqoILtSUitvR1EZ4JQkPTpzGJBojaUJaqBKbGpgfGDvkFh29hvDxQoW oie4r3xS3D5VZSbAtpUcY9OL5lJ/Lx6UKfBGKDQ8oPCGYJ3zG+GgDb8js nfEcBQ8ZTtDzo8ZDSiR75QTNZRrEn6EpQ05Nu9uy323ZcippNEEMwaJUr Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10484"; a="299464086" X-IronPort-AV: E=Sophos;i="5.93,354,1654585200"; d="scan'208";a="299464086" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 04:14:51 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10484"; a="624524256" X-IronPort-AV: E=Sophos;i="5.93,354,1654585200"; d="scan'208";a="624524256" Received: from unknown (HELO localhost.localdomain) ([10.239.252.55]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 04:14:46 -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 v6 0/4] support protocol based buffer split Date: Fri, 30 Sep 2022 02:59:06 +0800 Message-Id: <20220929185910.1740782-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: v6: ice: Fix proto_hdr mappings to NIC configuration. v5: Define proto_hdr to use mask instead of single protocol type. Define PMD to return protocol header mask. Refine the doc and commit log. Remove deprecated RTE_FUNC_PTR_OR_ERR_RET. 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 | 146 +++++++++++++- app/test-pmd/config.c | 88 +++++++++ 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 | 55 +++++- drivers/net/ice/ice_rxtx.c | 257 ++++++++++++++++++++++--- 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 | 107 ++++++++-- lib/ethdev/rte_ethdev.h | 59 +++++- lib/ethdev/version.map | 3 + 14 files changed, 741 insertions(+), 48 deletions(-) -- 2.25.1