From: Prashant Gupta <prashant.gupta_3@nxp.com>
To: stephen@networkplumber.org, dev@dpdk.org
Cc: Jun Yang <jun.yang@nxp.com>
Subject: [PATCH v4-S3 18/65] net/dpaa2: unify xstats layout and add DPMAC counter struct
Date: Fri, 23 Oct 2026 19:12:58 +0530 [thread overview]
Message-ID: <20261023134346.37727-19-prashant.gupta_3@nxp.com> (raw)
In-Reply-To: <20261023134346.37727-1-prashant.gupta_3@nxp.com>
From: Jun Yang <jun.yang@nxp.com>
The DPNI page counters and the DPMAC counters were described by three
loosely coupled artifacts: a struct dpaa2_dpni_xstats_pg_seq covering
only the DPNI pages, a parallel s_dpaa2_dpni_xstats_pgs[] descriptor
table carrying (page_offset, page_id, param, size), and two separate
name arrays (dpaa2_dpni_xstats_strings[] and
dpaa2_mac_xstats_strings[]). Keeping those three in sync was manual
and error prone, and dpaa2_dev_stats_get() further depended on a
fourth table (dpaa2_stats_strings[]) plus a string-match loop to
translate rte_eth_stats fields into xstat ids.
Collapse all of this to a single source of truth driven by the C
struct layout.
Behavior is unchanged apart from the per-TC policer name format;
the refactor removes ~200 lines of duplicated metadata and makes
adding a new counter a one-line struct change.
Signed-off-by: Jun Yang <jun.yang@nxp.com>
---
drivers/net/dpaa2/dpaa2_ethdev.c | 549 +++++++++++++------------------
drivers/net/dpaa2/dpaa2_ethdev.h | 3 +-
drivers/net/dpaa2/mc/fsl_dpni.h | 146 ++++++++
3 files changed, 378 insertions(+), 320 deletions(-)
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index e7ac6b7dad..b30a8e7b3d 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -169,7 +169,7 @@ dpaa2_dist_size_is_supported(uint16_t n)
int dpaa2_valid_dev;
struct rte_mempool *dpaa2_tx_sg_pool;
-struct dpaa2_dpni_xstats_pg_seq {
+struct dpaa2_xstats_seq {
struct dpni_statistics_page_0 pg0;
struct dpni_statistics_page_1 pg1;
struct dpni_statistics_page_2 pg2;
@@ -177,119 +177,81 @@ struct dpaa2_dpni_xstats_pg_seq {
struct dpni_statistics_page_4 pg4;
struct dpni_statistics_page_5 pg5[MAX_TCS];
struct dpni_statistics_page_6 pg6;
+ struct dpni_dpmac_counters mac_cnt;
};
#define DPAA2_DPNI_XSTAT_MAX_NUM \
- (sizeof(struct dpaa2_dpni_xstats_pg_seq) / sizeof(uint64_t))
-
-struct dpaa2_dpni_xstats_pg {
- uint64_t page_offset;
- enum dpni_statistics_page_id page_id;
- uint16_t param;
- uint16_t size;
-};
-
-static const struct dpaa2_dpni_xstats_pg s_dpaa2_dpni_xstats_pgs[] = {
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg0),
- DPNI_INGRESS_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_0)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg1),
- DPNI_EGRESS_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_1)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg2),
- DPNI_ERR_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_2)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg3),
- DPNI_CEETM_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_3)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg4),
- DPNI_CGR_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_4)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[0]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[1]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 1,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[2]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 2,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[3]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 3,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[4]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 4,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[5]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 5,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[6]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 6,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg5[7]),
- DPNI_POLICER_STATISTICS_PAGE_ID, 7,
- sizeof(struct dpni_statistics_page_5)
- },
- {
- offsetof(struct dpaa2_dpni_xstats_pg_seq, pg6),
- DPNI_TX_PENDING_STATISTICS_PAGE_ID, 0,
- sizeof(struct dpni_statistics_page_6)
- },
- {
- sizeof(struct dpaa2_dpni_xstats_pg_seq),
- 0, 0, 0
- }
-};
+ (offsetof(struct dpaa2_xstats_seq, mac_cnt) / sizeof(uint64_t))
+
+#define DPAA2_DPNI_STAT_SET_PAGE_PARAM(param) \
+({ \
+ int ret = false; \
+ \
+ if ((id) >= this_offset && (id) < (this_offset + pg_size)) { \
+ _stat_id = (id) - this_offset; \
+ _param = param; \
+ _size = pg_size; \
+ ret = true; \
+ } \
+ ret; \
+})
+
+#define DPAA2_DPNI_STAT_PAGE_PARAM(pid) \
+({ \
+ uint64_t this_offset = offsetof(struct dpaa2_xstats_seq, pg##pid) / sizeof(uint64_t); \
+ uint64_t pg_size = sizeof(struct dpni_statistics_page_##pid) / sizeof(uint64_t); \
+ int ret; \
+ \
+ ret = DPAA2_DPNI_STAT_SET_PAGE_PARAM(0); \
+ if (!ret) \
+ _page++; \
+ ret; \
+})
+
+#define DPAA2_DPNI_STAT_POLICER_PAGE_PARAM() \
+({ \
+ int ret = false; \
+ uint8_t tc_id; \
+ uint64_t this_offset; \
+ uint64_t pg_size = sizeof(struct dpni_statistics_page_5) / sizeof(uint64_t); \
+ \
+ for (tc_id = 0; tc_id < MAX_TCS; tc_id++) { \
+ this_offset = offsetof(struct dpaa2_xstats_seq, pg5[tc_id]) / sizeof(uint64_t); \
+ ret = DPAA2_DPNI_STAT_SET_PAGE_PARAM(tc_id); \
+ if (ret) \
+ break; \
+ } \
+ if (!ret) \
+ _page++; \
+ ret; \
+})
static inline int
dpaa2_xstats_id_parse(uint32_t id, uint8_t *page,
uint8_t *stat_id, uint16_t *param, uint16_t *size)
{
- int found = 0;
- uint8_t _page = 0, _stat_id = 0;
+ uint8_t _page = DPNI_INGRESS_STATISTICS_PAGE_ID, _stat_id = 0;
uint16_t _param = 0, _size = 0;
- uint64_t offset = id * sizeof(uint64_t), page_offset = 0, i;
-
- for (i = 1; i < RTE_DIM(s_dpaa2_dpni_xstats_pgs); i++) {
- if (offset < s_dpaa2_dpni_xstats_pgs[i].page_offset) {
- page_offset = s_dpaa2_dpni_xstats_pgs[i - 1].page_offset;
- _page = s_dpaa2_dpni_xstats_pgs[i - 1].page_id;
- _stat_id = (offset - page_offset) / sizeof(uint64_t);
- _param = s_dpaa2_dpni_xstats_pgs[i - 1].param;
- _size = s_dpaa2_dpni_xstats_pgs[i - 1].size / sizeof(uint64_t);
- found = 1;
- break;
- }
- }
-
- if (!found)
- return -EINVAL;
+ if (DPAA2_DPNI_STAT_PAGE_PARAM(0))
+ goto found_id;
+ if (DPAA2_DPNI_STAT_PAGE_PARAM(1))
+ goto found_id;
+ if (DPAA2_DPNI_STAT_PAGE_PARAM(2))
+ goto found_id;
+ if (DPAA2_DPNI_STAT_PAGE_PARAM(3))
+ goto found_id;
+ if (DPAA2_DPNI_STAT_PAGE_PARAM(4))
+ goto found_id;
+ if (DPAA2_DPNI_STAT_POLICER_PAGE_PARAM())
+ goto found_id;
+ if (DPAA2_DPNI_STAT_PAGE_PARAM(6))
+ goto found_id;
+
+ DPAA2_PMD_ERR("ID(%d) was not found in DPNI page statistics", id);
+ return -EINVAL;
+
+found_id:
if (page)
*page = _page;
if (stat_id)
@@ -302,156 +264,155 @@ dpaa2_xstats_id_parse(uint32_t id, uint8_t *page,
return 0;
}
-struct dpaa2_stats_name_off {
- char name[RTE_ETH_XSTATS_NAME_SIZE];
- uint64_t offset;
+#define DPAA2_XSTAT_STR_SET(pg, field) \
+ .pg.field = (uint64_t)RTE_STR(field)
+
+#define DPAA2_XSTAT_TC_STR_SET(pg, tc, field) \
+ .pg[tc].field = (uint64_t)("TC" RTE_STR(tc)"_" RTE_STR(field))
+
+#define DPAA2_XSTAT_TC_COLOR_STR_SET(pg, tc) \
+ DPAA2_XSTAT_TC_STR_SET(pg, tc, policer_cnt_red), \
+ DPAA2_XSTAT_TC_STR_SET(pg, tc, policer_cnt_yellow), \
+ DPAA2_XSTAT_TC_STR_SET(pg, tc, policer_cnt_green), \
+ DPAA2_XSTAT_TC_STR_SET(pg, tc, policer_cnt_re_red), \
+ DPAA2_XSTAT_TC_STR_SET(pg, tc, policer_cnt_re_yellow)
+
+#define MAC_STR(name) ("mac_" #name)
+#define MAC_STR_ADDR(name) ((size_t)MAC_STR(name))
+
+static const struct dpaa2_xstats_seq dpaa2_xstats_strings = {
+ DPAA2_XSTAT_STR_SET(pg0, ingress_all_frames),
+ DPAA2_XSTAT_STR_SET(pg0, ingress_all_bytes),
+ DPAA2_XSTAT_STR_SET(pg0, ingress_multicast_frames),
+ DPAA2_XSTAT_STR_SET(pg0, ingress_multicast_bytes),
+ DPAA2_XSTAT_STR_SET(pg0, ingress_broadcast_frames),
+ DPAA2_XSTAT_STR_SET(pg0, ingress_broadcast_bytes),
+
+ DPAA2_XSTAT_STR_SET(pg1, egress_all_frames),
+ DPAA2_XSTAT_STR_SET(pg1, egress_all_bytes),
+ DPAA2_XSTAT_STR_SET(pg1, egress_multicast_frames),
+ DPAA2_XSTAT_STR_SET(pg1, egress_multicast_bytes),
+ DPAA2_XSTAT_STR_SET(pg1, egress_broadcast_frames),
+ DPAA2_XSTAT_STR_SET(pg1, egress_broadcast_bytes),
+
+ DPAA2_XSTAT_STR_SET(pg2, ingress_filtered_frames),
+ DPAA2_XSTAT_STR_SET(pg2, ingress_discarded_frames),
+ DPAA2_XSTAT_STR_SET(pg2, ingress_nobuffer_discards),
+ DPAA2_XSTAT_STR_SET(pg2, egress_discarded_frames),
+ DPAA2_XSTAT_STR_SET(pg2, egress_confirmed_frames),
+
+ DPAA2_XSTAT_STR_SET(pg3, ceetm_dequeue_bytes),
+ DPAA2_XSTAT_STR_SET(pg3, ceetm_dequeue_frames),
+ DPAA2_XSTAT_STR_SET(pg3, ceetm_reject_bytes),
+ DPAA2_XSTAT_STR_SET(pg3, ceetm_reject_frames),
+
+ DPAA2_XSTAT_STR_SET(pg4, cgr_reject_frames),
+ DPAA2_XSTAT_STR_SET(pg4, cgr_reject_bytes),
+
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 0),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 1),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 2),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 3),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 4),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 5),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 6),
+ DPAA2_XSTAT_TC_COLOR_STR_SET(pg5, 7),
+
+ DPAA2_XSTAT_STR_SET(pg6, tx_pending_frames_cnt),
+
+ .mac_cnt.rx_64_bytes = MAC_STR_ADDR(rx_64_bytes),
+ .mac_cnt.rx_65_127_bytes = MAC_STR_ADDR(rx_65_127_bytes),
+ .mac_cnt.rx_128_255_bytes = MAC_STR_ADDR(rx_128_255_bytes),
+ .mac_cnt.rx_256_511_bytes = MAC_STR_ADDR(rx_256_511_bytes),
+ .mac_cnt.rx_512_1023_bytes = MAC_STR_ADDR(rx_512_1023_bytes),
+ .mac_cnt.rx_1024_1518_bytes = MAC_STR_ADDR(rx_1024_1518_bytes),
+ .mac_cnt.rx_1519_max_bytes = MAC_STR_ADDR(rx_1519_max_bytes),
+
+ .mac_cnt.rx_fragments = MAC_STR_ADDR(rx_fragments),
+ .mac_cnt.rx_jabber = MAC_STR_ADDR(rx_jabber),
+ .mac_cnt.rx_drop_fifo = MAC_STR_ADDR(rx_drop_fifo),
+ .mac_cnt.rx_alignment_error = MAC_STR_ADDR(rx_alignment_error),
+
+ .mac_cnt.tx_undersize_good = MAC_STR_ADDR(tx_undersize_good),
+ .mac_cnt.rx_oversize_good = MAC_STR_ADDR(rx_oversize_good),
+
+ .mac_cnt.rx_pause = MAC_STR_ADDR(rx_pause),
+ .mac_cnt.tx_pause = MAC_STR_ADDR(tx_pause),
+
+ .mac_cnt.rx_good_bytes = MAC_STR_ADDR(rx_good_bytes),
+ .mac_cnt.rx_multicast = MAC_STR_ADDR(rx_multicast),
+ .mac_cnt.rx_broadcast = MAC_STR_ADDR(rx_broadcast),
+ .mac_cnt.rx_all_frames = MAC_STR_ADDR(rx_all_frames),
+ .mac_cnt.rx_unicast = MAC_STR_ADDR(rx_unicast),
+ .mac_cnt.rx_error = MAC_STR_ADDR(rx_error),
+
+ .mac_cnt.tx_good_bytes = MAC_STR_ADDR(tx_good_bytes),
+ .mac_cnt.tx_multicast = MAC_STR_ADDR(tx_multicast),
+ .mac_cnt.tx_broadcast = MAC_STR_ADDR(tx_broadcast),
+ .mac_cnt.tx_unicast = MAC_STR_ADDR(tx_unicast),
+ .mac_cnt.tx_error = MAC_STR_ADDR(tx_error),
+
+ .mac_cnt.rx_valid_frames = MAC_STR_ADDR(rx_valid_frames),
+ .mac_cnt.tx_valid_frames = MAC_STR_ADDR(tx_valid_frames),
+
+ .mac_cnt.tx_64_bytes = MAC_STR_ADDR(tx_64_bytes),
+ .mac_cnt.tx_65_127_bytes = MAC_STR_ADDR(tx_65_127_bytes),
+ .mac_cnt.tx_128_255_bytes = MAC_STR_ADDR(tx_128_255_bytes),
+ .mac_cnt.tx_256_511_bytes = MAC_STR_ADDR(tx_256_511_bytes),
+ .mac_cnt.tx_512_1023_bytes = MAC_STR_ADDR(tx_512_1023_bytes),
+ .mac_cnt.tx_1024_1518_bytes = MAC_STR_ADDR(tx_1024_1518_bytes),
+ .mac_cnt.tx_1519_max_bytes = MAC_STR_ADDR(tx_1519_max_bytes),
+
+ .mac_cnt.rx_bytes_all = MAC_STR_ADDR(rx_bytes_all),
+ .mac_cnt.rx_crc_error = MAC_STR_ADDR(rx_crc_error),
+ .mac_cnt.rx_vlan = MAC_STR_ADDR(rx_vlan),
+ .mac_cnt.rx_undersize_good = MAC_STR_ADDR(rx_undersize_good),
+ .mac_cnt.rx_ctrl_non_pause = MAC_STR_ADDR(rx_ctrl_non_pause),
+ .mac_cnt.rx_drop_full = MAC_STR_ADDR(rx_drop_full),
+
+ .mac_cnt.tx_bytes_all = MAC_STR_ADDR(tx_bytes_all),
+ .mac_cnt.tx_crc_error = MAC_STR_ADDR(tx_crc_error),
+ .mac_cnt.tx_vlan = MAC_STR_ADDR(tx_vlan),
+ .mac_cnt.tx_all_frames = MAC_STR_ADDR(tx_all_frames),
+ .mac_cnt.tx_ctrl_non_pause = MAC_STR_ADDR(tx_ctrl_non_pause),
+
+ .mac_cnt.rx_pfc_class[0] = MAC_STR_ADDR(rx_pfc_class_0),
+ .mac_cnt.rx_pfc_class[1] = MAC_STR_ADDR(rx_pfc_class_1),
+ .mac_cnt.rx_pfc_class[2] = MAC_STR_ADDR(rx_pfc_class_2),
+ .mac_cnt.rx_pfc_class[3] = MAC_STR_ADDR(rx_pfc_class_3),
+ .mac_cnt.rx_pfc_class[4] = MAC_STR_ADDR(rx_pfc_class_4),
+ .mac_cnt.rx_pfc_class[5] = MAC_STR_ADDR(rx_pfc_class_5),
+ .mac_cnt.rx_pfc_class[6] = MAC_STR_ADDR(rx_pfc_class_6),
+ .mac_cnt.rx_pfc_class[7] = MAC_STR_ADDR(rx_pfc_class_7),
+
+ .mac_cnt.tx_pfc_class[0] = MAC_STR_ADDR(tx_pfc_class_0),
+ .mac_cnt.tx_pfc_class[1] = MAC_STR_ADDR(tx_pfc_class_1),
+ .mac_cnt.tx_pfc_class[2] = MAC_STR_ADDR(tx_pfc_class_2),
+ .mac_cnt.tx_pfc_class[3] = MAC_STR_ADDR(tx_pfc_class_3),
+ .mac_cnt.tx_pfc_class[4] = MAC_STR_ADDR(tx_pfc_class_4),
+ .mac_cnt.tx_pfc_class[5] = MAC_STR_ADDR(tx_pfc_class_5),
+ .mac_cnt.tx_pfc_class[6] = MAC_STR_ADDR(tx_pfc_class_6),
+ .mac_cnt.tx_pfc_class[7] = MAC_STR_ADDR(tx_pfc_class_7)
};
-#define DPAA2_STATS_IPACKETS_STR "ingress_all_frames"
-#define DPAA2_STATS_OPACKETS_STR "egress_all_frames"
-#define DPAA2_STATS_IBYTES_STR "ingress_all_bytes"
-#define DPAA2_STATS_OBYTES_STR "egress_all_bytes"
-#define DPAA2_STATS_IERRORS_STR "ingress_discarded_frames"
-#define DPAA2_STATS_OERRORS_STR "egress_discarded_frames"
-#define DPAA2_STATS_RX_NOMBUF_STR "ingress_nobuffer_discards"
-#define DPAA2_STATS_FILTERED_STR "ingress_filtered_frames"
-
-static const struct dpaa2_stats_name_off dpaa2_stats_strings[] = {
- {
- DPAA2_STATS_IPACKETS_STR,
- offsetof(struct rte_eth_stats, ipackets)
- },
- {
- DPAA2_STATS_OPACKETS_STR,
- offsetof(struct rte_eth_stats, opackets)
- },
- {
- DPAA2_STATS_IBYTES_STR,
- offsetof(struct rte_eth_stats, ibytes)
- },
- {
- DPAA2_STATS_OBYTES_STR,
- offsetof(struct rte_eth_stats, obytes)
- },
- {
- DPAA2_STATS_FILTERED_STR,
- sizeof(struct rte_eth_stats)
- },
- {
- DPAA2_STATS_IERRORS_STR,
- offsetof(struct rte_eth_stats, ierrors)
- },
- {
- DPAA2_STATS_OERRORS_STR,
- offsetof(struct rte_eth_stats, oerrors)
- },
- {
- DPAA2_STATS_RX_NOMBUF_STR,
- offsetof(struct rte_eth_stats, rx_nombuf)
- }
+#define DPAA2_DPNI_XSTAT_FIELD_ID(field) \
+ (offsetof(struct dpaa2_xstats_seq, field) / sizeof(uint64_t))
+
+static const struct rte_eth_stats dpaa2_stats_xstat_ids = {
+ .ipackets = DPAA2_DPNI_XSTAT_FIELD_ID(pg0.ingress_all_frames),
+ .opackets = DPAA2_DPNI_XSTAT_FIELD_ID(pg1.egress_all_frames),
+ .ibytes = DPAA2_DPNI_XSTAT_FIELD_ID(pg0.ingress_all_bytes),
+ .obytes = DPAA2_DPNI_XSTAT_FIELD_ID(pg1.egress_all_bytes),
+ .imissed = DPAA2_DPNI_XSTAT_FIELD_ID(pg2.ingress_filtered_frames),
+ .ierrors = DPAA2_DPNI_XSTAT_FIELD_ID(pg2.ingress_discarded_frames),
+ .oerrors = DPAA2_DPNI_XSTAT_FIELD_ID(pg2.egress_discarded_frames),
+ .rx_nombuf = DPAA2_DPNI_XSTAT_FIELD_ID(pg2.ingress_nobuffer_discards)
};
-#define DPAA2_STATS_SET_BY_OFFSET(p_stats, offset, val) \
- (*((uint64_t *)((uint8_t *)(p_stats) + (offset))) = (val))
-
-#define DPAA2_TC_COLOR(tc) \
- "TC_"#tc"_policer_cnt_red", \
- "TC_"#tc"_policer_cnt_yellow", \
- "TC_"#tc"_policer_cnt_green", \
- "TC_"#tc"_policer_cnt_re_red", \
- "TC_"#tc"_policer_cnt_re_yellow" \
-
-static const char * const dpaa2_dpni_xstats_strings[] = {
- DPAA2_STATS_IPACKETS_STR,
- DPAA2_STATS_IBYTES_STR,
- "ingress_multicast_frames",
- "ingress_multicast_bytes",
- "ingress_broadcast_frames",
- "ingress_broadcast_bytes",
-
- DPAA2_STATS_OPACKETS_STR,
- DPAA2_STATS_OBYTES_STR,
- "egress_multicast_frames",
- "egress_multicast_bytes",
- "egress_broadcast_frames",
- "egress_broadcast_bytes",
-
- DPAA2_STATS_FILTERED_STR,
- DPAA2_STATS_IERRORS_STR,
- DPAA2_STATS_RX_NOMBUF_STR,
- DPAA2_STATS_OERRORS_STR,
- "egress_confirmed_frames",
-
- "cgr_reject_frames",
- "cgr_reject_bytes",
-
- "ceetm_dequeue_bytes",
- "ceetm_dequeue_frames",
- "ceetm_reject_bytes",
- "ceetm_reject_frames",
- DPAA2_TC_COLOR(0),
- DPAA2_TC_COLOR(1),
- DPAA2_TC_COLOR(2),
- DPAA2_TC_COLOR(3),
- DPAA2_TC_COLOR(4),
- DPAA2_TC_COLOR(5),
- DPAA2_TC_COLOR(6),
- DPAA2_TC_COLOR(7),
-
- "tx_pending_frames_cnt"
-};
+#define DPAA2_STATS_XSTATS_NUM \
+ (sizeof(dpaa2_stats_xstat_ids) / sizeof(uint64_t))
-static const char * const dpaa2_mac_xstats_strings[] = {
- "mac_rx_64 bytes",
- "mac_rx_65-127 bytes",
- "mac_rx_128-255 bytes",
- "mac_rx_256-511 bytes",
- "mac_rx_512-1023 bytes",
- "mac_rx_1024-1518 bytes",
- "mac_rx_1519-max bytes",
- "mac_rx_frags",
- "mac_rx_jabber",
- "mac_rx_frame discards",
- "mac_rx_align errors",
- "mac_tx_undersized",
- "mac_rx_oversized",
- "mac_rx_pause",
- "mac_tx_b-pause",
- "mac_rx_bytes",
- "mac_rx_m-cast",
- "mac_rx_b-cast",
- "mac_rx_all frames",
- "mac_rx_u-cast",
- "mac_rx_frame errors",
- "mac_tx_bytes",
- "mac_tx_m-cast",
- "mac_tx_b-cast",
- "mac_tx_u-cast",
- "mac_tx_frame errors",
- "mac_rx_frames ok",
- "mac_tx_frames ok",
- "mac_tx_64 bytes",
- "mac_tx_65-127 bytes",
- "mac_tx_128-255 bytes",
- "mac_tx_256-511 bytes",
- "mac_tx_512-1023 bytes",
- "mac_tx_1024-1518 bytes",
- "mac_tx_1519-max bytes",
- "mac_rx_all_bytes",
- "mac_rx_fcs_err",
- "mac_rx_vlan_frame",
- "mac_rx_undersized",
- "mac_rx_control_frame",
- "mac_rx_frame_discard_not_trunc",
- "mac_tx_all_bytes",
- "mac_tx_fcs_err",
- "mac_tx_vlan_frame",
- "mac_tx_all_frame",
- "mac_tx_control_frame"
-};
-
-#define DPAA2_MAC_XSTATS_START_ID \
- (sizeof(struct dpaa2_dpni_xstats_pg_seq) / sizeof(uint64_t))
+#define DPAA2_MAC_XSTATS_START_ID DPAA2_DPNI_XSTAT_MAX_NUM
static struct rte_dpaa2_driver rte_dpaa2_pmd;
static int dpaa2_dev_link_update(struct rte_eth_dev *dev,
@@ -2333,6 +2294,7 @@ dpaa2_dev_xstats_get_names(struct rte_eth_dev *dev,
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
uint16_t i, stat_cnt;
+ uint64_t xstat_str[sizeof(struct dpaa2_xstats_seq) / sizeof(uint64_t)];
stat_cnt = DPAA2_DPNI_XSTAT_MAX_NUM;
if (priv->ep_dev_type == DPAA2_MAC)
@@ -2347,16 +2309,10 @@ dpaa2_dev_xstats_get_names(struct rte_eth_dev *dev,
if (!xstats_names)
return stat_cnt;
- for (i = 0; i < stat_cnt; i++) {
- if (i < DPAA2_DPNI_XSTAT_MAX_NUM) {
- rte_strscpy(xstats_names[i].name, dpaa2_dpni_xstats_strings[i],
- RTE_ETH_XSTATS_NAME_SIZE);
- } else {
- rte_strscpy(xstats_names[i].name,
- dpaa2_mac_xstats_strings[i - DPAA2_DPNI_XSTAT_MAX_NUM],
- RTE_ETH_XSTATS_NAME_SIZE);
- }
- }
+ rte_memcpy(xstat_str, &dpaa2_xstats_strings, sizeof(xstat_str));
+
+ for (i = 0; i < stat_cnt; i++)
+ rte_strscpy(xstats_names[i].name, (char *)xstat_str[i], RTE_ETH_XSTATS_NAME_SIZE);
return stat_cnt;
}
@@ -2464,6 +2420,7 @@ dpaa2_dev_xstats_get_names_by_id(struct rte_eth_dev *dev,
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
uint16_t i, stat_cnt;
+ uint64_t xstat_str[sizeof(struct dpaa2_xstats_seq) / sizeof(uint64_t)];
stat_cnt = DPAA2_DPNI_XSTAT_MAX_NUM;
if (priv->ep_dev_type == DPAA2_MAC)
@@ -2472,20 +2429,15 @@ dpaa2_dev_xstats_get_names_by_id(struct rte_eth_dev *dev,
if (!ids)
return dpaa2_dev_xstats_get_names(dev, xstats_names, limit);
+ rte_memcpy(xstat_str, &dpaa2_xstats_strings, sizeof(xstat_str));
+
for (i = 0; i < limit; i++) {
if (ids[i] >= stat_cnt) {
DPAA2_PMD_ERR("xstats id[%d] value(%" PRIu64 ") >= max count(%d)",
i, ids[i], stat_cnt);
return -EINVAL;
}
- if (ids[i] < DPAA2_DPNI_XSTAT_MAX_NUM) {
- rte_strscpy(xstats_names[i].name, dpaa2_dpni_xstats_strings[ids[i]],
- RTE_ETH_XSTATS_NAME_SIZE);
- } else {
- rte_strscpy(xstats_names[i].name,
- dpaa2_mac_xstats_strings[ids[i] - DPAA2_DPNI_XSTAT_MAX_NUM],
- RTE_ETH_XSTATS_NAME_SIZE);
- }
+ rte_strscpy(xstats_names[i].name, (char *)xstat_str[ids[i]], RTE_ETH_XSTATS_NAME_SIZE);
}
return limit;
}
@@ -2496,64 +2448,24 @@ dpaa2_dev_stats_get(struct rte_eth_dev *dev,
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
int32_t retcode;
- uint16_t stats_len = RTE_DIM(dpaa2_stats_strings), i, j, xstats_len;
+ uint16_t i;
+ uint64_t ids[DPAA2_STATS_XSTATS_NUM], counts[DPAA2_STATS_XSTATS_NUM] = {0};
struct dpaa2_queue *dpaa2_q;
- uint64_t ids[stats_len];
- uint64_t counts[stats_len];
- uint64_t ifiltered = 0;
- const char **dpni_nms = (const char **)&dpaa2_dpni_xstats_strings;
PMD_INIT_FUNC_TRACE();
- xstats_len = DPAA2_DPNI_XSTAT_MAX_NUM;
- if (priv->ep_dev_type == DPAA2_MAC)
- xstats_len += DPAA2_MAC_NUM_STATS;
-
- if (!stats) {
- DPAA2_PMD_ERR("stats is NULL");
- return -EINVAL;
- }
-
- memset(stats, 0, sizeof(struct rte_eth_stats));
-
- for (i = 0; i < stats_len; i++) {
- for (j = 0; j < xstats_len; j++) {
- if (j < DPAA2_DPNI_XSTAT_MAX_NUM) {
- retcode = strcmp(dpaa2_stats_strings[i].name, dpni_nms[j]);
- } else {
- retcode = strcmp(dpaa2_stats_strings[i].name,
- dpaa2_mac_xstats_strings[j - DPAA2_DPNI_XSTAT_MAX_NUM]);
- }
- if (!retcode) {
- ids[i] = j;
- break;
- }
- }
- if (j == xstats_len) {
- DPAA2_PMD_ERR("%s: stat(%s) not found in xstat!",
- __func__, dpaa2_stats_strings[i].name);
- return -EINVAL;
- }
- }
-
- retcode = dpaa2_dev_xstats_get_by_id(dev, ids, counts, stats_len);
- if (retcode != stats_len) {
- DPAA2_PMD_ERR("%s: Failed to get xstats (%d)counters by %d IDs",
- __func__, retcode, stats_len);
+ rte_memcpy(ids, &dpaa2_stats_xstat_ids, sizeof(dpaa2_stats_xstat_ids));
+ retcode = dpaa2_dev_xstats_get_by_id(dev, ids, counts, DPAA2_STATS_XSTATS_NUM);
+ if (retcode != RTE_DIM(ids)) {
+ DPAA2_PMD_ERR("%s: Failed to get xstats (%d)counters by %ld IDs",
+ __func__, retcode, DPAA2_STATS_XSTATS_NUM);
if (retcode >= 0)
retcode = -EINVAL;
return retcode;
}
- for (i = 0; i < stats_len; i++) {
- if (dpaa2_stats_strings[i].offset < sizeof(struct rte_eth_stats)) {
- DPAA2_STATS_SET_BY_OFFSET(stats,
- dpaa2_stats_strings[i].offset, counts[i]);
- } else {
- ifiltered = counts[i];
- }
- }
- stats->imissed = stats->ierrors + stats->rx_nombuf + ifiltered;
+ rte_memcpy(stats, counts, sizeof(struct rte_eth_stats));
+ stats->imissed += stats->ierrors + stats->rx_nombuf;
if (qstats) {
for (i = 0; i < dev->data->nb_rx_queues; i++) {
@@ -2576,8 +2488,7 @@ dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
{
struct dpaa2_dev_priv *priv = dev->data->dev_private;
struct fsl_mc_io *dpni = dev->process_private;
- int retcode;
- int i;
+ int retcode, i;
struct dpaa2_queue *dpaa2_q;
PMD_INIT_FUNC_TRACE();
@@ -2587,7 +2498,7 @@ dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
return -EINVAL;
}
- retcode = dpni_reset_statistics(dpni, CMD_PRI_LOW, priv->token);
+ retcode = dpni_reset_statistics(dpni, CMD_PRI_LOW, priv->token);
if (retcode)
goto error;
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h
index 00bbc17862..e2d9d5de36 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.h
+++ b/drivers/net/dpaa2/dpaa2_ethdev.h
@@ -209,7 +209,8 @@
#define DPAA2_MAC_XSTATS_MC_REV RTE_FSL_MC_REV(10, 39, 109)
/* mac counters */
-#define DPAA2_MAC_NUM_STATS (DPMAC_CNT_EGR_CONTROL_FRAME + 1)
+#define DPAA2_MAC_NUM_STATS \
+ (sizeof(struct dpni_dpmac_counters) / sizeof(uint64_t))
#define DPAA2_MAC_STATS_INDEX_DMA_SIZE (DPAA2_MAC_NUM_STATS * sizeof(uint32_t))
#define DPAA2_MAC_STATS_VALUE_DMA_SIZE (DPAA2_MAC_NUM_STATS * sizeof(uint64_t))
diff --git a/drivers/net/dpaa2/mc/fsl_dpni.h b/drivers/net/dpaa2/mc/fsl_dpni.h
index b63627493a..4bec348545 100644
--- a/drivers/net/dpaa2/mc/fsl_dpni.h
+++ b/drivers/net/dpaa2/mc/fsl_dpni.h
@@ -2158,6 +2158,152 @@ int dpni_set_sp_profile(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t to
int dpni_sp_enable(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token,
uint8_t type, uint8_t en);
+struct dpni_dpmac_counters {
+ /** 0x00: Counts received 64-bytes frames, good or bad */
+ uint64_t rx_64_bytes;
+
+ /** 0x01: Counts received 65- to 127-bytes frames, good or bad */
+ uint64_t rx_65_127_bytes;
+
+ /** 0x02: Counts received 128- to 255-bytes frames, good or bad */
+ uint64_t rx_128_255_bytes;
+
+ /** 0x03: Counts received 256- to 511-bytes frames, good or bad */
+ uint64_t rx_256_511_bytes;
+
+ /** 0x04: Counts received 512- to 1023-bytes frames, good or bad */
+ uint64_t rx_512_1023_bytes;
+
+ /** 0x05: Counts received 1024- to 1518-bytes frames, good or bad */
+ uint64_t rx_1024_1518_bytes;
+
+ /** 0x06: Counts received frames >=1519 bytes */
+ uint64_t rx_1519_max_bytes;
+
+ /** 0x07: <64B frames with bad CRC */
+ uint64_t rx_fragments;
+
+ /** 0x08: >max length frames with bad FCS */
+ uint64_t rx_jabber;
+
+ /** 0x09: FIFO overflow drops (including truncated frames) */
+ uint64_t rx_drop_fifo;
+
+ /** 0x0A: Alignment error frames */
+ uint64_t rx_alignment_error;
+
+ /** 0x0B: TX <64B frames with good CRC */
+ uint64_t tx_undersize_good;
+
+ /** 0x0C: >max length frames with good FCS */
+ uint64_t rx_oversize_good;
+
+ /** 0x0D: Received pause frames (including PFC) */
+ uint64_t rx_pause;
+
+ /** 0x0E: Transmitted pause frames (including PFC) */
+ uint64_t tx_pause;
+
+ /** 0x0F: Received bytes (valid frames, exclude preamble) */
+ uint64_t rx_good_bytes;
+
+ /** 0x10: Received multicast frames */
+ uint64_t rx_multicast;
+
+ /** 0x11: Received broadcast frames */
+ uint64_t rx_broadcast;
+
+ /** 0x12: Received frames (good + bad) */
+ uint64_t rx_all_frames;
+
+ /** 0x13: Received unicast frames */
+ uint64_t rx_unicast;
+
+ /** 0x14: Received error frames (excluding fragments) */
+ uint64_t rx_error;
+
+ /** 0x15: Transmitted bytes (valid frames) */
+ uint64_t tx_good_bytes;
+
+ /** 0x16: Transmitted multicast frames */
+ uint64_t tx_multicast;
+
+ /** 0x17: Transmitted broadcast frames */
+ uint64_t tx_broadcast;
+
+ /** 0x18: Transmitted unicast frames */
+ uint64_t tx_unicast;
+
+ /** 0x19: Transmitted error frames */
+ uint64_t tx_error;
+
+ /** 0x1A: Received valid frames (no error) */
+ uint64_t rx_valid_frames;
+
+ /** 0x1B: Transmitted valid frames (no error) */
+ uint64_t tx_valid_frames;
+
+ /** 0x1C: TX 64-byte frames */
+ uint64_t tx_64_bytes;
+
+ /** 0x1D: TX 65-127-byte frames */
+ uint64_t tx_65_127_bytes;
+
+ /** 0x1E: TX 128-255-byte frames */
+ uint64_t tx_128_255_bytes;
+
+ /** 0x1F: TX 256-511-byte frames */
+ uint64_t tx_256_511_bytes;
+
+ /** 0x20: TX 512-1023-byte frames */
+ uint64_t tx_512_1023_bytes;
+
+ /** 0x21: TX 1024-1518-byte frames */
+ uint64_t tx_1024_1518_bytes;
+
+ /** 0x22: TX >=1519-byte frames */
+ uint64_t tx_1519_max_bytes;
+
+ /** 0x23: RX bytes (good + bad frames) */
+ uint64_t rx_bytes_all;
+
+ /** 0x24: RX CRC-32 error frames */
+ uint64_t rx_crc_error;
+
+ /** 0x25: Valid VLAN-tagged RX frames */
+ uint64_t rx_vlan;
+
+ /** 0x26: RX <64B frames with good CRC */
+ uint64_t rx_undersize_good;
+
+ /** 0x27: RX control frames (0x8808, non-pause) */
+ uint64_t rx_ctrl_non_pause;
+
+ /** 0x28: Fully dropped frames due to MAC client FIFO overflow */
+ uint64_t rx_drop_full;
+
+ /** 0x29: TX bytes (good + bad frames) */
+ uint64_t tx_bytes_all;
+
+ /** 0x2A: TX CRC-32 error frames */
+ uint64_t tx_crc_error;
+
+ /** 0x2B: Valid VLAN-tagged TX frames */
+ uint64_t tx_vlan;
+
+ /** 0x2C: All TX frames (good + bad) */
+ uint64_t tx_all_frames;
+
+ /** 0x2D: TX control frames (0x8808, non-pause) */
+ uint64_t tx_ctrl_non_pause;
+
+ /** 0x2E-0x35: RX PFC frames per priority (0-7) */
+ uint64_t rx_pfc_class[DPNI_MAX_TC];
+
+ /** 0x36-0x3D: TX PFC frames per priority (0-7) */
+ uint64_t tx_pfc_class[DPNI_MAX_TC];
+};
+
int dpni_get_mac_statistics(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token,
uint64_t iova_cnt, uint64_t iova_values, uint32_t num_cnt);
--
2.43.0
next prev parent reply other threads:[~2026-10-23 13:46 UTC|newest]
Thread overview: 356+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 13:53 [PATCH 00/45] net/dpaa2: features and fixes for NXP DPAA2 drivers Prashant Gupta
2026-09-03 13:53 ` [PATCH 01/45] crypto/dpaa2_sec: fix buffer overflow in GCM decrypt Prashant Gupta
2026-09-03 13:53 ` [PATCH 02/45] crypto/dpaa2_sec: fix FLE pool leak on sec FD build failure Prashant Gupta
2026-09-03 13:53 ` [PATCH 03/45] crypto/dpaa2_sec: support AES-GMAC Prashant Gupta
2026-09-03 13:53 ` [PATCH 04/45] crypto/dpaa2_sec: increase ivsize range for AES-CTR Prashant Gupta
2026-09-03 13:53 ` [PATCH 05/45] crypto/dpaa2_sec: add missing ECN capability Prashant Gupta
2026-09-03 13:53 ` [PATCH 06/45] crypto/dpaa2_sec: add support for env variables Prashant Gupta
2026-09-03 13:53 ` [PATCH 07/45] drivers: fix double free of dpaa2 device on uninit Prashant Gupta
2026-09-03 14:05 ` David Marchand
2026-09-03 13:53 ` [PATCH 08/45] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-09-03 13:53 ` [PATCH 09/45] dma/dpaa2: fix array-bounds warning in dequeue path Prashant Gupta
2026-09-03 13:53 ` [PATCH 10/45] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-09-03 13:53 ` [PATCH 11/45] dma/dpaa2: validate IOVA in pre-populate helpers Prashant Gupta
2026-09-03 13:53 ` [PATCH 12/45] dma/dpaa2: optimize context index ring enqueue Prashant Gupta
2026-09-03 13:53 ` [PATCH 13/45] drivers: add dpaa2 DMA bypass memory translation option Prashant Gupta
2026-09-03 13:53 ` [PATCH 14/45] mempool/dpaa2: support ops index from primary in secondary Prashant Gupta
2026-09-03 13:53 ` [PATCH 15/45] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-09-03 13:53 ` [PATCH 16/45] drivers: optimize dpaa2 Tx queue and channel mapping Prashant Gupta
2026-09-03 13:53 ` [PATCH 17/45] net/dpaa2: support larger burst size Prashant Gupta
2026-09-03 13:53 ` [PATCH 18/45] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-09-03 13:53 ` [PATCH 19/45] net/dpaa2: support meter and policing Prashant Gupta
2026-09-03 13:53 ` [PATCH 20/45] net/dpaa2: support flow drop action Prashant Gupta
2026-09-03 13:53 ` [PATCH 21/45] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-09-03 13:53 ` [PATCH 22/45] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-09-03 13:53 ` [PATCH 23/45] net/dpaa2: add minimum key size support Prashant Gupta
2026-09-03 13:53 ` [PATCH 24/45] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-09-03 13:53 ` [PATCH 25/45] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-09-03 13:53 ` [PATCH 26/45] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-09-03 13:53 ` [PATCH 27/45] drivers: refresh dpaa2 MC and SoC version info Prashant Gupta
2026-09-03 13:53 ` [PATCH 28/45] drivers: identify dpaa2 soft parser protocol Prashant Gupta
2026-09-03 13:53 ` [PATCH 29/45] drivers: assign dpaa2 Rx CGID per traffic class Prashant Gupta
2026-09-03 13:53 ` [PATCH 30/45] drivers: inherit dpaa2 rxq config for event queue Prashant Gupta
2026-09-03 13:53 ` [PATCH 31/45] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-09-03 13:53 ` [PATCH 32/45] drivers: rework dpaa2 Tx confirmation Prashant Gupta
2026-09-03 13:53 ` [PATCH 33/45] net/dpaa2: ptp enhancements Prashant Gupta
2026-09-03 13:53 ` [PATCH 34/45] net/dpaa2: remove unused soft parser Tx code Prashant Gupta
2026-09-03 13:53 ` [PATCH 35/45] net/dpaa2: update MC dpni QoS and flow steering API Prashant Gupta
2026-09-03 13:53 ` [PATCH 36/45] net/dpaa2: enhance xstat implementation Prashant Gupta
2026-09-03 13:53 ` [PATCH 37/45] net/dpaa2: rework flow engine Prashant Gupta
2026-09-03 13:53 ` [PATCH 38/45] net/dpaa2: support Rx mempool per traffic class Prashant Gupta
2026-09-03 13:53 ` [PATCH 39/45] drivers: consume dpaa2 DQRR entries in batches Prashant Gupta
2026-09-03 13:53 ` [PATCH 40/45] drivers: resolve dpaa2 endpoint in the net driver Prashant Gupta
2026-09-03 13:53 ` [PATCH 41/45] drivers: align dpaa2 event port depths with hardware rings Prashant Gupta
2026-09-03 13:53 ` [PATCH 42/45] net/dpaa2: read MC version from device private data Prashant Gupta
2026-09-03 13:53 ` [PATCH 43/45] net/dpaa2: do not overwrite mbuf hash with drop priority Prashant Gupta
2026-09-03 13:53 ` [PATCH 44/45] bus/fslmc: reduce probe-time logging and MC traffic Prashant Gupta
2026-09-03 13:53 ` [PATCH 45/45] net/dpaa2: reject Rx queue deferred start Prashant Gupta
2026-09-07 20:35 ` [PATCH 00/45] net/dpaa2: features and fixes for NXP DPAA2 drivers Stephen Hemminger
2026-09-07 20:47 ` Stephen Hemminger
2026-09-07 21:03 ` Stephen Hemminger
2026-09-07 21:10 ` Stephen Hemminger
2026-09-07 21:22 ` Stephen Hemminger
2026-09-10 13:51 ` [PATCH v2 00/47] NXP DPAA2 driver updates and fixes Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 01/47] crypto/dpaa2_sec: fix buffer overflow in GCM decrypt Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 02/47] crypto/dpaa2_sec: fix FLE pool leak on sec FD build failure Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 03/47] crypto/dpaa2_sec: support AES-GMAC Prashant Gupta
2026-09-24 10:32 ` [EXTERNAL] " Akhil Goyal
2026-09-10 13:51 ` [PATCH v2 04/47] crypto/dpaa2_sec: increase ivsize range for AES-CTR Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 05/47] crypto/dpaa2_sec: add missing ECN capability Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 06/47] crypto/dpaa2_sec: add support for env variables Prashant Gupta
2026-09-24 10:33 ` [EXTERNAL] " Akhil Goyal
2026-09-10 13:51 ` [PATCH v2 07/47] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 08/47] dma/dpaa2: fix array-bounds warning in dequeue path Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 09/47] bus/fslmc: defer bus initialization to probe Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 10/47] dma/dpaa2: validate IOVA in pre-populate helpers Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 11/47] dma/dpaa2: optimize context index ring enqueue Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 12/47] drivers: add dpaa2 DMA bypass memory translation option Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 13/47] mempool/dpaa2: support ops index from primary in secondary Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 14/47] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 15/47] drivers: optimize dpaa2 Tx queue and channel mapping Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 16/47] net/dpaa2: support larger burst size Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 17/47] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 18/47] net/dpaa2: support meter and policing Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 19/47] net/dpaa2: support flow drop action Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 20/47] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 21/47] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 22/47] net/dpaa2: add minimum key size support Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 23/47] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 24/47] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 25/47] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 26/47] drivers: refresh dpaa2 MC and SoC version info Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 27/47] drivers: identify dpaa2 soft parser protocol Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 28/47] drivers: assign dpaa2 Rx CGID per traffic class Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 29/47] drivers: inherit dpaa2 rxq config for event queue Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 30/47] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 31/47] drivers: rework dpaa2 Tx confirmation Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 32/47] net/dpaa2: ptp enhancements Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 33/47] net/dpaa2: remove unused soft parser Tx code Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 34/47] net/dpaa2: update MC dpni QoS and flow steering API Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 35/47] net/dpaa2: enhance xstat implementation Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 36/47] net/dpaa2: rework flow engine Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 37/47] net/dpaa2: support GENEVE flow item Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 38/47] net/dpaa2: support flow meter and policer actions Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 39/47] net/dpaa2: support flow table miss actions Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 40/47] net/dpaa2: support Rx mempool per traffic class Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 41/47] drivers: consume dpaa2 DQRR entries in batches Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 42/47] drivers: resolve dpaa2 endpoint in the net driver Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 43/47] drivers: align dpaa2 event port depths with hardware rings Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 44/47] net/dpaa2: read MC version from device private data Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 45/47] net/dpaa2: do not overwrite mbuf hash with drop priority Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 46/47] bus/fslmc: reduce probe-time logging and MC traffic Prashant Gupta
2026-09-10 13:51 ` [PATCH v2 47/47] net/dpaa2: reject Rx queue deferred start Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 00/13] net/dpaa2: flow, meter and parser features Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-09-15 11:34 ` [PATCH v3-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-09-15 12:01 ` [PATCH v3-S3 00/10] net/dpaa2: bus, DMA, eventdev and datapath rework Prashant Gupta
2026-09-15 12:01 ` [PATCH v3-S3 01/10] drivers: add dpaa2 DMA bypass memory translation option Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 02/10] drivers: optimize dpaa2 Tx queue and channel mapping Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 03/10] drivers: refresh dpaa2 MC and SoC version info Prashant Gupta
2026-09-17 6:51 ` David Marchand
2026-09-15 12:02 ` [PATCH v3-S3 04/10] drivers: identify dpaa2 soft parser protocol Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 05/10] drivers: assign dpaa2 Rx CGID per traffic class Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 06/10] drivers: inherit dpaa2 rxq config for event queue Prashant Gupta
2026-09-17 6:52 ` David Marchand
2026-09-15 12:02 ` [PATCH v3-S3 07/10] drivers: rework dpaa2 Tx confirmation Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 08/10] drivers: consume dpaa2 DQRR entries in batches Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 09/10] drivers: resolve dpaa2 endpoint in the net driver Prashant Gupta
2026-09-15 12:02 ` [PATCH v3-S3 10/10] drivers: align dpaa2 event port depths with hardware rings Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 00/65] net/dpaa2, event/dpaa2 and fslmc rework Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 01/65] net/dpaa2: refactor and optimize Rx parser result decode Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 02/65] net/dpaa2: generate devargs table and string from one list Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 03/65] crypto/dpaa2_sec: use table-driven devargs parsing Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 04/65] dma/dpaa2: " Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 05/65] net/dpaa2: unify debug dump via log based helpers Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 06/65] net/dpaa2: expose Rx L3/L4/L5 offsets via mbuf dynfield Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 07/65] net/dpaa2: optimize dpaa2 Tx queue and channel mapping Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 08/65] bus/fslmc: split bus-level device walk from VFIO primitives Prashant Gupta
2026-10-23 15:00 ` David Marchand
2026-10-23 13:42 ` [PATCH v4-S3 09/65] bus/fslmc: centralize MC version and SoC detection in the bus layer Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 10/65] net/dpaa2: remove unused soft parser loader Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 11/65] net/dpaa2: cache per-rxq DPNI queue cfg and share CGID per TC Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 12/65] The dpaa2 PMD so far supported only two Tx buffer release schemes: direct release by hardware, and an absolute Tx confirmation mode (drv_tx_conf=1) where every transmitted buffer is returned on a Tx confirmation queue that software must poll to free the buffers. Absolute confirmation adds a confirmation descriptor and a poll cost for all packets, even those the hardware could free on its own Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 13/65] net/dpaa2: support runtime IEEE1588 timestamping Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 14/65] bus/fslmc: consume dpaa2 DQRR entries in batches Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 15/65] bus/fslmc: align dpaa2 event port depths with hardware rings Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 16/65] net/dpaa2: support multi-DPNI FS redirect and QoS table v3 Prashant Gupta
2026-10-23 13:42 ` [PATCH v4-S3 17/65] net/dpaa2: rework xstats with page table and MAC support Prashant Gupta
2026-10-23 13:42 ` Prashant Gupta [this message]
2026-10-23 13:42 ` [PATCH v4-S3 19/65] net/dpaa2: reimplement xstats_get() on top of xstats_get_by_id() Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 20/65] net/dpaa2: fetch only requested MAC xstats in one MC call Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 21/65] net/dpaa2: rework flow with per-table profile and group types Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 22/65] net/dpaa2: reimplement RSS distribution via rte_flow Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 23/65] net/dpaa2: expand IP address extracts for RSS hashing Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 24/65] net/dpaa2: add policer v2 MC command and L2/L3 byte units Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 25/65] net/dpaa2: support rte_mtr and METER rte_flow action Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 26/65] net/dpaa2: program flow table miss actions via rte_flow Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 27/65] net/dpaa2: support DCB Rx mode " Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 28/65] net/dpaa2: reject Rx queue deferred start Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 29/65] bus/fslmc: support DPCI peer and dynamic queues Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 30/65] bus/fslmc: add alloc/free DPIO API for non-affine portals Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 31/65] event/dpaa2: rework event port model and DPCI handling Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 32/65] event/dpaa2: fix Tx adapter enqueue for mixed destinations Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 33/65] event/dpaa2: rework self test for dynamic link and balance check Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 34/65] event/dpaa2: add DPCON based standalone Rx scheduler Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 35/65] event/dpaa2: add push mode to DPCON " Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 36/65] event/dpaa2: drain Rx scheduler queues on destroy Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 37/65] event/dpaa2: track and detach attached Rx queues Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 38/65] net/dpaa2: add multi-port Tx API Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 39/65] event/dpaa2: limit attached Rx flows per event queue Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 40/65] eventdev: fix port link/unlink callback return documentation Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 41/65] event/dpaa2: allow event queue link to multiple ports Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 42/65] event/dpaa2: report available DPIO count and fix create cleanup Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 43/65] event/dpaa2: use event port DPIO for dequeue wait Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 44/65] bus/fslmc: consolidate DPIO interrupt setup and bound coalescing Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 45/65] event/dpaa2: honor configured dequeue timeout Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 46/65] bus/fslmc: use EAL API for DPIO interrupt Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 47/65] bus/fslmc: defer DPIO interrupt setup and bind portal to worker core Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 48/65] bus/fslmc: move Tx SG mempool to fslmc bus Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 49/65] net/dpaa2: move DPNI endpoint lookup out of the " Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 50/65] net/dpaa2: add APIs to query device info and set default action Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 51/65] net/dpaa2: consolidate dequeue paths and optimize fast path Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 52/65] net/dpaa2: bind per-queue DPIO for rx-queue interrupts Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 53/65] net/dpaa2: add API to clean Tx confirmation queue Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 54/65] event/dpaa2: fix DQRR held buffer accounting on enqueue Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 55/65] bus/fslmc: store dequeue dpio in mbuf seq dynfield Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 56/65] bus/fslmc: use explicit flags for mbuf seqn encoding Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 57/65] net/dpaa2: unify tx burst path for ordered and atomic enqueue Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 58/65] crypto/dpaa2_sec: unify enqueue burst path for ordered enqueue Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 59/65] bus/fslmc: track atomic DCA context per dequeue dpio Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 60/65] bus/fslmc: move enqueue response descriptors to per-queue Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 61/65] event/dpaa2: add ordered schedule type support Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 62/65] bus/fslmc: make DPAA2 ORP/ODP ordering per-queue instead of per-device Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 63/65] event/dpaa2: support multi-port enqueue in selftest random event generator Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 64/65] event/dpaa2: do not fail device creation on DPCI errors Prashant Gupta
2026-10-23 13:43 ` [PATCH v4-S3 65/65] net/dpaa2: add Tx fast path for no-confirmation case Prashant Gupta
2026-09-15 15:42 ` [PATCH v3-S2 00/13] net/dpaa2: flow, meter and parser features Stephen Hemminger
2026-09-22 9:55 ` [PATCH v4-S2 " Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-09-22 9:55 ` [PATCH v4-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-09-22 13:39 ` [PATCH v4-S2 00/13] net/dpaa2: flow, meter and parser features Stephen Hemminger
2026-10-01 7:32 ` [PATCH v5-S2 " Prashant Gupta
2026-10-01 7:32 ` [PATCH v5-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-01 7:32 ` [PATCH v5-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-01 7:32 ` [PATCH v5-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-10-01 7:32 ` [PATCH v5-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-01 7:32 ` [PATCH v5-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-01 7:33 ` [PATCH v5-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-02 16:42 ` [PATCH v5-S2 00/13] net/dpaa2: flow, meter and parser features Stephen Hemminger
2026-10-06 15:09 ` [PATCH v6-S2 " Prashant Gupta
2026-10-06 15:09 ` [PATCH v6-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-06 15:09 ` [PATCH v6-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-06 15:09 ` [PATCH v6-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-06 15:10 ` [PATCH v6-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 00/13] net/dpaa2: flow, meter and parser features Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-07 6:02 ` [PATCH v7-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-07 16:25 ` [PATCH v7-S2 00/13] net/dpaa2: flow, meter and parser features Stephen Hemminger
2026-10-09 10:48 ` [PATCH v8-S2 00/13] net/dpaa2 updates Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-09 10:48 ` [PATCH v8-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-09 10:49 ` [PATCH v8-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-09 19:09 ` [PATCH v8-S2 00/13] net/dpaa2 updates Stephen Hemminger
2026-10-12 7:04 ` [PATCH v9-S2 " Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 01/13] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-13 14:52 ` Stephen Hemminger
2026-10-12 7:04 ` [PATCH v9-S2 02/13] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 03/13] net/dpaa2: support larger burst size Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 04/13] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-13 14:54 ` Stephen Hemminger
2026-10-12 7:04 ` [PATCH v9-S2 05/13] net/dpaa2: support meter and policing Prashant Gupta
2026-10-13 14:55 ` Stephen Hemminger
2026-10-13 14:56 ` Stephen Hemminger
2026-10-13 15:11 ` Stephen Hemminger
2026-10-12 7:04 ` [PATCH v9-S2 06/13] net/dpaa2: support flow drop action Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 07/13] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 08/13] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 09/13] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 10/13] net/dpaa2: restructure dpaa2 parser processing Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 11/13] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 12/13] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-12 7:04 ` [PATCH v9-S2 13/13] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-12 21:22 ` [PATCH v9-S2 00/13] net/dpaa2 updates Stephen Hemminger
2026-10-14 5:43 ` [PATCH v10-S2 00/11] " Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 01/11] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 02/11] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 03/11] net/dpaa2: support larger burst size Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 04/11] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 05/11] net/dpaa2: support flow drop action Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 06/11] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 07/11] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 08/11] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-14 5:43 ` [PATCH v10-S2 09/11] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-14 17:18 ` Stephen Hemminger
2026-10-14 5:43 ` [PATCH v10-S2 10/11] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-14 5:44 ` [PATCH v10-S2 11/11] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 00/11] net/dpaa2 updates Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 01/11] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 02/11] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 03/11] net/dpaa2: support larger burst size Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 04/11] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 05/11] net/dpaa2: support flow drop action Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 06/11] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 07/11] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 08/11] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 09/11] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-15 9:25 ` [PATCH v11-S2 10/11] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-15 23:36 ` Stephen Hemminger
2026-10-15 9:25 ` [PATCH v11-S2 11/11] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-15 23:26 ` [PATCH v11-S2 00/11] net/dpaa2 updates Stephen Hemminger
2026-10-16 7:03 ` [PATCH v12-S2 " Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 01/11] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 02/11] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 03/11] net/dpaa2: support larger burst size Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 04/11] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 05/11] net/dpaa2: support flow drop action Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 06/11] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 07/11] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 08/11] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 09/11] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-16 7:03 ` [PATCH v12-S2 10/11] net/dpaa2: remove unused soft parser driver Prashant Gupta
2026-10-20 13:45 ` Stephen Hemminger
2026-10-16 7:03 ` [PATCH v12-S2 11/11] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-16 16:18 ` [PATCH v12-S2 00/11] net/dpaa2 updates Stephen Hemminger
2026-10-19 18:34 ` [PATCH v13-S2 00/10] " Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 01/10] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 02/10] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 03/10] net/dpaa2: support larger burst size Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 04/10] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 05/10] net/dpaa2: support flow drop action Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 06/10] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 07/10] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 08/10] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 09/10] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-19 18:34 ` [PATCH v13-S2 10/10] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 00/10] net/dpaa2 updates Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 01/10] net/dpaa2: fix integer overflow in CCSR region mapping Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 02/10] net/dpaa2: set Tx confirmation on device init Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 03/10] net/dpaa2: support larger burst size Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 04/10] net/dpaa2: support MPLS and PPPoE flow distribution Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 05/10] net/dpaa2: support flow drop action Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 06/10] net/dpaa2: set default flow miss action per device Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 07/10] net/dpaa2: identify Rx mbuf hash information by FLC Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 08/10] net/dpaa2: add minimum key size support Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 09/10] net/dpaa2: parse tunnel and fragmented packet types Prashant Gupta
2026-10-20 14:48 ` [PATCH v14-S2 10/10] net/dpaa2: rename Rx queue flags Prashant Gupta
2026-10-20 15:07 ` [PATCH v14-S2 00/10] net/dpaa2 updates Stephen Hemminger
2026-09-10 16:57 ` [PATCH v2 00/47] NXP DPAA2 driver updates and fixes Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261023134346.37727-19-prashant.gupta_3@nxp.com \
--to=prashant.gupta_3@nxp.com \
--cc=dev@dpdk.org \
--cc=jun.yang@nxp.com \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox