patch 'net/ice: do not include private headers in testpmd' has been queued to stable release 24.11.9
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Nov 5 17:42:04 CET 2026
Hi,
FYI, your patch has been queued to stable release 24.11.9
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/07/26. 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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/bd9eb2effd39a6be2eadd258d0eb418632036952
Thanks.
Luca Boccassi
---
>From bd9eb2effd39a6be2eadd258d0eb418632036952 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov at intel.com>
Date: Thu, 15 Oct 2026 15:21:04 +0100
Subject: [PATCH] net/ice: do not include private headers in testpmd
[ upstream commit 14ce50bbf0af4f26bc350b7587e492af5b0e2814 ]
Currently, the `ice_testpmd.c` file includes headers that are only
available to driver itself, but should not be available to applications,
including testpmd. Instead, testpmd should access them through public
PMD specific API.
The ice driver does not have one (even though it offers a testpmd file),
so add the public PMD-specific API header, move all function definitions
into that file, and get rid of driver-private includes in testpmd file.
Fixes: df539aaf35cb ("net/ice: refactor flex descriptor protocol field extraction")
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin at intel.com>
---
doc/guides/nics/ice.rst | 3 ++
drivers/net/ice/ice_diagnose.c | 1 +
drivers/net/ice/ice_ethdev.h | 9 ----
drivers/net/ice/ice_testpmd.c | 7 +++-
drivers/net/ice/meson.build | 1 +
drivers/net/ice/rte_pmd_ice.h | 77 ++++++++++++++++++++++++++++++++++
6 files changed, 87 insertions(+), 11 deletions(-)
create mode 100644 drivers/net/ice/rte_pmd_ice.h
diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst
index 5ec837346bb..e7b458971a7 100644
--- a/doc/guides/nics/ice.rst
+++ b/doc/guides/nics/ice.rst
@@ -548,6 +548,9 @@ To start ``testpmd``, and add vlan 10 to port 0:
Diagnostic Utilities
--------------------
+The diagnostic dump functions are also available to applications
+through the public ``rte_pmd_ice.h`` header.
+
Dump DDP Package
~~~~~~~~~~~~~~~~
diff --git a/drivers/net/ice/ice_diagnose.c b/drivers/net/ice/ice_diagnose.c
index c05b8959712..26399e38a43 100644
--- a/drivers/net/ice/ice_diagnose.c
+++ b/drivers/net/ice/ice_diagnose.c
@@ -12,6 +12,7 @@
#include "ice_ethdev.h"
#include "ice_rxtx.h"
+#include "rte_pmd_ice.h"
#define ICE_BLK_MAX_COUNT 512
#define ICE_BUFF_SEG_HEADER_FLAG 0x1
diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h
index 0dc3f0224c6..b52adfdd2dd 100644
--- a/drivers/net/ice/ice_ethdev.h
+++ b/drivers/net/ice/ice_ethdev.h
@@ -748,15 +748,6 @@ ice_align_floor(int n)
((phy_type) & ICE_PHY_TYPE_HIGH_200G_AUI8_AOC_ACC) || \
((phy_type) & ICE_PHY_TYPE_HIGH_200G_AUI8))
-__rte_experimental
-int rte_pmd_ice_dump_package(uint16_t port, uint8_t **buff, uint32_t *size);
-
-__rte_experimental
-int rte_pmd_ice_dump_switch(uint16_t port, uint8_t **buff, uint32_t *size);
-
-__rte_experimental
-int rte_pmd_ice_dump_txsched(uint16_t port, bool detail, FILE *stream);
-
int
ice_tm_setup_txq_node(struct ice_pf *pf, struct ice_hw *hw, uint16_t qid, uint32_t node_teid);
diff --git a/drivers/net/ice/ice_testpmd.c b/drivers/net/ice/ice_testpmd.c
index 98c02d68c6e..0c135d79a35 100644
--- a/drivers/net/ice/ice_testpmd.c
+++ b/drivers/net/ice/ice_testpmd.c
@@ -2,14 +2,17 @@
* Copyright(c) 2022 Intel Corporation.
*/
-#include <stdlib.h>
+#include <errno.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <rte_pmd_ice.h>
#include <cmdline_parse_num.h>
#include <cmdline_parse_string.h>
#include "testpmd.h"
-#include "ice_ethdev.h"
/* Fixed size for ICE ddp runtime configure */
#define ICE_BUFF_SIZE 0x000c9000
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index 81ebc706f40..241e567b85e 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -17,6 +17,7 @@ sources = files(
)
testpmd_sources = files('ice_testpmd.c')
+headers = files('rte_pmd_ice.h')
deps += ['hash', 'net', 'common_iavf']
includes += include_directories('base', '../../common/iavf')
diff --git a/drivers/net/ice/rte_pmd_ice.h b/drivers/net/ice/rte_pmd_ice.h
new file mode 100644
index 00000000000..881dc4cc56b
--- /dev/null
+++ b/drivers/net/ice/rte_pmd_ice.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2026 Intel Corporation
+ */
+
+#ifndef _RTE_PMD_ICE_H_
+#define _RTE_PMD_ICE_H_
+
+/**
+ * @file rte_pmd_ice.h
+ *
+ * ICE PMD specific diagnostic functions.
+ */
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+#include <rte_compat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Dump the runtime DDP package configuration.
+ *
+ * @param port
+ * The port identifier of the Ethernet device.
+ * @param buff
+ * Pointer to a `malloc()`-allocated buffer. On success, it will be freed by
+ * `free()` and replaced by a newly `malloc()`-allocated buffer; the caller
+ * must free the resulting buffer.
+ * @param size
+ * Input buffer size in bytes; receives the size of the dump on success.
+ * @return
+ * 0 on success, -ENODEV for an invalid port, -ENOTSUP for a non-ICE port,
+ * or a negative error code on failure.
+ */
+__rte_experimental
+int rte_pmd_ice_dump_package(uint16_t port, uint8_t **buff, uint32_t *size);
+
+/**
+ * Dump the runtime switch configuration.
+ *
+ * @param port
+ * The port identifier of the Ethernet device.
+ * @param buff
+ * Pointer to a caller-allocated output buffer.
+ * @param size
+ * Input buffer size in bytes; receives the size of the dump on success.
+ * @return
+ * 0 on success, -ENODEV for an invalid port, -ENOTSUP for a non-ICE port,
+ * or a negative error code on failure.
+ */
+__rte_experimental
+int rte_pmd_ice_dump_switch(uint16_t port, uint8_t **buff, uint32_t *size);
+
+/**
+ * Dump the Tx scheduling tree to a stream in DOT format.
+ *
+ * @param port
+ * The port identifier of the Ethernet device.
+ * @param detail
+ * Include node configuration parameters when true.
+ * @param stream
+ * Output stream opened by the caller.
+ * @return
+ * 0 on success, -ENODEV for an invalid port, or -ENOTSUP for a non-ICE port.
+ */
+__rte_experimental
+int rte_pmd_ice_dump_txsched(uint16_t port, bool detail, FILE *stream);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTE_PMD_ICE_H_ */
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-11-05 16:42:46.441061465 +0000
+++ 0037-net-ice-do-not-include-private-headers-in-testpmd.patch 2026-11-05 16:42:44.937061264 +0000
@@ -1 +1 @@
-From 14ce50bbf0af4f26bc350b7587e492af5b0e2814 Mon Sep 17 00:00:00 2001
+From bd9eb2effd39a6be2eadd258d0eb418632036952 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 14ce50bbf0af4f26bc350b7587e492af5b0e2814 ]
+
@@ -16 +17,0 @@
-Cc: stable at dpdk.org
@@ -22,9 +23,8 @@
- doc/guides/nics/ice.rst | 3 +
- doc/guides/rel_notes/release_26_11.rst | 2 +
- drivers/net/intel/ice/ice_diagnose.c | 1 +
- drivers/net/intel/ice/ice_ethdev.h | 9 ---
- drivers/net/intel/ice/ice_testpmd.c | 7 ++-
- drivers/net/intel/ice/meson.build | 1 +
- drivers/net/intel/ice/rte_pmd_ice.h | 77 ++++++++++++++++++++++++++
- 7 files changed, 89 insertions(+), 11 deletions(-)
- create mode 100644 drivers/net/intel/ice/rte_pmd_ice.h
+ doc/guides/nics/ice.rst | 3 ++
+ drivers/net/ice/ice_diagnose.c | 1 +
+ drivers/net/ice/ice_ethdev.h | 9 ----
+ drivers/net/ice/ice_testpmd.c | 7 +++-
+ drivers/net/ice/meson.build | 1 +
+ drivers/net/ice/rte_pmd_ice.h | 77 ++++++++++++++++++++++++++++++++++
+ 6 files changed, 87 insertions(+), 11 deletions(-)
+ create mode 100644 drivers/net/ice/rte_pmd_ice.h
@@ -33 +33 @@
-index 79aef433aa5..2bdb8e0bdbd 100644
+index 5ec837346bb..e7b458971a7 100644
@@ -36 +36 @@
-@@ -1021,6 +1021,9 @@ To start ``testpmd``, and add vlan 10 to port 0:
+@@ -548,6 +548,9 @@ To start ``testpmd``, and add vlan 10 to port 0:
@@ -46,18 +46,5 @@
-diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst
-index 03155bc59ee..18481dd7970 100644
---- a/doc/guides/rel_notes/release_26_11.rst
-+++ b/doc/guides/rel_notes/release_26_11.rst
-@@ -168,6 +168,8 @@ New Features
- enabling QinQ tag insertion and outer IPv4/UDP checksum offloads on those paths.
- * Added support for getting and setting link (802.3x) flow control.
- * Added support for Tx rate limiting per queue.
-+ * Made the existing diagnostic dump functions available
-+ through the public ``rte_pmd_ice.h`` header.
-
- * **Updated Intel ixgbe driver.**
-
-diff --git a/drivers/net/intel/ice/ice_diagnose.c b/drivers/net/intel/ice/ice_diagnose.c
-index 4946ace7aec..ecfcdf5559c 100644
---- a/drivers/net/intel/ice/ice_diagnose.c
-+++ b/drivers/net/intel/ice/ice_diagnose.c
-@@ -13,6 +13,7 @@
+diff --git a/drivers/net/ice/ice_diagnose.c b/drivers/net/ice/ice_diagnose.c
+index c05b8959712..26399e38a43 100644
+--- a/drivers/net/ice/ice_diagnose.c
++++ b/drivers/net/ice/ice_diagnose.c
+@@ -12,6 +12,7 @@
@@ -71,5 +58,5 @@
-diff --git a/drivers/net/intel/ice/ice_ethdev.h b/drivers/net/intel/ice/ice_ethdev.h
-index 8d5e17e2dfc..08c2b61519f 100644
---- a/drivers/net/intel/ice/ice_ethdev.h
-+++ b/drivers/net/intel/ice/ice_ethdev.h
-@@ -821,15 +821,6 @@ ice_align_floor(int n)
+diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h
+index 0dc3f0224c6..b52adfdd2dd 100644
+--- a/drivers/net/ice/ice_ethdev.h
++++ b/drivers/net/ice/ice_ethdev.h
+@@ -748,15 +748,6 @@ ice_align_floor(int n)
@@ -91 +78 @@
-diff --git a/drivers/net/intel/ice/ice_testpmd.c b/drivers/net/intel/ice/ice_testpmd.c
+diff --git a/drivers/net/ice/ice_testpmd.c b/drivers/net/ice/ice_testpmd.c
@@ -93,2 +80,2 @@
---- a/drivers/net/intel/ice/ice_testpmd.c
-+++ b/drivers/net/intel/ice/ice_testpmd.c
+--- a/drivers/net/ice/ice_testpmd.c
++++ b/drivers/net/ice/ice_testpmd.c
@@ -115,5 +102,5 @@
-diff --git a/drivers/net/intel/ice/meson.build b/drivers/net/intel/ice/meson.build
-index 322d9597d2e..00077be30a9 100644
---- a/drivers/net/intel/ice/meson.build
-+++ b/drivers/net/intel/ice/meson.build
-@@ -19,6 +19,7 @@ sources = files(
+diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
+index 81ebc706f40..241e567b85e 100644
+--- a/drivers/net/ice/meson.build
++++ b/drivers/net/ice/meson.build
+@@ -17,6 +17,7 @@ sources = files(
@@ -125,3 +112,3 @@
- deps += ['hash', 'net']
-
-diff --git a/drivers/net/intel/ice/rte_pmd_ice.h b/drivers/net/intel/ice/rte_pmd_ice.h
+ deps += ['hash', 'net', 'common_iavf']
+ includes += include_directories('base', '../../common/iavf')
+diff --git a/drivers/net/ice/rte_pmd_ice.h b/drivers/net/ice/rte_pmd_ice.h
@@ -131 +118 @@
-+++ b/drivers/net/intel/ice/rte_pmd_ice.h
++++ b/drivers/net/ice/rte_pmd_ice.h
More information about the stable
mailing list