From: Kiran Kumar K <kirankum...@marvell.com> While configuring ipv6 flow, ipv6 ext ltype should be matched along with ipv6. Adding changes to fix this issue.
Fixes: 474e275b1bc6 ("common/cnxk: support extensions attributes in IPv6 item") Cc: sta...@dpdk.org Signed-off-by: Kiran Kumar K <kirankum...@marvell.com> Reviewed-by: Satheesh Paul <psathe...@marvell.com> --- drivers/common/cnxk/roc_npc_mcam.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/common/cnxk/roc_npc_mcam.c b/drivers/common/cnxk/roc_npc_mcam.c index c419ce3a4c..0abd8872b1 100644 --- a/drivers/common/cnxk/roc_npc_mcam.c +++ b/drivers/common/cnxk/roc_npc_mcam.c @@ -727,15 +727,16 @@ npc_set_ipv6ext_ltype_mask(struct npc_parse_state *pst) * because for AH and ESP, LC LFLAG is zero and we don't want to match * zero in LFLAG. */ - lcflag_offset = - __builtin_popcount(pst->npc->keyx_supp_nmask[pst->nix_intf] & - ((1ULL << NPC_LFLAG_LC_OFFSET) - 1)); - lcflag_offset *= 4; - - mask = (0xfULL << lcflag_offset); - val = pst->flow->mcam_data[0] & mask; - if (val) - pst->flow->mcam_mask[0] |= mask; + if (pst->npc->keyx_supp_nmask[pst->nix_intf] & (1ULL << NPC_LFLAG_LC_OFFSET)) { + lcflag_offset = __builtin_popcount(pst->npc->keyx_supp_nmask[pst->nix_intf] & + ((1ULL << NPC_LFLAG_LC_OFFSET) - 1)); + lcflag_offset *= 4; + + mask = (0xfULL << lcflag_offset); + val = pst->flow->mcam_data[0] & mask; + if (val) + pst->flow->mcam_mask[0] |= mask; + } } int -- 2.35.3