common/cnxk: fix flow deletion

When a flow is deleted, the counters are deleted without
being cleared first. This results in counter values being
retained and shown in flows created later. Hence, counter
is cleared before being deleted.

Updated driver to clear and delete counters upon flow deletion.

Fixes: a07f7ced436d ("common/cnxk: add NPC init and fini")
Cc: stable@dpdk.org

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Reviewed-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
Satheesh Paul 2022-01-25 09:45:26 +05:30 committed by Jerin Jacob
parent 9132292e99
commit 40257b81b8

View File

@ -1259,6 +1259,16 @@ roc_npc_flow_destroy(struct roc_npc *roc_npc, struct roc_npc_flow *flow)
return rc;
}
if (flow->ctr_id != NPC_COUNTER_NONE) {
rc = roc_npc_mcam_clear_counter(roc_npc, flow->ctr_id);
if (rc != 0)
return rc;
rc = npc_mcam_free_counter(npc, flow->ctr_id);
if (rc != 0)
return rc;
}
rc = npc_mcam_free_entry(npc, flow->mcam_id);
if (rc != 0)
return rc;