From patchwork Sat Oct 1 21:05:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, YuanX" X-Patchwork-Id: 117240 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4C2F7A00C4; Sat, 1 Oct 2022 15:18:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D6BC0400D5; Sat, 1 Oct 2022 15:18:11 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id AF41E4003F for ; Sat, 1 Oct 2022 15:18: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=1664630289; x=1696166289; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nVTEC0AnCMGk2C1FXYo7kHInFT+YWwyvgfRCCJi8RFI=; b=Usl8puPfVHgXxX5GieqYjUoArgQWnwl4UUqXmTc2Mg9xvRK5JU2vgPvR jyV45hilCONnRNlz9dTx9wKm8XEQHacWqqg8mrB0NaPFh027Fcnih4+wG JLNSJWLEA+9se54ztkSePtzRDXIxk5PBvH5tvRcotV2iU0/0aZHt5zCls oQiddLZjXrs3q1/pL8IAYR8m7IndMtKRmqfov1P+7wrs4AoTYaHh76M91 s7sc+YFBJe6R17ppmtc4rUID4dAGGP6CJxoIOXODaEsearx9bUSAjvO1p 6EHZMSp1yTJEkqSLGhW4DtmKwGJfimnKZfydJfLJLGd5FgVTv+6i+jrMQ Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10487"; a="364222947" X-IronPort-AV: E=Sophos;i="5.93,361,1654585200"; d="scan'208";a="364222947" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Oct 2022 06:17:56 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10487"; a="798252510" X-IronPort-AV: E=Sophos;i="5.93,361,1654585200"; d="scan'208";a="798252510" Received: from unknown (HELO localhost.localdomain) ([10.239.252.55]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Oct 2022 06:17:51 -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 v7 0/4] support protocol based buffer split Date: Sun, 2 Oct 2022 05:05:17 +0800 Message-Id: <20221001210521.15955-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 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: v7: ice: Fix CI issue. 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 | 259 ++++++++++++++++++++++--- 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, 743 insertions(+), 48 deletions(-)