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 2AA1DA0524; Tue, 20 Apr 2021 03:26:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A8BC34155C; Tue, 20 Apr 2021 03:26:47 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 322DA41448 for ; Tue, 20 Apr 2021 03:26:46 +0200 (CEST) IronPort-SDR: M0WzUoenc1yViJdAIAu9YJVmgLd/C3+957sQUuA85J6Sm3o21r9ZeN0OPt2e39vOkjh18jRnIx aScAZFCfJUiA== X-IronPort-AV: E=McAfee;i="6200,9189,9959"; a="280751126" X-IronPort-AV: E=Sophos;i="5.82,235,1613462400"; d="scan'208";a="280751126" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2021 18:26:45 -0700 IronPort-SDR: vNE+BHRVwCUXiJpXnBp+osZg47G2zROrnvsW7Iv7N9kXfuYH+ApNOgL4k7mJGd154UO3wKYnkC ROHaSjciONuw== X-IronPort-AV: E=Sophos;i="5.82,235,1613462400"; d="scan'208";a="452332308" Received: from agrady-mobl.ger.corp.intel.com (HELO [10.213.224.96]) ([10.213.224.96]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2021 18:26:43 -0700 To: Chengchang Tang , dev@dpdk.org Cc: linuxarm@huawei.com, chas3@att.com, humin29@huawei.com References: <1618571071-5927-1-git-send-email-tangchengchang@huawei.com> From: Ferruh Yigit X-User: ferruhy Message-ID: <58a7abc3-0906-57f2-5fd3-7e875b6f4c1e@intel.com> Date: Tue, 20 Apr 2021 02:26:39 +0100 MIME-Version: 1.0 In-Reply-To: <1618571071-5927-1-git-send-email-tangchengchang@huawei.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [RFC 0/2] add Tx prepare support for bonding device 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 Sender: "dev" On 4/16/2021 12:04 PM, Chengchang Tang wrote: > This patch add Tx prepare for bonding device. > > Currently, the bonding driver has not implemented the callback of > rte_eth_tx_prepare function. Therefore, the TX prepare function of the > slave devices will never be invoked. When hardware offloading such as > CKSUM and TSO are enabled for some drivers, tx_prepare needs to be used > to adjust packets (for example, set correct pseudo packet headers). > Otherwise, related offloading fails and even packets are sent > incorrectly. Due to this limitation, the bonded device cannot use these > HW offloading in the Tx direction. > > Because packet sending algorithms are numerous and complex in bond PMD, > it is hard to design the callback for rte_eth_tx_prepare. In this patch, > the tx_prepare callback of bonding PMD is not implemented. Instead, > rte_eth_tx_prepare has been called in tx_burst callback. And a global > variable is introduced to control whether the bonded device need call > the rte_eth_tx_prepare. If upper-layer users need to use some TX > offloading that depend on tx_prepare , they should enable the preparation > function. In this way, the bonded device will call the rte_eth_tx_prepare > for the fast path packets in the tx_burst callback. > What do you think to add a devarg to bonding PMD to control the tx_prepare? It won't be as dynamic as API, since it can be possible to change the behavior after application is started with API, but do we really need this? > Chengchang Tang (2): > net/bonding: add Tx prepare for bonding > app/testpmd: add cmd for bonding Tx prepare > > app/test-pmd/cmdline.c | 66 +++++++++++++++++++++++++++++ > doc/guides/testpmd_app_ug/testpmd_funcs.rst | 9 ++++ > drivers/net/bonding/eth_bond_private.h | 1 + > drivers/net/bonding/rte_eth_bond.h | 29 +++++++++++++ > drivers/net/bonding/rte_eth_bond_api.c | 28 ++++++++++++ > drivers/net/bonding/rte_eth_bond_pmd.c | 33 +++++++++++++-- > drivers/net/bonding/version.map | 5 +++ > 7 files changed, 167 insertions(+), 4 deletions(-) > > -- > 2.7.4 >