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 C007EA0548; Wed, 1 Jun 2022 15:30:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A355040689; Wed, 1 Jun 2022 15:30:01 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id B50354003F for ; Wed, 1 Jun 2022 15:30:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654090200; x=1685626200; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nDOVs5GqQjrgLA0zhBbaSDJh0bRzM4brM6e4vk+8nJE=; b=BnSNBr083wtuUQLoEdZ/TgtxGdnsp4f3PVnybx1bTP+vkcdJ6hAn7H+3 5dGRZf1uDJsjGc6wlpYiFZLUTKdcQSfFIPtE0jJrofA55BxVif2R4iojI 3Fet0fs8jtgXFvZ/toPy85kWOnkNQBpQZqwUX/ac0+1OrisfqvVE7DWez SySEmpHjAHyyZqaoRlcSLUHlcgKh0Z/MQcYrTTUNRVvC2hmEdquwbB05E DBAwyfsF1ttO4VLCN/ARc3laTja1Sb7gktrBFsZdxMlt4LmIHS20aiF/K 1MmnJi1np6tsUTSbvtuBfo0r3zNBFaurJMdrPRwCLN97zziD6+b2POpts w==; X-IronPort-AV: E=McAfee;i="6400,9594,10365"; a="336242719" X-IronPort-AV: E=Sophos;i="5.91,268,1647327600"; d="scan'208";a="336242719" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jun 2022 06:29:59 -0700 X-IronPort-AV: E=Sophos;i="5.91,268,1647327600"; d="scan'208";a="606263812" 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 06:29:55 -0700 From: wenxuanx.wu@intel.com To: dev@dpdk.org, qi.z.zhang@intel.com, jerinjacobk@gmail.com, xiaoyun.li@intel.com, aman.deep.singh@intel.com, yuying.zhang@intel.com Cc: stephen@networkplumber.org, mb@smartsharesystems.com, viacheslavo@nvidia.com, ping.yu@intel.com, xuan.ding@intel.com, yuanx.wang@intel.com, wenxuanx.wu@intel.com Subject: [PATCH v7 0/3] ethdev: introduce protocol type based header split Date: Wed, 1 Jun 2022 13:06:11 +0000 Message-Id: <20220601130614.955111-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