From patchwork Fri Aug 28 05:01:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 76118 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 723CDA04B1; Fri, 28 Aug 2020 06:46:27 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2B6391BFF8; Fri, 28 Aug 2020 06:46:19 +0200 (CEST) Received: from relay.smtp.broadcom.com (relay.smtp.broadcom.com [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 0376D1B951 for ; Fri, 28 Aug 2020 06:46:15 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id BFE4D29D61D; Thu, 27 Aug 2020 21:46:14 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com BFE4D29D61D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1598589975; bh=Ch3WekUgsYTLBbHszxKrRr6rm6NYiZSwDyxtIBNLMM4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MOLxELgMMochble2bZDgoFRJGjjCkftaORMS36AJdI05DUZownbNpUaR/fPciCwkj WweiFcEpiDP578jg4TPeeYmQOmIrgo6khaDu3pDPacO1wcHdPMrL0BOjkHhxJ4opU2 YXeEg764eeXaLAWbFQjp77J0+FaZI6bEHpDM/Zx0= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Fri, 28 Aug 2020 10:31:07 +0530 Message-Id: <20200828050112.19482-2-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> References: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 1/6] net/bnxt: fix endianness while setting L4 destination port X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Kalesh AP Use "req.tunnel_dst_port_val" in bnxt_hwrm_tunnel_dst_port_alloc() as big endian since hwrm spec mandates this field in network byte order. Also, fixed the endianness while parsing the command output. Fixes: 10d074b2022d ("net/bnxt: support tunneling") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Ajit Kumar Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_hwrm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 8296d1d..49d81dd 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -3598,17 +3598,19 @@ int bnxt_hwrm_tunnel_dst_port_alloc(struct bnxt *bp, uint16_t port, HWRM_PREP(&req, HWRM_TUNNEL_DST_PORT_ALLOC, BNXT_USE_CHIMP_MB); req.tunnel_type = tunnel_type; - req.tunnel_dst_port_val = port; + req.tunnel_dst_port_val = rte_cpu_to_be_16(port); rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB); HWRM_CHECK_RESULT(); switch (tunnel_type) { case HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_VXLAN: - bp->vxlan_fw_dst_port_id = resp->tunnel_dst_port_id; + bp->vxlan_fw_dst_port_id = + rte_le_to_cpu_16(resp->tunnel_dst_port_id); bp->vxlan_port = port; break; case HWRM_TUNNEL_DST_PORT_ALLOC_INPUT_TUNNEL_TYPE_GENEVE: - bp->geneve_fw_dst_port_id = resp->tunnel_dst_port_id; + bp->geneve_fw_dst_port_id = + rte_le_to_cpu_16(resp->tunnel_dst_port_id); bp->geneve_port = port; break; default: From patchwork Fri Aug 28 05:01:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 76119 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 88376A04B1; Fri, 28 Aug 2020 06:46:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 722361C065; Fri, 28 Aug 2020 06:46:20 +0200 (CEST) Received: from relay.smtp.broadcom.com (relay.smtp.broadcom.com [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 5D9431BEC3 for ; Fri, 28 Aug 2020 06:46:16 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 215DC29D641; Thu, 27 Aug 2020 21:46:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 215DC29D641 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1598589975; bh=p40TCXWrugLz9kfSgO/ik1aAZlDgrXvjYeOxxwLc8iM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IgGcM9Km8Qik+J7vXRFhnXpxUR12pmfmz95MWRV31Lylk5Pfle0uq6vAAHJcdOeGt BqfC8EJ74ZwRcnYhId/KsnMrNv2yuWI3funPq+gvc5uMDKs7mLBJ6PpgzNOBnwk12U laa3KTxEeu5haa8rh8phTT7FHFtFVBSZ5wHu/iGI= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Fri, 28 Aug 2020 10:31:08 +0530 Message-Id: <20200828050112.19482-3-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> References: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 2/6] net/bnxt: fix LRO configuration X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Venkat Duvvuru The maximum number of TCP segments that can be aggregated & the maximum number of aggregations the VNIC supports are configured incorrectly during LRO configuration. This patch fixes these values. Fixes: b150a7e7ee66 ("net/bnxt: support LRO on Thor adapters") Cc: stable@dpdk.org Signed-off-by: Venkat Duvvuru Reviewed-by: Kalesh Anakkur Purayil Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_hwrm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 49d81dd..4f70d93 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -2242,8 +2242,8 @@ int bnxt_hwrm_vnic_tpa_cfg(struct bnxt *bp, HWRM_VNIC_TPA_CFG_INPUT_FLAGS_GRO | HWRM_VNIC_TPA_CFG_INPUT_FLAGS_AGG_WITH_ECN | HWRM_VNIC_TPA_CFG_INPUT_FLAGS_AGG_WITH_SAME_GRE_SEQ); - req.max_agg_segs = rte_cpu_to_le_16(BNXT_TPA_MAX_AGGS(bp)); - req.max_aggs = rte_cpu_to_le_16(BNXT_TPA_MAX_SEGS(bp)); + req.max_aggs = rte_cpu_to_le_16(BNXT_TPA_MAX_AGGS(bp)); + req.max_agg_segs = rte_cpu_to_le_16(BNXT_TPA_MAX_SEGS(bp)); req.min_agg_len = rte_cpu_to_le_32(512); } req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id); From patchwork Fri Aug 28 05:01:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 76120 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 98728A04B1; Fri, 28 Aug 2020 06:46:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DF8AB1C0AE; Fri, 28 Aug 2020 06:46:21 +0200 (CEST) Received: from relay.smtp.broadcom.com (unknown [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id B47B51F1C for ; Fri, 28 Aug 2020 06:46:16 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 8021829D651; Thu, 27 Aug 2020 21:46:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 8021829D651 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1598589975; bh=FEEFK0JOoeu/5st4LSjkksdKPPORz2IAVh93rW01AJU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fbytRd3OsQF1A8yZOTA+lFm3kuHTJUsu3kfvsqZbNydF6US/s6NRYXXsUIp5blC0O mN2+tijOMukXXBrRjnaB0zqF7M7dBUT4d1tmc95M2/wss2xfM4Oo2bp3XjpRhwmMjg dqxD5gTkYtiLlB1mABDbNd1YbIeiAxW8oacfqpLc= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Fri, 28 Aug 2020 10:31:09 +0530 Message-Id: <20200828050112.19482-4-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> References: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 3/6] net/bnxt: fix to initialize structure variable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Kalesh AP During port start if bnxt_alloc_all_hwrm_stat_ctxs() fails, in the cleanup path we do see errors like below: bnxt_hwrm_ring_free(): hwrm_ring_free cp failed. rc:2 bnxt_hwrm_ring_free(): hwrm_ring_free rx failed. rc:2 The reason for this is in bnxt_free_all_hwrm_rings(), the check is made against "ring->fw_ring_id != INVALID_HW_RING_ID" which always return true as ring->fw_ring_id is not set to INVALID_HW_RING_ID while initialising the ring structs. Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code") Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Lance Richardson Reviewed-by: Ajit Kumar Khaparde --- drivers/net/bnxt/bnxt_ring.c | 1 + drivers/net/bnxt/bnxt_rxr.c | 3 +++ drivers/net/bnxt/bnxt_txr.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c index 54f6547..8f2296b 100644 --- a/drivers/net/bnxt/bnxt_ring.c +++ b/drivers/net/bnxt/bnxt_ring.c @@ -451,6 +451,7 @@ int bnxt_alloc_rxtx_nq_ring(struct bnxt *bp) ring->ring_mask = ring->ring_size - 1; ring->vmem_size = 0; ring->vmem = NULL; + ring->fw_ring_id = INVALID_HW_RING_ID; nqr->cp_ring_struct = ring; rc = bnxt_alloc_rings(bp, 0, NULL, NULL, nqr, NULL, "l2_nqr"); diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c index 43b1256..b086898 100644 --- a/drivers/net/bnxt/bnxt_rxr.c +++ b/drivers/net/bnxt/bnxt_rxr.c @@ -962,6 +962,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id) ring->bd_dma = rxr->rx_desc_mapping; ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd); ring->vmem = (void **)&rxr->rx_buf_ring; + ring->fw_ring_id = INVALID_HW_RING_ID; cpr = rte_zmalloc_socket("bnxt_rx_ring", sizeof(struct bnxt_cp_ring_info), @@ -983,6 +984,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id) ring->bd_dma = cpr->cp_desc_mapping; ring->vmem_size = 0; ring->vmem = NULL; + ring->fw_ring_id = INVALID_HW_RING_ID; /* Allocate Aggregator rings */ ring = rte_zmalloc_socket("bnxt_rx_ring_struct", @@ -998,6 +1000,7 @@ int bnxt_init_rx_ring_struct(struct bnxt_rx_queue *rxq, unsigned int socket_id) ring->bd_dma = rxr->ag_desc_mapping; ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_rx_bd); ring->vmem = (void **)&rxr->ag_buf_ring; + ring->fw_ring_id = INVALID_HW_RING_ID; return 0; } diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c index c7a2de6..2068331 100644 --- a/drivers/net/bnxt/bnxt_txr.c +++ b/drivers/net/bnxt/bnxt_txr.c @@ -78,6 +78,7 @@ int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id) ring->bd_dma = txr->tx_desc_mapping; ring->vmem_size = ring->ring_size * sizeof(struct bnxt_sw_tx_bd); ring->vmem = (void **)&txr->tx_buf_ring; + ring->fw_ring_id = INVALID_HW_RING_ID; cpr = rte_zmalloc_socket("bnxt_tx_ring", sizeof(struct bnxt_cp_ring_info), @@ -98,6 +99,7 @@ int bnxt_init_tx_ring_struct(struct bnxt_tx_queue *txq, unsigned int socket_id) ring->bd_dma = cpr->cp_desc_mapping; ring->vmem_size = 0; ring->vmem = NULL; + ring->fw_ring_id = INVALID_HW_RING_ID; return 0; } From patchwork Fri Aug 28 05:01:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 76121 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BD7BDA04B1; Fri, 28 Aug 2020 06:46:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3D3D31C0B5; Fri, 28 Aug 2020 06:46:23 +0200 (CEST) Received: from relay.smtp.broadcom.com (unknown [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 154781B951 for ; Fri, 28 Aug 2020 06:46:17 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id D585E29D667; Thu, 27 Aug 2020 21:46:15 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com D585E29D667 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1598589976; bh=HifoKGeWH5gdaqvCmBbcvaFpitSxLG/hFEir2u/wobg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D6qNnSWGyvg5ObjiiJ+lDISxvA40IEy4RMGgSBd7VxRMpIR+EHZx7hjksfoEEz/7Y l+t1ID/dasGIr3eBV34N8nk/nAlVzt2mGHN2QZMvXWP2ruvmbxS0DCheEHVRv6Zb0V Y0D7H+r2h8UQYraIjD8JVsfeG7AmiFNUmpZxJ9Zk= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Fri, 28 Aug 2020 10:31:10 +0530 Message-Id: <20200828050112.19482-5-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> References: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 4/6] net/bnxt: fix a possible segfault in vector mode Tx path X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Kalesh AP rte_pktmbuf_prefree_seg() can return NULL if the mbuf still has remaining references on it. Adding a NULL check to prevent segfault. Fixes: bc4a000f2f53 ("net/bnxt: implement SSE vector mode") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Lance Richardson Reviewed-by: Ajit Kumar Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 2 ++ drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c index 488a0b4..bf76c2a 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c @@ -329,6 +329,8 @@ bnxt_tx_cmp_vec(struct bnxt_tx_queue *txq, int nr_pkts) tx_buf = &txr->tx_buf_ring[cons]; cons = RING_NEXT(txr->tx_ring_struct, cons); mbuf = rte_pktmbuf_prefree_seg(tx_buf->mbuf); + if (unlikely(mbuf == NULL)) + continue; tx_buf->mbuf = NULL; if (blk && mbuf->pool != free[0]->pool) { diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c index c4ca5cf..98220bc 100644 --- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c +++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c @@ -334,6 +334,8 @@ bnxt_tx_cmp_vec(struct bnxt_tx_queue *txq, int nr_pkts) tx_buf = &txr->tx_buf_ring[cons]; cons = RING_NEXT(txr->tx_ring_struct, cons); mbuf = rte_pktmbuf_prefree_seg(tx_buf->mbuf); + if (unlikely(mbuf == NULL)) + continue; tx_buf->mbuf = NULL; if (blk && mbuf->pool != free[0]->pool) { From patchwork Fri Aug 28 05:01:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 76122 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A5FD1A04B1; Fri, 28 Aug 2020 06:46:58 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 919351C0BD; Fri, 28 Aug 2020 06:46:24 +0200 (CEST) Received: from relay.smtp.broadcom.com (relay.smtp.broadcom.com [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 676991BFD7 for ; Fri, 28 Aug 2020 06:46:17 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 368B129D5CC; Thu, 27 Aug 2020 21:46:16 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 368B129D5CC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1598589976; bh=u7eHkrGRyrsvTh7uA1L6W6HQF/vczS/Twgx071wFwB4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I2TKaMfjt6jb+dE27T3JSGRAtoRQxriRLWwzCRnwbtC5c2nJoZmlE7rbV/nn/KjjG w57QvsdPb4aYUfxWx98x4X9J5JIVkDLkRedNT8Gvs9yykE5D2shxCq5epkRC6jfdDU y/ionsaubEYLxo5d1pFRITPZA0JcENfWgFemgT9A= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Fri, 28 Aug 2020 10:31:11 +0530 Message-Id: <20200828050112.19482-6-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> References: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 5/6] net/bnxt: fix L2 filter alloc X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Kalesh AP DPDK does not support RoCE and XDP. The driver should set the bit 5:4 of the flag to 1 and set bit 6 of the flag in the HWRM_CFA_L2_FILTER_ALLOC command to disable RoCE and XDP features. This change will greatly reduce the CFA resource consumption. Fixes: f92735db1e4c ("net/bnxt: add L2 filter alloc/init/free") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Venkat Duvvuru Reviewed-by: Somnath Kotur Reviewed-by: Ajit Kumar Khaparde --- drivers/net/bnxt/bnxt_hwrm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 4f70d93..32fe24c 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -530,6 +530,9 @@ int bnxt_hwrm_set_l2_filter(struct bnxt *bp, HWRM_PREP(&req, HWRM_CFA_L2_FILTER_ALLOC, BNXT_USE_CHIMP_MB); + /* PMD does not support XDP and RoCE */ + filter->flags |= HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_XDP_DISABLE | + HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_TRAFFIC_L2; req.flags = rte_cpu_to_le_32(filter->flags); enables = filter->enables | From patchwork Fri Aug 28 05:01:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 76123 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 62CE3A04B1; Fri, 28 Aug 2020 06:47:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C31FE1C0C2; Fri, 28 Aug 2020 06:46:25 +0200 (CEST) Received: from relay.smtp.broadcom.com (unknown [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id C6C8A1B951 for ; Fri, 28 Aug 2020 06:46:17 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 9554F29D66B; Thu, 27 Aug 2020 21:46:16 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 9554F29D66B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1598589976; bh=D6QC33I9JtBtwB7csEUIdO7BlR3RSCN9Fp7deVpwMUA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=itkLEczwvEnwXlVS6iDF7DmgW987wowXXsl5Cmf5MDCU0do3/8tqQj2xZ4AXCQ6lp 02aUkLryUlNb6h0brR7skKx+aeo8sUXmVcPmV7HlE5vJun6f1INXIG9sC8S/DAPjYy olrmi6NzupElG/WdGwswOjpD8J89Bc6nDwjiBy48= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Fri, 28 Aug 2020 10:31:12 +0530 Message-Id: <20200828050112.19482-7-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> References: <20200828050112.19482-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 6/6] net/bnxt: fix speed setting on BCM957508-N2100 adapters X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" From: Kalesh AP On BCM957508-N2100 adapters, FW will not allow any user other than BMC to shutdown the port. As a result, bnxt_get_hwrm_link_config() always returns link up. Because of this, driver will not update the new port configurations such as speed, autoneg during a port start. Fixed the condition to invoke bnxt_set_hwrm_link_config() in bnxt_init_chip(). Fixes: 7bc8e9a227cc ("net/bnxt: support async link notification") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Ajit Kumar Khaparde --- drivers/net/bnxt/bnxt.h | 4 ++++ drivers/net/bnxt/bnxt_ethdev.c | 44 ++++++++++++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index f4b2a3f..a38fe8c 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -81,6 +81,10 @@ #define BROADCOM_DEV_ID_58808 0x16f0 #define BROADCOM_DEV_ID_58802_VF 0xd800 +#define BROADCOM_DEV_957508_N2100 0x5208 +#define IS_BNXT_DEV_957508_N2100(bp) \ + ((bp)->pdev->id.subsystem_device_id == BROADCOM_DEV_957508_N2100) + #define BNXT_MAX_MTU 9574 #define VLAN_TAG_SIZE 4 #define BNXT_NUM_VLANS 2 diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 510a0d9..0a038d4 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -605,9 +605,35 @@ static int bnxt_init_ctx_mem(struct bnxt *bp) return rc; } -static int bnxt_init_chip(struct bnxt *bp) +static int bnxt_update_phy_setting(struct bnxt *bp) { struct rte_eth_link new; + int rc; + + rc = bnxt_get_hwrm_link_config(bp, &new); + if (rc) { + PMD_DRV_LOG(ERR, "Failed to get link settings\n"); + return rc; + } + + /* + * On BCM957508-N2100 adapters, FW will not allow any user other + * than BMC to shutdown the port. bnxt_get_hwrm_link_config() call + * always returns link up. Force phy update always in that case. + */ + if (!new.link_status || IS_BNXT_DEV_957508_N2100(bp)) { + rc = bnxt_set_hwrm_link_config(bp, true); + if (rc) { + PMD_DRV_LOG(ERR, "Failed to update PHY settings\n"); + return rc; + } + } + + return rc; +} + +static int bnxt_init_chip(struct bnxt *bp) +{ struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(bp->eth_dev); struct rte_intr_handle *intr_handle = &pci_dev->intr_handle; uint32_t intr_vector = 0; @@ -737,21 +763,9 @@ static int bnxt_init_chip(struct bnxt *bp) goto err_free; #endif - rc = bnxt_get_hwrm_link_config(bp, &new); - if (rc) { - PMD_DRV_LOG(ERR, "HWRM Get link config failure rc: %x\n", rc); + rc = bnxt_update_phy_setting(bp); + if (rc) goto err_free; - } - - if (!bp->link_info->link_up) { - rc = bnxt_set_hwrm_link_config(bp, true); - if (rc) { - PMD_DRV_LOG(ERR, - "HWRM link config failure rc: %x\n", rc); - goto err_free; - } - } - bnxt_print_link_info(bp->eth_dev); bp->mark_table = rte_zmalloc("bnxt_mark_table", BNXT_MARK_TABLE_SZ, 0); if (!bp->mark_table)