From: Satheesh Paul <psathe...@marvell.com>

Added code to clear and delete counters upon flow deletion.

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

Signed-off-by: Satheesh Paul <psathe...@marvell.com>
Reviewed-by: Jerin Jacob Kollanukkaran <jer...@marvell.com>
---
 drivers/common/cnxk/roc_npc.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c
index e3961bfbc6..df3016f538 100644
--- a/drivers/common/cnxk/roc_npc.c
+++ b/drivers/common/cnxk/roc_npc.c
@@ -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;
-- 
2.25.4

Reply via email to