From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Thomas Monjalon <thomas@monjalon.net>,
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Subject: [PATCH 17/22] ethdev: promote device info and dump helpers to stable
Date: Tue, 1 Sep 2026 13:23:16 -0700 [thread overview]
Message-ID: <20260901203217.1485915-18-stephen@networkplumber.org> (raw)
In-Reply-To: <20260901203217.1485915-1-stephen@networkplumber.org>
A set of introspection helpers that have been stable for years:
21.11 rte_eth_dev_capability_name, rte_eth_dev_conf_get,
rte_eth_macaddrs_get
22.03 rte_eth_dev_priv_dump
22.11 rte_eth_rx_descriptor_dump, rte_eth_tx_descriptor_dump
23.11 rte_eth_dev_rss_algo_name
24.03 rte_eth_find_rss_algo
24.11 rte_eth_dev_get_reg_info_ext
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/rel_notes/release_26_11.rst | 6 +++++
lib/ethdev/rte_ethdev.c | 18 +++++++-------
lib/ethdev/rte_ethdev.h | 33 --------------------------
3 files changed, 15 insertions(+), 42 deletions(-)
diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst
index e0c8afdb04..2b085dcd51 100644
--- a/doc/guides/rel_notes/release_26_11.rst
+++ b/doc/guides/rel_notes/release_26_11.rst
@@ -136,6 +136,12 @@ API Changes
* priority flow:
``rte_eth_dev_priority_flow_ctrl_queue_configure`` and
``rte_eth_dev_priority_flow_ctrl_queue_info_get``
+ * device info:
+ ``rte_eth_dev_capability_name``, ``rte_eth_dev_conf_get``,
+ ``rte_eth_macaddrs_get``, ``rte_eth_dev_priv_dump``,
+ ``rte_eth_rx_descriptor_dump``, ``rte_eth_tx_descriptor_dump``,
+ ``rte_eth_dev_rss_algo_name``, ``rte_eth_find_rss_algo`` and
+ ``rte_eth_dev_get_reg_info_ext``
ABI Changes
diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index b4f36a9b1b..0dc7e3b5d2 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -1171,7 +1171,7 @@ eth_dev_offload_names(uint64_t bitmask, char *buf, size_t size,
return buf;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_dev_capability_name, 21.11)
+RTE_EXPORT_SYMBOL(rte_eth_dev_capability_name)
const char *
rte_eth_dev_capability_name(uint64_t capability)
{
@@ -4153,7 +4153,7 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
return 0;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_dev_conf_get, 21.11)
+RTE_EXPORT_SYMBOL(rte_eth_dev_conf_get)
int
rte_eth_dev_conf_get(uint16_t port_id, struct rte_eth_conf *dev_conf)
{
@@ -4314,7 +4314,7 @@ rte_eth_dev_set_ptypes(uint16_t port_id, uint32_t ptype_mask,
return ret;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_macaddrs_get, 21.11)
+RTE_EXPORT_SYMBOL(rte_eth_macaddrs_get)
int
rte_eth_macaddrs_get(uint16_t port_id, struct rte_ether_addr *ma,
unsigned int num)
@@ -5155,7 +5155,7 @@ rte_eth_dev_rss_hash_conf_get(uint16_t port_id,
return ret;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_dev_rss_algo_name, 23.11)
+RTE_EXPORT_SYMBOL(rte_eth_dev_rss_algo_name)
const char *
rte_eth_dev_rss_algo_name(enum rte_eth_hash_function rss_algo)
{
@@ -5170,7 +5170,7 @@ rte_eth_dev_rss_algo_name(enum rte_eth_hash_function rss_algo)
return name;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_find_rss_algo, 24.03)
+RTE_EXPORT_SYMBOL(rte_eth_find_rss_algo)
int
rte_eth_find_rss_algo(const char *name, uint32_t *algo)
{
@@ -6845,7 +6845,7 @@ rte_eth_dev_get_reg_info(uint16_t port_id, struct rte_dev_reg_info *info)
return 0;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_dev_get_reg_info_ext, 24.11)
+RTE_EXPORT_SYMBOL(rte_eth_dev_get_reg_info_ext)
int
rte_eth_dev_get_reg_info_ext(uint16_t port_id, struct rte_dev_reg_info *info)
{
@@ -7316,7 +7316,7 @@ rte_eth_ip_reassembly_conf_set(uint16_t port_id,
return ret;
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_dev_priv_dump, 22.03)
+RTE_EXPORT_SYMBOL(rte_eth_dev_priv_dump)
int
rte_eth_dev_priv_dump(uint16_t port_id, FILE *file)
{
@@ -7335,7 +7335,7 @@ rte_eth_dev_priv_dump(uint16_t port_id, FILE *file)
return eth_err(port_id, dev->dev_ops->eth_dev_priv_dump(dev, file));
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_rx_descriptor_dump, 22.11)
+RTE_EXPORT_SYMBOL(rte_eth_rx_descriptor_dump)
int
rte_eth_rx_descriptor_dump(uint16_t port_id, uint16_t queue_id,
uint16_t offset, uint16_t num, FILE *file)
@@ -7362,7 +7362,7 @@ rte_eth_rx_descriptor_dump(uint16_t port_id, uint16_t queue_id,
dev->dev_ops->eth_rx_descriptor_dump(dev, queue_id, offset, num, file));
}
-RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_eth_tx_descriptor_dump, 22.11)
+RTE_EXPORT_SYMBOL(rte_eth_tx_descriptor_dump)
int
rte_eth_tx_descriptor_dump(uint16_t port_id, uint16_t queue_id,
uint16_t offset, uint16_t num, FILE *file)
diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index 4eea5b990d..b75cd072d9 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -2379,9 +2379,6 @@ const char *rte_eth_dev_rx_offload_name(uint64_t offload);
const char *rte_eth_dev_tx_offload_name(uint64_t offload);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
* Get RTE_ETH_DEV_CAPA_* flag name.
*
* @param capability
@@ -2389,7 +2386,6 @@ const char *rte_eth_dev_tx_offload_name(uint64_t offload);
* @return
* Capability name or 'UNKNOWN' if the flag cannot be recognized.
*/
-__rte_experimental
const char *rte_eth_dev_capability_name(uint64_t capability);
/**
@@ -3506,9 +3502,6 @@ int rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id,
int rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
* Retrieve the Ethernet addresses of an Ethernet device.
*
* @param port_id
@@ -3525,7 +3518,6 @@ int rte_eth_macaddr_get(uint16_t port_id, struct rte_ether_addr *mac_addr);
* - (-ENODEV) if *port_id* invalid.
* - (-EINVAL) if bad parameter.
*/
-__rte_experimental
int rte_eth_macaddrs_get(uint16_t port_id, struct rte_ether_addr *ma,
unsigned int num);
@@ -3552,9 +3544,6 @@ int rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
__rte_warn_unused_result;
/**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice.
- *
* Retrieve the configuration of an Ethernet device.
*
* @param port_id
@@ -3566,7 +3555,6 @@ int rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
* - (-ENODEV) if *port_id* invalid.
* - (-EINVAL) if bad parameter.
*/
-__rte_experimental
int rte_eth_dev_conf_get(uint16_t port_id, struct rte_eth_conf *dev_conf)
__rte_warn_unused_result;
@@ -4825,9 +4813,6 @@ rte_eth_dev_rss_hash_conf_get(uint16_t port_id,
struct rte_eth_rss_conf *rss_conf);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice.
- *
* Get the name of RSS hash algorithm.
*
* @param rss_algo
@@ -4836,14 +4821,10 @@ rte_eth_dev_rss_hash_conf_get(uint16_t port_id,
* @return
* Hash algorithm name or 'UNKNOWN' if the rss_algo cannot be recognized.
*/
-__rte_experimental
const char *
rte_eth_dev_rss_algo_name(enum rte_eth_hash_function rss_algo);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice.
- *
* Get RSS hash algorithm by its name.
*
* @param name
@@ -4856,7 +4837,6 @@ rte_eth_dev_rss_algo_name(enum rte_eth_hash_function rss_algo);
* - (0) if successful.
* - (-EINVAL) if not found.
*/
-__rte_experimental
int
rte_eth_find_rss_algo(const char *name, uint32_t *algo);
@@ -5251,7 +5231,6 @@ int rte_eth_get_monitor_addr(uint16_t port_id, uint16_t queue_id,
* - (-EIO) if device is removed.
* - others depends on the specific operations implementation.
*/
-__rte_experimental
int rte_eth_dev_get_reg_info_ext(uint16_t port_id, struct rte_dev_reg_info *info);
/**
@@ -5925,9 +5904,6 @@ typedef struct {
} rte_eth_ip_reassembly_dynfield_t;
/**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
* Dump private info from device to a file. Provided data and the order depends
* on the PMD.
*
@@ -5942,13 +5918,9 @@ typedef struct {
* - (-ENOTSUP) if the device does not support this function.
* - (-EIO) if device is removed.
*/
-__rte_experimental
int rte_eth_dev_priv_dump(uint16_t port_id, FILE *file);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
* Dump ethdev Rx descriptor info to a file.
*
* This API is used for debugging, not a dataplane API.
@@ -5968,14 +5940,10 @@ int rte_eth_dev_priv_dump(uint16_t port_id, FILE *file);
* - On success, zero.
* - On failure, a negative value.
*/
-__rte_experimental
int rte_eth_rx_descriptor_dump(uint16_t port_id, uint16_t queue_id,
uint16_t offset, uint16_t num, FILE *file);
/**
- * @warning
- * @b EXPERIMENTAL: this API may change, or be removed, without prior notice
- *
* Dump ethdev Tx descriptor info to a file.
*
* This API is used for debugging, not a dataplane API.
@@ -5995,7 +5963,6 @@ int rte_eth_rx_descriptor_dump(uint16_t port_id, uint16_t queue_id,
* - On success, zero.
* - On failure, a negative value.
*/
-__rte_experimental
int rte_eth_tx_descriptor_dump(uint16_t port_id, uint16_t queue_id,
uint16_t offset, uint16_t num, FILE *file);
--
2.53.0
next prev parent reply other threads:[~2026-09-01 20:34 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-01 20:22 [PATCH 00/22] ethdev: convert experimental symbols etc Stephen Hemminger
2026-09-01 20:23 ` [PATCH 01/22] ethdev: promote meter API to stable Stephen Hemminger
2026-09-01 20:23 ` [PATCH 02/22] ethdev: promote module EEPROM " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 03/22] ethdev: promote rte_flow_conv " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 04/22] ethdev: promote hairpin API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 05/22] ethdev: promote read clock and flow dump " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 06/22] ethdev: promote FEC API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 07/22] ethdev: promote link speed helpers " Stephen Hemminger
2026-09-02 8:05 ` Bruce Richardson
2026-09-01 20:23 ` [PATCH 08/22] ethdev: promote flow tunnel offload API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 09/22] ethdev: promote aged flow query " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 10/22] ethdev: promote indirect action API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 11/22] ethdev: promote asynchronous flow " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 12/22] ethdev: promote flex item " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 13/22] ethdev: promote remaining aged flow helpers " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 14/22] ethdev: promote congestion management API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 15/22] ethdev: promote IP reassembly offload " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 16/22] ethdev: promote per-queue priority flow control " Stephen Hemminger
2026-09-01 20:23 ` Stephen Hemminger [this message]
2026-09-01 20:23 ` [PATCH 18/22] ethdev: promote speed lanes API " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 19/22] ethdev: promote queue helpers and aggregated ports " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 20/22] ethdev: promote remaining aged symbols " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 21/22] ethdev: promote fast path inline helpers " Stephen Hemminger
2026-09-01 20:23 ` [PATCH 22/22] ethdev: promote experimental structures " 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=20260901203217.1485915-18-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=thomas@monjalon.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.