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 DE52BA0548; Wed, 1 Jun 2022 16:14:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8956540689; Wed, 1 Jun 2022 16:14:45 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 01E804003F for ; Wed, 1 Jun 2022 16:14:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654092884; x=1685628884; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nDOVs5GqQjrgLA0zhBbaSDJh0bRzM4brM6e4vk+8nJE=; b=PvwF/QhehY6grvDb/4d5O7rWd7s6zKD1KB+UvWXIyOSJXiJK6tQXxUjP azrcv76u/Qdh63QVrkic5AJfqmL8tErJVwrwMH4Gt7fvnxvDic/nSqeyv gZeodYEGxYis7FpmDymfeQZy6tKV6tRiJRPInuEKl8eTfPGpw/xQC2llZ J3i3Mhi5wK84+Sy9rVegTeIYf0aUWriFMURwcK9W+nkwwVZOFTTeADlfq m4G92NW86ujwbWsM8xeYe1PaBhd19KzArEg8dV9bDpQH5Z3/OO1nWAyJL r9m4+Vs/NzDv1KpMOQRVaaHbYvDrzjTu0MLbO3uM458aKJSBjeWsXgLsp g==; X-IronPort-AV: E=McAfee;i="6400,9594,10365"; a="338647447" X-IronPort-AV: E=Sophos;i="5.91,268,1647327600"; d="scan'208";a="338647447" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2022 07:14:42 -0700 X-IronPort-AV: E=Sophos;i="5.91,268,1647327600"; d="scan'208";a="606287110" Received: from unknown (HELO localhost.localdomain) ([10.239.251.3]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2022 07:14:39 -0700 From: wenxuanx.wu@intel.com To: thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru, xiaoyun.li@intel.com, ferruh.yigit@xilinx.com, aman.deep.singh@intel.com, dev@dpdk.org, yuying.zhang@intel.com, qi.z.zhang@intel.com, jerinjacobk@gmail.com Cc: stephen@networkplumber.org, Wenxuan Wu Subject: [PATCH v8 0/3] ethdev: introduce protocol type based header split Date: Wed, 1 Jun 2022 13:50:55 +0000 Message-Id: <20220601135059.958882-1-wenxuanx.wu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220303060136.36427-1-xuan.ding@intel.com> References: <20220303060136.36427-1-xuan.ding@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 From: Wenxuan Wu Buffer split consists of splitting a received packet into two separate regions 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 extends the current buffer split to support multi protocol headers split. When Rx queue is configured with buffer split feature, packets received will be directly splitted into two different mempools. v6->v7: *fix supported header protocol check. *add rxhdrs commands and parameters. v5->v6: *Change doc and designi of struct rte_eth_rxseg_split, support multi segments protocol_hdr configuration. v4->v5: * Use protocol and mbuf_offset based buffer split instead of header split. * Use RTE_PTYPE* instead of enum rte_eth_rx_header_split_protocol_type. * Improve the description of rte_eth_rxseg_split.proto. v3->v4: * Use RTE_ETH_RX_HEADER_SPLIT_NONE instead of 0. v2->v3: * Fix a PMD bug. * Add rx queue header split check. * Revise the log and doc. v1->v2: * Add support for all header split protocol types. Wenxuan Wu (3): ethdev: introduce protocol header based buffer split net/ice: support buffer split in Rx path app/testpmd: add rxhdrs commands and parameters app/test-pmd/cmdline.c | 127 ++++++++++++++- app/test-pmd/config.c | 81 ++++++++++ app/test-pmd/parameters.c | 15 +- app/test-pmd/testpmd.c | 6 +- app/test-pmd/testpmd.h | 6 + drivers/net/ice/ice_ethdev.c | 10 +- drivers/net/ice/ice_rxtx.c | 220 ++++++++++++++++++++++---- drivers/net/ice/ice_rxtx.h | 16 ++ drivers/net/ice/ice_rxtx_vec_common.h | 3 + lib/ethdev/rte_ethdev.c | 40 ++++- lib/ethdev/rte_ethdev.h | 28 +++- 11 files changed, 505 insertions(+), 47 deletions(-) -- 2.25.1