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 3F7E5A0032; Thu, 1 Sep 2022 16:46:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C50A240C35; Thu, 1 Sep 2022 16:46:10 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 65C1140695 for ; Thu, 1 Sep 2022 16:46:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662043569; x=1693579569; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rHsnY6LpaMgJJEyam0L2/iDwEslOPsQO/XF3Hq+PGAc=; b=VCb4PRDULi57a1yt2K9IyjWm3UwFyar1xiczSpNDQni4+9xkiOuH5D0e MewpvnyQHLZtPWrFGQ/ko0hbSxRN9ndh6ma916MXMcCZMah/UJhSQHez9 BOoJMwv3YsHhSNBjyvGBX2eP0Gqi7/TccQeIZr4pnR4uVtrGNxtRls0RD PO8XFZr4rkLt4TWFn7J3Q8qnIgHgqv/2midgJ2SQtZBNwy37MxTtfrmZl TGjhWy268Mte5UufSTU4ac+6Au9ff5SzFgKb/5g8jrsVdW373n/vESKDS FgeRxtsCgornDZMG0TMMhtL7TsYxNv+0LYM8qcXqRcshZZPY7h93PGLMM A==; X-IronPort-AV: E=McAfee;i="6500,9779,10457"; a="294472870" X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="294472870" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 07:46:08 -0700 X-IronPort-AV: E=Sophos;i="5.93,281,1654585200"; d="scan'208";a="608573894" Received: from unknown (HELO localhost.localdomain) ([10.239.252.55]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2022 07:46:03 -0700 From: Yuan Wang To: thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru, xiaoyun.li@intel.com, ferruh.yigit@xilinx.com, aman.deep.singh@intel.com, yuying.zhang@intel.com, qi.z.zhang@intel.com, qiming.yang@intel.com, mdr@ashroe.eu Cc: jerinjacobk@gmail.com, viacheslavo@nvidia.com, stephen@networkplumber.org, xuan.ding@intel.com, dev@dpdk.org, hpothula@marvell.com, yaqi.tang@intel.com, Yuan Wang Subject: [PATCH v2 0/4] support protocol based buffer split Date: Fri, 2 Sep 2022 06:33:13 +0800 Message-Id: <20220901223313.515224-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: 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 | 123 +++++++++++++- 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/nics/features/ice.ini | 1 + doc/guides/rel_notes/release_22_11.rst | 14 ++ drivers/net/ice/ice_ethdev.c | 30 +++- 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/ethdev_driver.h | 15 ++ lib/ethdev/rte_ethdev.c | 88 ++++++++-- lib/ethdev/rte_ethdev.h | 41 ++++- lib/ethdev/version.map | 3 + 15 files changed, 600 insertions(+), 48 deletions(-) -- 2.25.1