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 651BDA0555 for ; Wed, 25 May 2022 18:29:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6DD7A42B88; Wed, 25 May 2022 18:29:55 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 1E9994281C for ; Wed, 25 May 2022 18:29:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653496193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hhj6RF/JYy+zg8xkc3neWX2XeLLRe7bmzVJKKhgOFMY=; b=UnExRbEKSx8l0O+zNUYxBYfmy78+jDXCYyRkMBR1hcTFISd59IPuR+gdrChIlNn/Ue3Qk4 LNmO0SVtX2hFuE6mqf7qjl7cH6eePdeqmQl4mRIjkFwi2msKLTVP9NqU4CQnnhX6fO5Awu egPHJCIIKLgpgeUOiHucRr1vzI5pr6g= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-483-pVc6h5miMIGHNoqCl-aKpw-1; Wed, 25 May 2022 12:29:50 -0400 X-MC-Unique: pVc6h5miMIGHNoqCl-aKpw-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D59108001EA; Wed, 25 May 2022 16:29:49 +0000 (UTC) Received: from rh.Home (unknown [10.39.193.216]) by smtp.corp.redhat.com (Postfix) with ESMTP id 99C1A2026D64; Wed, 25 May 2022 16:29:48 +0000 (UTC) From: Kevin Traynor To: Kalesh AP Cc: Ajit Khaparde , Somnath Kotur , dpdk stable Subject: patch 'net/bnxt: fix device capability reporting' has been queued to stable release 21.11.2 Date: Wed, 25 May 2022 17:28:29 +0100 Message-Id: <20220525162847.711753-37-ktraynor@redhat.com> In-Reply-To: <20220525162847.711753-1-ktraynor@redhat.com> References: <20220525162847.711753-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 21.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/30/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/2f66d10615ef92010259dc343c9e11850d1be1c5 Thanks. Kevin --- >From 2f66d10615ef92010259dc343c9e11850d1be1c5 Mon Sep 17 00:00:00 2001 From: Kalesh AP Date: Wed, 27 Apr 2022 20:28:06 +0530 Subject: [PATCH] net/bnxt: fix device capability reporting [ upstream commit 47a956a8fecdc60e935cc9d9b81356cafb2910f0 ] 1. Added two functions bnxt_get_tx_port_offloads() and bnxt_get_rx_port_offloads() to report the device tx/rx offload capabilities to the application. 2. This avoids few duplicate code in the driver and make VF-rep capability the same as VF. 3. This will help in selectively reporting offload capabilities based on FW support. Fixes: 0a6d2a720078 ("net/bnxt: get device infos") Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt.h | 24 ------------------------ drivers/net/bnxt/bnxt_ethdev.c | 10 ++-------- drivers/net/bnxt/bnxt_reps.c | 6 ++---- drivers/net/bnxt/bnxt_rxq.c | 25 +++++++++++++++++++++++++ drivers/net/bnxt/bnxt_rxq.h | 1 + drivers/net/bnxt/bnxt_txq.c | 23 +++++++++++++++++++++++ drivers/net/bnxt/bnxt_txq.h | 1 + 7 files changed, 54 insertions(+), 36 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 0cbb58b2cf..722d61e54b 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -581,28 +581,4 @@ struct bnxt_rep_info { RTE_ETH_RSS_LEVEL_MASK) -#define BNXT_DEV_TX_OFFLOAD_SUPPORT (RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | \ - RTE_ETH_TX_OFFLOAD_TCP_CKSUM | \ - RTE_ETH_TX_OFFLOAD_UDP_CKSUM | \ - RTE_ETH_TX_OFFLOAD_TCP_TSO | \ - RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | \ - RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | \ - RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | \ - RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | \ - RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | \ - RTE_ETH_TX_OFFLOAD_QINQ_INSERT | \ - RTE_ETH_TX_OFFLOAD_MULTI_SEGS) - -#define BNXT_DEV_RX_OFFLOAD_SUPPORT (RTE_ETH_RX_OFFLOAD_VLAN_FILTER | \ - RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | \ - RTE_ETH_RX_OFFLOAD_UDP_CKSUM | \ - RTE_ETH_RX_OFFLOAD_TCP_CKSUM | \ - RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | \ - RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM | \ - RTE_ETH_RX_OFFLOAD_KEEP_CRC | \ - RTE_ETH_RX_OFFLOAD_VLAN_EXTEND | \ - RTE_ETH_RX_OFFLOAD_TCP_LRO | \ - RTE_ETH_RX_OFFLOAD_SCATTER | \ - RTE_ETH_RX_OFFLOAD_RSS_HASH) - #define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 1d51865aac..e9e956c9d7 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -972,14 +972,8 @@ static int bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev, dev_info->max_rx_pktlen = BNXT_MAX_PKT_LEN; - dev_info->rx_offload_capa = BNXT_DEV_RX_OFFLOAD_SUPPORT; - if (bp->flags & BNXT_FLAG_PTP_SUPPORTED) - dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; - if (bp->vnic_cap_flags & BNXT_VNIC_CAP_VLAN_RX_STRIP) - dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_VLAN_STRIP; + dev_info->rx_offload_capa = bnxt_get_rx_port_offloads(bp); dev_info->tx_queue_offload_capa = RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE; - dev_info->tx_offload_capa = BNXT_DEV_TX_OFFLOAD_SUPPORT | + dev_info->tx_offload_capa = bnxt_get_tx_port_offloads(bp) | dev_info->tx_queue_offload_capa; - if (bp->fw_cap & BNXT_FW_CAP_VLAN_TX_INSERT) - dev_info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_VLAN_INSERT; dev_info->flow_type_rss_offloads = BNXT_ETH_RSS_SUPPORT; diff --git a/drivers/net/bnxt/bnxt_reps.c b/drivers/net/bnxt/bnxt_reps.c index b77cdeae96..299b4c24a8 100644 --- a/drivers/net/bnxt/bnxt_reps.c +++ b/drivers/net/bnxt/bnxt_reps.c @@ -569,8 +569,6 @@ int bnxt_rep_dev_info_get_op(struct rte_eth_dev *eth_dev, dev_info->max_rx_pktlen = BNXT_MAX_PKT_LEN; - dev_info->rx_offload_capa = BNXT_DEV_RX_OFFLOAD_SUPPORT; - if (parent_bp->flags & BNXT_FLAG_PTP_SUPPORTED) - dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; - dev_info->tx_offload_capa = BNXT_DEV_TX_OFFLOAD_SUPPORT; + dev_info->rx_offload_capa = bnxt_get_rx_port_offloads(parent_bp); + dev_info->tx_offload_capa = bnxt_get_tx_port_offloads(parent_bp); dev_info->flow_type_rss_offloads = BNXT_ETH_RSS_SUPPORT; diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index cd3bb1446f..0cfd0e588f 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -21,4 +21,29 @@ */ +uint64_t bnxt_get_rx_port_offloads(struct bnxt *bp) +{ + uint64_t rx_offload_capa; + + rx_offload_capa = RTE_ETH_RX_OFFLOAD_IPV4_CKSUM | + RTE_ETH_RX_OFFLOAD_UDP_CKSUM | + RTE_ETH_RX_OFFLOAD_TCP_CKSUM | + RTE_ETH_RX_OFFLOAD_KEEP_CRC | + RTE_ETH_RX_OFFLOAD_VLAN_FILTER | + RTE_ETH_RX_OFFLOAD_VLAN_EXTEND | + RTE_ETH_RX_OFFLOAD_TCP_LRO | + RTE_ETH_RX_OFFLOAD_SCATTER | + RTE_ETH_RX_OFFLOAD_RSS_HASH; + + rx_offload_capa |= RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM | + RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM; + + if (bp->flags & BNXT_FLAG_PTP_SUPPORTED) + rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; + if (bp->vnic_cap_flags & BNXT_VNIC_CAP_VLAN_RX_STRIP) + rx_offload_capa |= RTE_ETH_RX_OFFLOAD_VLAN_STRIP; + + return rx_offload_capa; +} + /* Determine whether the current configuration needs aggregation ring in HW. */ int bnxt_need_agg_ring(struct rte_eth_dev *eth_dev) diff --git a/drivers/net/bnxt/bnxt_rxq.h b/drivers/net/bnxt/bnxt_rxq.h index 0331c23810..287df8dff3 100644 --- a/drivers/net/bnxt/bnxt_rxq.h +++ b/drivers/net/bnxt/bnxt_rxq.h @@ -66,3 +66,4 @@ void bnxt_rx_queue_release_mbufs(struct bnxt_rx_queue *rxq); int bnxt_need_agg_ring(struct rte_eth_dev *eth_dev); void bnxt_free_rxq_mem(struct bnxt_rx_queue *rxq); +uint64_t bnxt_get_rx_port_offloads(struct bnxt *bp); #endif diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c index 72a55ea643..86073a505e 100644 --- a/drivers/net/bnxt/bnxt_txq.c +++ b/drivers/net/bnxt/bnxt_txq.c @@ -18,4 +18,27 @@ */ +uint64_t bnxt_get_tx_port_offloads(struct bnxt *bp) +{ + uint64_t tx_offload_capa; + + tx_offload_capa = RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | + RTE_ETH_TX_OFFLOAD_UDP_CKSUM | + RTE_ETH_TX_OFFLOAD_TCP_CKSUM | + RTE_ETH_TX_OFFLOAD_TCP_TSO | + RTE_ETH_TX_OFFLOAD_QINQ_INSERT | + RTE_ETH_TX_OFFLOAD_MULTI_SEGS; + + tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | + RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | + RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | + RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | + RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO; + + if (bp->fw_cap & BNXT_FW_CAP_VLAN_TX_INSERT) + tx_offload_capa |= RTE_ETH_TX_OFFLOAD_VLAN_INSERT; + + return tx_offload_capa; +} + void bnxt_free_txq_stats(struct bnxt_tx_queue *txq) { diff --git a/drivers/net/bnxt/bnxt_txq.h b/drivers/net/bnxt/bnxt_txq.h index 67fd4cbebb..f3a03812ad 100644 --- a/drivers/net/bnxt/bnxt_txq.h +++ b/drivers/net/bnxt/bnxt_txq.h @@ -44,3 +44,4 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev, unsigned int socket_id, const struct rte_eth_txconf *tx_conf); +uint64_t bnxt_get_tx_port_offloads(struct bnxt *bp); #endif -- 2.34.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-05-25 17:26:59.455968805 +0100 +++ 0037-net-bnxt-fix-device-capability-reporting.patch 2022-05-25 17:26:58.620828409 +0100 @@ -1 +1 @@ -From 47a956a8fecdc60e935cc9d9b81356cafb2910f0 Mon Sep 17 00:00:00 2001 +From 2f66d10615ef92010259dc343c9e11850d1be1c5 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 47a956a8fecdc60e935cc9d9b81356cafb2910f0 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -31 +32 @@ -index 44724a9dfe..5eddb4f000 100644 +index 0cbb58b2cf..722d61e54b 100644 @@ -64 +65 @@ -index 261fe0be56..fac3925469 100644 +index 1d51865aac..e9e956c9d7 100644 @@ -85 +86 @@ -index e773932681..8a5b777793 100644 +index b77cdeae96..299b4c24a8 100644 @@ -88 +89 @@ -@@ -568,8 +568,6 @@ int bnxt_rep_dev_info_get_op(struct rte_eth_dev *eth_dev, +@@ -569,8 +569,6 @@ int bnxt_rep_dev_info_get_op(struct rte_eth_dev *eth_dev,