[2/2] common/cnxk: fix QINQ ROC item mismatch issue
Checks
Commit Message
From: Satheesh Paul <psatheesh@marvell.com>
ROC code is assuming presence of vlan extension headers in
case of QINQ, because of this, there is incompatibility
between the driver and ROC. Fixed this issue.
Fixes: 4edf1246a40 ("common/cnxk: support matching VLAN existence in RTE Flow")
Cc: stable@dpdk.org
Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
---
drivers/common/cnxk/roc_npc_parse.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
@@ -337,15 +337,10 @@ npc_parse_lb(struct npc_parse_state *pst)
}
info.len = pattern->size;
} else if (pst->pattern->type == ROC_NPC_ITEM_TYPE_QINQ) {
- vlan_item[0] = pst->pattern->spec;
info.hw_mask = NULL;
- info.len = sizeof(vlan_item[0]->hdr);
+ info.len = pattern->size;
lt = NPC_LT_LB_STAG_QINQ;
lflags = NPC_F_STAG_CTAG;
- if (vlan_item[0] && vlan_item[0]->has_more_vlan) {
- lflags = NPC_F_LB_L_WITH_QINQ_CTAG &
- NPC_F_LB_L_WITH_QINQ_QINQ;
- }
} else if (pst->pattern->type == ROC_NPC_ITEM_TYPE_RAW) {
raw_spec = pst->pattern->spec;
if (raw_spec->relative)