net/octeontx2: fix VLAN filter
authorSatheesh Paul <psatheesh@marvell.com>
Tue, 9 Feb 2021 10:01:13 +0000 (15:31 +0530)
committerJerin Jacob <jerinj@marvell.com>
Mon, 8 Mar 2021 13:31:22 +0000 (14:31 +0100)
This patch fixes incorrect MCAM key preparation when creating
MCAM entry to allow VLAN IDs after vlan filtering is enabled on port.

Fixes: ba1b3b081edf ("net/octeontx2: support VLAN offloads")
Cc: stable@dpdk.org
Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
drivers/net/octeontx2/otx2_vlan.c

index 7357b06..f5161e1 100644 (file)
@@ -306,12 +306,12 @@ nix_vlan_mcam_config(struct rte_eth_dev *eth_dev,
                        (0xF & ~(NPC_LT_LB_CTAG ^ NPC_LT_LB_STAG_QINQ))
                                                        << mkex->lb_lt_offset;
 
-               mcam_data = ((uint32_t)vlan_id << 16);
-               mcam_mask = (BIT_ULL(16) - 1) << 16;
+               mcam_data = (uint16_t)vlan_id;
+               mcam_mask = (BIT_ULL(16) - 1);
                otx2_mbox_memcpy(key_data + mkex->lb_xtract.key_off,
-                                    &mcam_data, mkex->lb_xtract.len + 1);
+                                    &mcam_data, mkex->lb_xtract.len);
                otx2_mbox_memcpy(key_mask + mkex->lb_xtract.key_off,
-                                    &mcam_mask, mkex->lb_xtract.len + 1);
+                                    &mcam_mask, mkex->lb_xtract.len);
        }
 
        /* Adds LB STAG flag to MCAM KW */