net/octeontx2: fix vlan filter on port

Message ID 20210209100113.2493325-1-psatheesh@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series net/octeontx2: fix vlan filter on port |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/travis-robot warning Travis build: failed
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-testing warning Testing issues
ci/iol-intel-Performance success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Satheesh Paul Antonysamy Feb. 9, 2021, 10:01 a.m. UTC
  From: Satheesh Paul <psatheesh@marvell.com>

This patch fixes incorrect MCAM key preparation when creating
MCAM entry to allow VLAN IDs after vlan filtering is enabled on port.

Fixes: ba1b3b081e ("net/octeontx2: support VLAN offloads")
Cc: stable@dpdk.org

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
---
 drivers/net/octeontx2/otx2_vlan.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Jerin Jacob March 8, 2021, 1:34 p.m. UTC | #1
On Tue, Feb 9, 2021 at 3:31 PM <psatheesh@marvell.com> wrote:
>
> From: Satheesh Paul <psatheesh@marvell.com>
>
> This patch fixes incorrect MCAM key preparation when creating
> MCAM entry to allow VLAN IDs after vlan filtering is enabled on port.
>
> Fixes: ba1b3b081e ("net/octeontx2: support VLAN offloads")
> Cc: stable@dpdk.org
>


Changed vlan to VLAN in the subject.

Acked-by: Jerin Jacob <jerinj@marvell.com>
Applied to dpdk-next-net-mrvl/for-main. Thanks

> Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
> ---
>  drivers/net/octeontx2/otx2_vlan.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/octeontx2/otx2_vlan.c b/drivers/net/octeontx2/otx2_vlan.c
> index 7357b0669..f5161e17a 100644
> --- a/drivers/net/octeontx2/otx2_vlan.c
> +++ b/drivers/net/octeontx2/otx2_vlan.c
> @@ -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 */
> --
> 2.25.4
>
  

Patch

diff --git a/drivers/net/octeontx2/otx2_vlan.c b/drivers/net/octeontx2/otx2_vlan.c
index 7357b0669..f5161e17a 100644
--- a/drivers/net/octeontx2/otx2_vlan.c
+++ b/drivers/net/octeontx2/otx2_vlan.c
@@ -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 */