All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/20] promote long standing experimental API to stable
@ 2026-10-07 21:39 Stephen Hemminger
  2026-10-07 21:39 ` [PATCH 01/20] eal: add missing export for rte_basename Stephen Hemminger
                   ` (19 more replies)
  0 siblings, 20 replies; 30+ messages in thread
From: Stephen Hemminger @ 2026-10-07 21:39 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

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


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2026-10-08 10:16 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-07 21:39 [PATCH 00/20] promote long standing experimental API to stable Stephen Hemminger
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

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.