[v2,00/29] promote many API's to stable

Message ID 20230809001017.293037-1-stephen@networkplumber.org (mailing list archive)
Headers
Series promote many API's to stable |

Message

Stephen Hemminger Aug. 9, 2023, 12:09 a.m. UTC
  Since 23.11 is an LTS release it is time to remove the experimental
bandaid off many API's. There are about 850 API's marked with experimental
on current main branch. This addresses the easy to remove ones and
gets it down to about 690 places.

The rule is any API that has been in since 22.11 needs to have
experimental removed (or deleted). The experimental flag is 
intended to be temporary not a "get out of ABI stability for free" card.

v2 - add more libraries to the mix
   - remove EXPERIMENTAL where tagged in MAINTAINERS

Stephen Hemminger (29):
  bpf: make rte_bpf_dump and rte_bpf_convert stable API's
  cmdline: make experimental API's stable
  ethdev: mark rte_mtr API's as stable
  ethdev: mark rte_tm API's as stable
  pdump: make API's stable
  pcapng: mark API's as stable
  net: remove experimental from functions
  rcu: remove experimental from rte_rcu_qbsr
  lpm: remove experimental
  mbuf: remove experimental from create_extbuf
  hash: remove experimental from toeplitz hash
  timer: remove experimental from rte_timer_next_ticks
  sched: remove experimental
  dmadev: mark API's as not experimental
  meter: remove experimental warning from comments
  power: remove experimental from API's
  kvargs: remove experimental flag
  ip_frag: mark a couple of functions stable
  member: remove experimental tag
  security: remove experimental flag
  vhost: remove experimental from some API's
  bbdev: remove experimental tag
  ipsec: remove experimental from SA API
  compressdev: remove experimental flag
  regexdev: remove experimental tag
  node: remove experimental tag
  cryptodev: remove experimental from more API's
  table: remove experimental from API
  port: make API's stable

 MAINTAINERS                           |  10 +-
 doc/guides/rel_notes/deprecation.rst  |   6 --
 lib/bbdev/rte_bbdev.h                 |   4 -
 lib/bbdev/rte_bbdev_op.h              |   2 -
 lib/bbdev/version.map                 |  18 ++--
 lib/bpf/rte_bpf.h                     |   2 -
 lib/bpf/version.map                   |   9 +-
 lib/cmdline/cmdline.h                 |   1 -
 lib/cmdline/cmdline_parse.h           |   4 -
 lib/cmdline/cmdline_rdline.h          |   4 -
 lib/cmdline/version.map               |  26 ++---
 lib/compressdev/rte_comp.h            |   6 --
 lib/compressdev/rte_compressdev.h     |  26 -----
 lib/compressdev/rte_compressdev_pmd.h |   6 --
 lib/compressdev/version.map           |   2 +-
 lib/cryptodev/rte_crypto_sym.h        |   1 -
 lib/cryptodev/rte_cryptodev.h         |  32 ------
 lib/cryptodev/version.map             |  77 ++++++--------
 lib/dmadev/rte_dmadev.h               |  85 ----------------
 lib/dmadev/version.map                |   2 +-
 lib/ethdev/rte_mtr.h                  |  25 +----
 lib/ethdev/rte_tm.h                   |  34 -------
 lib/ethdev/version.map                |  88 ++++++++--------
 lib/hash/rte_thash.h                  |  44 --------
 lib/hash/rte_thash_gfni.h             |   8 --
 lib/hash/rte_thash_x86_gfni.h         |   8 --
 lib/hash/version.map                  |  16 +--
 lib/ip_frag/rte_ip_frag.h             |   2 -
 lib/ip_frag/version.map               |   9 +-
 lib/ipsec/rte_ipsec.h                 |   2 -
 lib/ipsec/version.map                 |   9 +-
 lib/kvargs/rte_kvargs.h               |   4 -
 lib/kvargs/version.map                |   8 +-
 lib/lpm/rte_lpm.h                     |   4 -
 lib/lpm/version.map                   |   7 +-
 lib/mbuf/rte_mbuf.h                   |   1 -
 lib/mbuf/version.map                  |   8 +-
 lib/member/rte_member.h               |  54 ----------
 lib/member/version.map                |  12 +--
 lib/meter/rte_meter.h                 |  12 ---
 lib/net/rte_ip.h                      |  19 ----
 lib/node/rte_node_eth_api.h           |   5 -
 lib/node/rte_node_ip4_api.h           |   6 --
 lib/node/rte_node_ip6_api.h           |   6 --
 lib/node/version.map                  |   2 +-
 lib/pcapng/rte_pcapng.h               |  11 --
 lib/pcapng/version.map                |   6 +-
 lib/pdump/rte_pdump.h                 |  12 ---
 lib/pdump/version.map                 |  11 +-
 lib/pipeline/rte_port_in_action.h     |   8 --
 lib/pipeline/rte_swx_ctl.h            |  57 -----------
 lib/pipeline/rte_swx_pipeline.h       |  29 ------
 lib/pipeline/rte_table_action.h       |  16 ---
 lib/pipeline/version.map              | 140 ++++++++++++--------------
 lib/port/version.map                  |  24 ++---
 lib/power/rte_power.h                 |   4 -
 lib/power/rte_power_guest_channel.h   |   4 -
 lib/power/rte_power_intel_uncore.h    |   9 --
 lib/power/rte_power_pmd_mgmt.h        |  40 --------
 lib/power/version.map                 |  33 ++----
 lib/rcu/rte_rcu_qsbr.h                |  20 ----
 lib/rcu/version.map                   |  15 +--
 lib/regexdev/rte_regexdev.h           |  92 -----------------
 lib/regexdev/version.map              |   2 +-
 lib/sched/rte_pie.h                   |   8 --
 lib/sched/rte_sched.h                 |   5 -
 lib/sched/version.map                 |  18 +---
 lib/security/rte_security.h           |  35 -------
 lib/security/version.map              |  17 ++--
 lib/table/rte_swx_table_learner.h     |  10 --
 lib/table/rte_swx_table_selector.h    |   6 --
 lib/table/rte_table_hash_func.h       |   9 --
 lib/table/version.map                 |  18 +---
 lib/timer/rte_timer.h                 |   4 -
 lib/timer/version.map                 |   7 +-
 lib/vhost/rte_vhost.h                 |   5 -
 lib/vhost/rte_vhost_async.h           |  19 ----
 lib/vhost/rte_vhost_crypto.h          |   1 -
 lib/vhost/version.map                 |  51 ++++------
 79 files changed, 234 insertions(+), 1228 deletions(-)
  

Comments

David Marchand Oct. 18, 2023, 7:14 p.m. UTC | #1
Hello Stephen,

On Wed, Aug 9, 2023 at 2:10 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> Since 23.11 is an LTS release it is time to remove the experimental
> bandaid off many API's. There are about 850 API's marked with experimental
> on current main branch. This addresses the easy to remove ones and
> gets it down to about 690 places.
>
> The rule is any API that has been in since 22.11 needs to have
> experimental removed (or deleted). The experimental flag is
> intended to be temporary not a "get out of ABI stability for free" card.
>
> v2 - add more libraries to the mix
>    - remove EXPERIMENTAL where tagged in MAINTAINERS

There were some API updates merged in -rc1.
Could you please rebase this series?

Thanks.
  
David Marchand Oct. 18, 2023, 7:41 p.m. UTC | #2
On Wed, Oct 18, 2023 at 9:14 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> Hello Stephen,
>
> On Wed, Aug 9, 2023 at 2:10 AM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> >
> > Since 23.11 is an LTS release it is time to remove the experimental
> > bandaid off many API's. There are about 850 API's marked with experimental
> > on current main branch. This addresses the easy to remove ones and
> > gets it down to about 690 places.
> >
> > The rule is any API that has been in since 22.11 needs to have
> > experimental removed (or deleted). The experimental flag is
> > intended to be temporary not a "get out of ABI stability for free" card.
> >
> > v2 - add more libraries to the mix
> >    - remove EXPERIMENTAL where tagged in MAINTAINERS
>
> There were some API updates merged in -rc1.
> Could you please rebase this series?

Some additional comments to this request.

rte_compat.h is only needed for __rte_experimental and __rte_internal tags.
There is probably some unnecessary #include <rte_compat.h> left behind
after this series.

About version.map content, I recommend using ./devtools/update-abi.sh
$(cat ABI_VERSION) as it sorts the stable symbols for you (but leave
experimental and internal sections untouched).