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 3F224A0548; Wed, 1 Jun 2022 15:46:44 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3031240689; Wed, 1 Jun 2022 15:46:44 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 6D2D24003F for ; Wed, 1 Jun 2022 15:46:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654091202; x=1685627202; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nDOVs5GqQjrgLA0zhBbaSDJh0bRzM4brM6e4vk+8nJE=; b=bjAtngXVtpvQmSSExA5XdOoRb6I7tr5BERyqC6zFhnNI606CGmKKHfU2 wW7H2oF6wSDuriDYVVIgR91y8IiSKZTKhoJmb8F/WxQYrtDBZFbIRuIUU /JLxuykDXWLv5LjrgNDQYAJ0cF7pYnjxzpzXmZMdzOWdwc/lWvNjNRfR+ 7b6Zw1y0fwos/7EsbwvyX59o7fViL4ZmE7tvymT92EveOCah5zfesuTex bpH6HU9MywP8rKQ6HeDRfA7PhjyhkQ7WUSPa8c1/8MBpQvQJbZE0Ps8hE +DwCuF8Vn9LO/UCOTe8KyKy4reZRFXWK3xS6ds9dy4Ts4AJLbqnr5F9Qy Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10365"; a="336247711" X-IronPort-AV: E=Sophos;i="5.91,268,1647327600"; d="scan'208";a="336247711" 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:46:41 -0700 X-IronPort-AV: E=Sophos;i="5.91,268,1647327600"; d="scan'208";a="606273149" 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:46:37 -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 v7 0/3] ethdev: introduce protocol type based header split Date: Wed, 1 Jun 2022 13:22:50 +0000 Message-Id: <20220601132253.955666-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