From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH 00/20] promote long standing experimental API to stable
Date: Wed, 7 Oct 2026 14:39:30 -0700 [thread overview]
Message-ID: <20261007214115.3092715-1-stephen@networkplumber.org> (raw)
The experimental tag is supposed to be temporary: a way to ship an API
while its shape is still being settled. In practice many symbols keep
the tag long after the interface has stopped changing. That discourages
use, because applications reasonably avoid an API that advertises it may
disappear, and it hides the small number of APIs that really are still
in flux.
This series promotes 196 symbols across fifteen libraries. The oldest
date from 20.11 and the bulk are three years old or more. In every case
the prototype has not changed since it was introduced, and most are in
use by in-tree applications, examples or drivers.
By introduction release:
20.11 SWX port, table and pipeline API
21.05 SWX fd and ring ports, wildcard match table,
cryptodev raw enqueue/dequeue and mbuf-to-vec helpers
21.08 SWX selector table
21.11 SWX learner table
22.07 SWX hash function registration, learner timeout and rearm
22.11 SWX pipeline lookup and code generation
23.03 SWX RSS and IPsec, cryptodev algorithm name helpers
23.07 pdcp library, node ip6 route and rewrite
23.11 dispatcher library, node ip4 reassembly and udp4 input,
power uncore environment and frequency list
24.03 argparse parse and parse_type, node ethdev rx next update
24.07 hash RCU queue reclaim, mempool memory range and
object alignment getters
24.11 power PM QoS, thash key generation, eal lcore variables,
cryptodev asymmetric opcap check
25.03 soring enqueue, dequeue, acquire and release,
cmdline bool token ops
25.07 node ip4/ip6 FIB and mbuf dynfield register,
rte_memzero_explicit, rte_free_sensitive, rte_size_to_str
25.11 argparse print_help, rte_basename,
ethdev link connector to string
Where a library had nothing left to keep experimental the file level
"all functions in this file may be changed or removed" warnings are
dropped as well, along with the then unused rte_compat.h includes.
The node library deserves a note. Most of its headers carried that file
level warning while rte_node_ip4_route_add() and rte_node_ip4_rewrite_add()
sat underneath it as stable exports, so the warning was already wrong.
The whole library is promoted. An API that cannot be declared stable
after several releases of use is not helping anyone, and should be
removed rather than left in limbo.
Deliberately left experimental:
- trace point symbols (__rte_*_trace_*) in eal, ethdev, eventdev,
cryptodev, dmadev, bbdev and mempool
- debug and dump output whose format may still change:
rte_soring_dump, rte_ring_headtail_dump, rte_bbdev_queue_ops_dump,
rte_bbdev_ops_param_string and rte_bbdev_ops_trace
- APIs with only one implementation, where the interface should not
be frozen before a second driver has tried to use it.
- the metrics rte_metrics_tel_* API, which has no in-tree users and
should be deprecated rather than promoted; a deprecation notice
will be sent separately
- new subsystems that have not had a release of real use: the
eventdev vector adapter, the graph feature arc and the pmu
library (all 25.07), and the dmadev access pair group API (25.11)
- the soring peek API, rte_eth_get_queue_rate_limit,
rte_mempool_stats_reset and rte_bbdev_queue_stats_get, added in
26.07
- rte_cpu_socket_id, added this release
- rte_event_eth_rx_adapter_queues_add, deferred in commit
42235267000c ("eventdev/eth_rx: promote adapter API to stable")
- eal rte_vfio_get_device_info, left alone while the VFIO rework is
in progress
- rte_str_skip_leading_spaces, a static inline in rte_string_fns.h
with no exported symbol; it can follow separately
- mbuf history API; debug and new in 25.11
No change in functionality, and test results are the same as
before these changes.
Stephen Hemminger (20):
eal: add missing export for rte_basename
eal: promote rte_basename to stable
eal: promote explicit zero and sensitive free to stable
eal: promote rte_size_to_str to stable
eal: promote lcore variables API to stable
cmdline: promote bool token ops to stable
ethdev: promote link connector to string to stable
port: promote SWX port API to stable
table: promote SWX table API to stable
pipeline: promote SWX IPsec API to stable
pipeline: promote SWX pipeline and control API to stable
power: promote PM QoS and uncore API to stable
ring: promote soring API to stable
dispatcher: promote API to stable
argparse: promote API to stable
node: promote API to stable
hash: promote RCU reclaim and thash key generation to stable
cryptodev: promote algorithm helpers to stable
pdcp: promote API to stable
mempool: promote memory range and alignment to stable
doc/guides/rel_notes/release_26_11.rst | 50 ++++++++-
lib/argparse/rte_argparse.c | 6 +-
lib/argparse/rte_argparse.h | 13 ---
lib/cmdline/cmdline_parse_bool.c | 2 +-
lib/cryptodev/rte_crypto_sym.h | 2 -
lib/cryptodev/rte_cryptodev.c | 10 +-
lib/cryptodev/rte_cryptodev.h | 10 --
lib/dispatcher/rte_dispatcher.c | 26 ++---
lib/dispatcher/rte_dispatcher.h | 18 ---
lib/eal/common/eal_common_lcore_var.c | 2 +-
lib/eal/common/eal_common_memory.c | 2 +-
lib/eal/common/eal_common_string_fns.c | 2 +-
lib/eal/common/rte_malloc.c | 2 +-
lib/eal/include/rte_common.h | 4 -
lib/eal/include/rte_lcore_var.h | 3 -
lib/eal/include/rte_malloc.h | 4 -
lib/eal/include/rte_memory.h | 4 -
lib/eal/include/rte_string_fns.h | 4 -
lib/eal/unix/rte_basename.c | 2 +-
lib/eal/windows/rte_basename.c | 2 +
lib/ethdev/rte_ethdev.c | 2 +-
lib/ethdev/rte_ethdev.h | 4 -
lib/hash/rte_cuckoo_hash.c | 2 +-
lib/hash/rte_hash.h | 1 -
lib/hash/rte_thash.c | 2 +-
lib/hash/rte_thash.h | 4 -
lib/mempool/rte_mempool.c | 4 +-
lib/mempool/rte_mempool.h | 8 --
lib/node/ethdev_ctrl.c | 2 +-
lib/node/ip4_lookup_fib.c | 4 +-
lib/node/ip4_reassembly.c | 2 +-
lib/node/ip6_lookup.c | 2 +-
lib/node/ip6_lookup_fib.c | 4 +-
lib/node/ip6_rewrite.c | 2 +-
lib/node/node_mbuf_dynfield.c | 2 +-
lib/node/rte_node_eth_api.h | 6 -
lib/node/rte_node_ip4_api.h | 9 --
lib/node/rte_node_ip6_api.h | 9 --
lib/node/rte_node_mbuf_dynfield.h | 6 -
lib/node/rte_node_pkt_cls_api.h | 4 -
lib/node/rte_node_udp4_input_api.h | 8 --
lib/node/udp4_input.c | 4 +-
lib/pdcp/rte_pdcp.c | 10 +-
lib/pdcp/rte_pdcp.h | 29 -----
lib/pdcp/rte_pdcp_group.h | 6 -
lib/pipeline/rte_swx_ctl.c | 34 +++---
lib/pipeline/rte_swx_ctl.h | 61 -----------
lib/pipeline/rte_swx_ipsec.c | 14 +--
lib/pipeline/rte_swx_ipsec.h | 8 --
lib/pipeline/rte_swx_pipeline.c | 146 ++++++++++++-------------
lib/pipeline/rte_swx_pipeline.h | 32 ------
lib/port/rte_swx_port_ethdev.c | 4 +-
lib/port/rte_swx_port_fd.c | 4 +-
lib/port/rte_swx_port_ring.c | 4 +-
lib/port/rte_swx_port_source_sink.c | 6 +-
lib/power/rte_power_qos.c | 4 +-
lib/power/rte_power_qos.h | 10 --
lib/power/rte_power_uncore.c | 8 +-
lib/power/rte_power_uncore.h | 5 -
lib/ring/rte_soring.c | 4 +-
lib/ring/rte_soring.h | 72 ------------
lib/ring/soring.c | 32 +++---
lib/table/rte_swx_table_em.c | 4 +-
lib/table/rte_swx_table_learner.c | 20 ++--
lib/table/rte_swx_table_learner.h | 12 --
lib/table/rte_swx_table_selector.c | 12 +-
lib/table/rte_swx_table_selector.h | 8 --
lib/table/rte_swx_table_wm.c | 2 +-
68 files changed, 248 insertions(+), 562 deletions(-)
--
2.53.0
next reply other threads:[~2026-10-07 21:41 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-07 21:39 Stephen Hemminger [this message]
2026-10-07 21:39 ` [PATCH 01/20] eal: add missing export for rte_basename Stephen Hemminger
2026-10-08 9:56 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 02/20] eal: promote rte_basename to stable Stephen Hemminger
2026-10-08 9:56 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 03/20] eal: promote explicit zero and sensitive free " Stephen Hemminger
2026-10-08 10:01 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 04/20] eal: promote rte_size_to_str " Stephen Hemminger
2026-10-08 10:01 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 05/20] eal: promote lcore variables API " Stephen Hemminger
2026-10-08 10:04 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 06/20] cmdline: promote bool token ops " Stephen Hemminger
2026-10-08 10:05 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 07/20] ethdev: promote link connector to string " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 08/20] port: promote SWX port API " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 09/20] table: promote SWX table " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 10/20] pipeline: promote SWX IPsec " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 11/20] pipeline: promote SWX pipeline and control " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 12/20] power: promote PM QoS and uncore " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 13/20] ring: promote soring " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 14/20] dispatcher: promote " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 15/20] argparse: " Stephen Hemminger
2026-10-08 10:15 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 16/20] node: " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 17/20] hash: promote RCU reclaim and thash key generation " Stephen Hemminger
2026-10-08 10:16 ` Bruce Richardson
2026-10-07 21:39 ` [PATCH 18/20] cryptodev: promote algorithm helpers " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 19/20] pdcp: promote API " Stephen Hemminger
2026-10-07 21:39 ` [PATCH 20/20] mempool: promote memory range and alignment " Stephen Hemminger
2026-10-08 7:19 ` Morten Brørup
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=20261007214115.3092715-1-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.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 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.