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 A27C6A0032 for ; Sun, 14 Nov 2021 14:12:02 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7E45540040; Sun, 14 Nov 2021 14:12:01 +0100 (CET) Received: from relay.smtp-ext.broadcom.com (lpdvacalvio01.broadcom.com [192.19.166.228]) by mails.dpdk.org (Postfix) with ESMTP id 68E2940040 for ; Sun, 14 Nov 2021 14:12:00 +0100 (CET) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id EF99CEA for ; Sun, 14 Nov 2021 05:11:58 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com EF99CEA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1636895519; bh=0VzSpxwa32wfx6sTi2HK+snEZQxe8tVWUo16axUty3o=; h=From:To:Subject:Date:From; b=bBqkc/z0Fvxb0kKyra2SowZWXv+JDCLsvOwsL2kOYQTswiPw+WWOMt54t2ORfjYhB KNi7l5WAHpjpqhDqxfNPs1JH+KpfL4eaB9qI2ssTTkrSG/+wvIH+97mmP4iNkqwLzK 2akUdltXvQGKgClh/8Rnvd5fcH72BtSVDmkLyC9s= From: Kalesh A P To: stable@dpdk.org Subject: [PATCH 20.11] net/bnxt: fix VLAN indication in Rx mbuf Date: Sun, 14 Nov 2021 19:01:45 +0530 Message-Id: <20211114133145.24678-1-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 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 From: Kalesh AP [ upstream commit 620e0290d14cc9a1126ef1af4eaa71ef9eadca72 ] Fix to ignore the RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN when the firmware doesn't support the VLAN strip offload. Fixes: 2eb53b134aae ("net/bnxt: add initial Rx code") Signed-off-by: Kalesh AP Reviewed-by: Somnath Kotur Reviewed-by: Lance Richardson Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt.h | 1 + drivers/net/bnxt/bnxt_rxr.c | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index c8c6dc4..9a54305 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -721,6 +721,7 @@ struct bnxt { #define BNXT_VNIC_CAP_COS_CLASSIFY BIT(0) #define BNXT_VNIC_CAP_OUTER_RSS BIT(1) #define BNXT_VNIC_CAP_VLAN_RX_STRIP BIT(3) +#define BNXT_RX_VLAN_STRIP_EN(bp) ((bp)->vnic_cap_flags & BNXT_VNIC_CAP_VLAN_RX_STRIP) unsigned int rx_nr_rings; unsigned int rx_cp_nr_rings; unsigned int rx_num_qs_per_vnic; diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c index c1893bb..67181b0 100644 --- a/drivers/net/bnxt/bnxt_rxr.c +++ b/drivers/net/bnxt/bnxt_rxr.c @@ -214,8 +214,9 @@ static void bnxt_tpa_start(struct bnxt_rx_queue *rxq, mbuf->hash.fdir.id = rte_le_to_cpu_16(tpa_start1->cfa_code); mbuf->ol_flags |= PKT_RX_FDIR | PKT_RX_FDIR_ID; } - if (tpa_start1->flags2 & - rte_cpu_to_le_32(RX_TPA_START_CMPL_FLAGS2_META_FORMAT_VLAN)) { + if ((tpa_start1->flags2 & + rte_cpu_to_le_32(RX_TPA_START_CMPL_FLAGS2_META_FORMAT_VLAN)) && + BNXT_RX_VLAN_STRIP_EN(rxq->bp)) { mbuf->vlan_tci = rte_le_to_cpu_32(tpa_start1->metadata); mbuf->ol_flags |= PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED; } @@ -515,8 +516,10 @@ bnxt_init_ol_flags_tables(struct bnxt_rx_queue *rxq) for (i = 0; i < BNXT_OL_FLAGS_TBL_DIM; i++) { pt[i] = 0; - if (i & RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN) - pt[i] |= PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED; + if (BNXT_RX_VLAN_STRIP_EN(rxq->bp)) { + if (i & RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN) + pt[i] |= PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED; + } if (i & (RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC << 3)) { /* Tunnel case. */ -- 2.10.1