patch 'net/dpaa2: fix error frame dump' has been queued to stable release 24.11.4
Kevin Traynor
ktraynor at redhat.com
Fri Oct 31 15:33:59 CET 2025
Hi,
FYI, your patch has been queued to stable release 24.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/05/25. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/98e50d81559c26e5d9e322f9059523cb7a014f25
Thanks.
Kevin
---
>From 98e50d81559c26e5d9e322f9059523cb7a014f25 Mon Sep 17 00:00:00 2001
From: Jun Yang <jun.yang at nxp.com>
Date: Thu, 16 Oct 2025 15:57:55 +0530
Subject: [PATCH] net/dpaa2: fix error frame dump
[ upstream commit f9465bdcef9db163190f05c9ba80b8b9a205c81b ]
Dump error frame payload according to mbuf format.
Meanwhile, support dumping parser result of error frame.
Fixes: 4690a6114ff6 ("net/dpaa2: enable error queues optionally")
Signed-off-by: Jun Yang <jun.yang at nxp.com>
---
drivers/net/dpaa2/dpaa2_rxtx.c | 38 ++++++++++++++++++++++++++++------
1 file changed, 32 insertions(+), 6 deletions(-)
diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index a88e83998e..e2c128e799 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -634,7 +634,9 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
struct qbman_pull_desc pulldesc;
struct rte_eth_dev_data *eth_data = dpaa2_q->eth_data;
- uint32_t lcore_id = rte_lcore_id();
+ uint32_t lcore_id = rte_lcore_id(), i = 0;
void *v_addr, *hw_annot_addr;
struct dpaa2_fas *fas;
+ struct rte_mbuf *mbuf;
+ char title[32];
if (unlikely(!DPAA2_PER_LCORE_DPIO)) {
@@ -692,11 +694,35 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
fas = hw_annot_addr;
- DPAA2_PMD_ERR("[%d] error packet on port[%d]:"
- " fd_off: %d, fd_err: %x, fas_status: %x",
- rte_lcore_id(), eth_data->port_id,
+ if (DPAA2_FD_GET_FORMAT(fd) == qbman_fd_sg)
+ mbuf = eth_sg_fd_to_mbuf(fd, eth_data->port_id);
+ else
+ mbuf = eth_fd_to_mbuf(fd, eth_data->port_id);
+
+ if (!dpaa2_print_parser_result) {
+ /** Don't print parse result twice.*/
+ dpaa2_print_parse_result(hw_annot_addr);
+ }
+
+ DPAA2_PMD_ERR("Err pkt on port[%d]:", eth_data->port_id);
+ DPAA2_PMD_ERR("FD offset: %d, FD err: %x, FAS status: %x",
DPAA2_GET_FD_OFFSET(fd), DPAA2_GET_FD_ERR(fd),
fas->status);
- rte_hexdump(stderr, "Error packet", v_addr,
- DPAA2_GET_FD_OFFSET(fd) + DPAA2_GET_FD_LEN(fd));
+
+ if (mbuf)
+ __rte_mbuf_sanity_check(mbuf, 1);
+ if (mbuf->nb_segs > 1) {
+ while (mbuf) {
+ sprintf(title, "Payload seg[%d]", i);
+ rte_hexdump(stderr, title,
+ (char *)mbuf->buf_addr + mbuf->data_off,
+ mbuf->data_len);
+ mbuf = mbuf->next;
+ i++;
+ }
+ } else {
+ rte_hexdump(stderr, "Payload",
+ (char *)mbuf->buf_addr + mbuf->data_off,
+ mbuf->data_len);
+ }
rte_pktmbuf_free(mbuf);
--
2.51.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-10-31 13:53:55.748891664 +0000
+++ 0117-net-dpaa2-fix-error-frame-dump.patch 2025-10-31 13:53:52.298524186 +0000
@@ -1 +1 @@
-From f9465bdcef9db163190f05c9ba80b8b9a205c81b Mon Sep 17 00:00:00 2001
+From 98e50d81559c26e5d9e322f9059523cb7a014f25 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f9465bdcef9db163190f05c9ba80b8b9a205c81b ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org
@@ -18 +19 @@
-index da0c06caad..e57ec2057c 100644
+index a88e83998e..e2c128e799 100644
@@ -21 +22 @@
-@@ -635,7 +635,9 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
+@@ -634,7 +634,9 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
@@ -32 +33 @@
-@@ -693,11 +695,35 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
+@@ -692,11 +694,35 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
More information about the stable
mailing list