patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] common/cnxk: dump hardware flow MCAM entry data
@ 2022-05-13 11:04 psatheesh
  0 siblings, 0 replies; 2+ messages in thread
From: psatheesh @ 2022-05-13 11:04 UTC (permalink / raw)
  To: Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
  Cc: stable, Satheesh Paul

From: Satheesh Paul <psatheesh@marvell.com>

When dumping flow data, read hardware MCAM entry corresponding
to the flow and print that data also.

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Reviewed-by: Kiran Kumar Kokkilagadda <kirankumark@marvell.com>
---
 drivers/common/cnxk/roc_npc_mcam_dump.c | 26 ++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_npc_mcam_dump.c b/drivers/common/cnxk/roc_npc_mcam_dump.c
index 679e3d7657..2aaf3ccd0b 100644
--- a/drivers/common/cnxk/roc_npc_mcam_dump.c
+++ b/drivers/common/cnxk/roc_npc_mcam_dump.c
@@ -586,8 +586,10 @@ roc_npc_flow_mcam_dump(FILE *file, struct roc_npc *roc_npc,
 		       struct roc_npc_flow *flow)
 {
 	struct npc *npc = roc_npc_to_npc_priv(roc_npc);
+	struct npc_mcam_read_entry_req *mcam_read_req;
+	struct npc_mcam_read_entry_rsp *mcam_read_rsp;
 	bool is_rx = 0;
-	int i;
+	int i, rc = 0;
 
 	fprintf(file, "MCAM Index:%d\n", flow->mcam_id);
 	fprintf(file, "Interface :%s (%d)\n", intf_str[flow->nix_intf],
@@ -609,5 +611,27 @@ roc_npc_flow_mcam_dump(FILE *file, struct roc_npc *roc_npc,
 		fprintf(file, "\tDW%d_Mask:%016lX\n", i, flow->mcam_mask[i]);
 	}
 
+	mcam_read_req = mbox_alloc_msg_npc_mcam_read_entry(npc->mbox);
+	if (mcam_read_req == NULL) {
+		plt_err("Failed to alloc msg");
+		return;
+	}
+
+	mcam_read_req->entry = flow->mcam_id;
+	rc = mbox_process_msg(npc->mbox, (void *)&mcam_read_rsp);
+	if (rc) {
+		plt_err("Failed to fetch MCAM entry");
+		return;
+	}
+
+	fprintf(file, "HW MCAM Data :\n");
+
+	for (i = 0; i < ROC_NPC_MAX_MCAM_WIDTH_DWORDS; i++) {
+		fprintf(file, "\tDW%d     :%016lX\n", i,
+			mcam_read_rsp->entry_data.kw[i]);
+		fprintf(file, "\tDW%d_Mask:%016lX\n", i,
+			mcam_read_rsp->entry_data.kw_mask[i]);
+	}
+
 	fprintf(file, "\n");
 }
-- 
2.25.4


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [dpdk-dev] [PATCH] common/cnxk: dump hardware flow MCAM entry data
@ 2022-05-13  5:05 psatheesh
  0 siblings, 0 replies; 2+ messages in thread
From: psatheesh @ 2022-05-13  5:05 UTC (permalink / raw)
  To: Nithin Dabilpuram, Kiran Kumar K, Sunil Kumar Kori, Satha Rao
  Cc: stable, Satheesh Paul

From: Satheesh Paul <psatheesh@marvell.com>

When dumping flow data, read hardware MCAM entry corresponding
to the flow and print that data also.

Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Reviewed-by: Kiran Kumar Kokkilagadda <kirankumark@marvell.com>
---
 drivers/common/cnxk/roc_npc_mcam_dump.c | 26 ++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_npc_mcam_dump.c b/drivers/common/cnxk/roc_npc_mcam_dump.c
index 679e3d7657..2aaf3ccd0b 100644
--- a/drivers/common/cnxk/roc_npc_mcam_dump.c
+++ b/drivers/common/cnxk/roc_npc_mcam_dump.c
@@ -586,8 +586,10 @@ roc_npc_flow_mcam_dump(FILE *file, struct roc_npc *roc_npc,
 		       struct roc_npc_flow *flow)
 {
 	struct npc *npc = roc_npc_to_npc_priv(roc_npc);
+	struct npc_mcam_read_entry_req *mcam_read_req;
+	struct npc_mcam_read_entry_rsp *mcam_read_rsp;
 	bool is_rx = 0;
-	int i;
+	int i, rc = 0;
 
 	fprintf(file, "MCAM Index:%d\n", flow->mcam_id);
 	fprintf(file, "Interface :%s (%d)\n", intf_str[flow->nix_intf],
@@ -609,5 +611,27 @@ roc_npc_flow_mcam_dump(FILE *file, struct roc_npc *roc_npc,
 		fprintf(file, "\tDW%d_Mask:%016lX\n", i, flow->mcam_mask[i]);
 	}
 
+	mcam_read_req = mbox_alloc_msg_npc_mcam_read_entry(npc->mbox);
+	if (mcam_read_req == NULL) {
+		plt_err("Failed to alloc msg");
+		return;
+	}
+
+	mcam_read_req->entry = flow->mcam_id;
+	rc = mbox_process_msg(npc->mbox, (void *)&mcam_read_rsp);
+	if (rc) {
+		plt_err("Failed to fetch MCAM entry");
+		return;
+	}
+
+	fprintf(file, "HW MCAM Data :\n");
+
+	for (i = 0; i < ROC_NPC_MAX_MCAM_WIDTH_DWORDS; i++) {
+		fprintf(file, "\tDW%d     :%016lX\n", i,
+			mcam_read_rsp->entry_data.kw[i]);
+		fprintf(file, "\tDW%d_Mask:%016lX\n", i,
+			mcam_read_rsp->entry_data.kw_mask[i]);
+	}
+
 	fprintf(file, "\n");
 }
-- 
2.25.4


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-05-13 11:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-13 11:04 [dpdk-dev] [PATCH] common/cnxk: dump hardware flow MCAM entry data psatheesh
  -- strict thread matches above, loose matches on Subject: below --
2022-05-13  5:05 psatheesh

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://inbox.dpdk.org/stable/0 stable/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 stable stable/ http://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git