[v5] build: disable experimental API check internally

Message ID 20200413145530.8464-1-david.marchand@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [v5] build: disable experimental API check internally |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

David Marchand April 13, 2020, 2:55 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Remove setting ALLOW_EXPERIMENTAL_API individually for each Makefile and
meson.build. Instead, enable ALLOW_EXPERIMENTAL_API flag across app, lib
and drivers.
This changes reduces the clutter across the project while still
maintaining the functionality of ALLOW_EXPERIMENTAL_API i.e. warning
external applications about experimental API usage.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 app/meson.build                           | 7 +------
 app/test-bbdev/Makefile                   | 1 -
 app/test-bbdev/meson.build                | 1 -
 app/test-compress-perf/Makefile           | 1 -
 app/test-compress-perf/meson.build        | 1 -
 app/test-crypto-perf/Makefile             | 1 -
 app/test-crypto-perf/meson.build          | 1 -
 app/test-fib/Makefile                     | 1 -
 app/test-fib/meson.build                  | 1 -
 app/test-pmd/Makefile                     | 1 -
 app/test-pmd/meson.build                  | 1 -
 app/test-sad/Makefile                     | 1 -
 app/test-sad/meson.build                  | 1 -
 app/test/Makefile                         | 2 --
 app/test/meson.build                      | 3 +--
 doc/guides/contributing/coding_style.rst  | 9 ---------
 drivers/baseband/fpga_lte_fec/Makefile    | 1 -
 drivers/baseband/fpga_lte_fec/meson.build | 1 -
 drivers/baseband/null/Makefile            | 1 -
 drivers/baseband/null/meson.build         | 1 -
 drivers/baseband/turbo_sw/Makefile        | 1 -
 drivers/baseband/turbo_sw/meson.build     | 1 -
 drivers/bus/dpaa/Makefile                 | 1 -
 drivers/bus/dpaa/meson.build              | 2 --
 drivers/bus/fslmc/Makefile                | 1 -
 drivers/bus/fslmc/meson.build             | 2 --
 drivers/bus/ifpga/Makefile                | 1 -
 drivers/bus/ifpga/meson.build             | 2 --
 drivers/bus/pci/Makefile                  | 4 ----
 drivers/bus/pci/meson.build               | 3 ---
 drivers/bus/vdev/Makefile                 | 1 -
 drivers/bus/vdev/meson.build              | 2 --
 drivers/bus/vmbus/Makefile                | 1 -
 drivers/bus/vmbus/meson.build             | 2 --
 drivers/common/cpt/meson.build            | 1 -
 drivers/common/dpaax/Makefile             | 1 -
 drivers/common/dpaax/meson.build          | 2 --
 drivers/common/iavf/Makefile              | 1 -
 drivers/common/iavf/meson.build           | 2 --
 drivers/common/mlx5/meson.build           | 1 -
 drivers/common/octeontx2/Makefile         | 1 -
 drivers/common/octeontx2/meson.build      | 2 --
 drivers/common/qat/Makefile               | 1 -
 drivers/compress/isal/Makefile            | 1 -
 drivers/compress/isal/meson.build         | 2 --
 drivers/compress/octeontx/Makefile        | 1 -
 drivers/compress/octeontx/meson.build     | 1 -
 drivers/compress/qat/meson.build          | 1 -
 drivers/compress/zlib/Makefile            | 1 -
 drivers/compress/zlib/meson.build         | 2 --
 drivers/crypto/aesni_gcm/Makefile         | 1 -
 drivers/crypto/aesni_gcm/meson.build      | 1 -
 drivers/crypto/aesni_mb/Makefile          | 1 -
 drivers/crypto/aesni_mb/meson.build       | 1 -
 drivers/crypto/armv8/Makefile             | 1 -
 drivers/crypto/armv8/meson.build          | 1 -
 drivers/crypto/caam_jr/Makefile           | 2 --
 drivers/crypto/caam_jr/meson.build        | 2 --
 drivers/crypto/dpaa2_sec/Makefile         | 1 -
 drivers/crypto/dpaa2_sec/meson.build      | 2 --
 drivers/crypto/dpaa_sec/Makefile          | 1 -
 drivers/crypto/dpaa_sec/meson.build       | 2 --
 drivers/crypto/kasumi/Makefile            | 1 -
 drivers/crypto/kasumi/meson.build         | 1 -
 drivers/crypto/nitrox/Makefile            | 1 -
 drivers/crypto/nitrox/meson.build         | 1 -
 drivers/crypto/octeontx/Makefile          | 1 -
 drivers/crypto/octeontx/meson.build       | 1 -
 drivers/crypto/octeontx2/Makefile         | 1 -
 drivers/crypto/octeontx2/meson.build      | 1 -
 drivers/crypto/openssl/Makefile           | 1 -
 drivers/crypto/openssl/meson.build        | 1 -
 drivers/crypto/snow3g/Makefile            | 1 -
 drivers/crypto/snow3g/meson.build         | 1 -
 drivers/crypto/zuc/Makefile               | 1 -
 drivers/crypto/zuc/meson.build            | 1 -
 drivers/event/dpaa/Makefile               | 1 -
 drivers/event/dpaa/meson.build            | 1 -
 drivers/event/dpaa2/Makefile              | 3 ---
 drivers/event/dpaa2/meson.build           | 1 -
 drivers/event/dsw/Makefile                | 3 ---
 drivers/event/dsw/meson.build             | 3 ---
 drivers/event/octeontx2/Makefile          | 1 -
 drivers/event/octeontx2/meson.build       | 2 --
 drivers/event/opdl/Makefile               | 1 -
 drivers/event/opdl/meson.build            | 1 -
 drivers/mempool/bucket/Makefile           | 1 -
 drivers/mempool/bucket/meson.build        | 2 --
 drivers/mempool/dpaa/Makefile             | 3 ---
 drivers/mempool/dpaa/meson.build          | 3 ---
 drivers/mempool/dpaa2/Makefile            | 3 ---
 drivers/mempool/dpaa2/meson.build         | 3 ---
 drivers/mempool/octeontx/Makefile         | 1 -
 drivers/mempool/octeontx/meson.build      | 2 --
 drivers/mempool/octeontx2/Makefile        | 2 --
 drivers/mempool/octeontx2/meson.build     | 2 --
 drivers/mempool/stack/Makefile            | 1 -
 drivers/mempool/stack/meson.build         | 2 --
 drivers/meson.build                       | 7 +------
 drivers/net/atlantic/Makefile             | 1 -
 drivers/net/atlantic/meson.build          | 2 --
 drivers/net/avp/Makefile                  | 1 -
 drivers/net/avp/meson.build               | 1 -
 drivers/net/axgbe/Makefile                | 1 -
 drivers/net/axgbe/meson.build             | 2 --
 drivers/net/bnx2x/Makefile                | 1 -
 drivers/net/bnx2x/meson.build             | 1 -
 drivers/net/bonding/Makefile              | 1 -
 drivers/net/bonding/meson.build           | 1 -
 drivers/net/dpaa/Makefile                 | 3 ---
 drivers/net/dpaa/meson.build              | 2 --
 drivers/net/dpaa2/Makefile                | 3 ---
 drivers/net/dpaa2/meson.build             | 3 ---
 drivers/net/e1000/Makefile                | 1 -
 drivers/net/e1000/base/meson.build        | 3 ---
 drivers/net/e1000/meson.build             | 2 --
 drivers/net/ena/Makefile                  | 2 --
 drivers/net/ena/meson.build               | 1 -
 drivers/net/enetc/Makefile                | 1 -
 drivers/net/enetc/meson.build             | 1 -
 drivers/net/enic/Makefile                 | 2 --
 drivers/net/enic/meson.build              | 2 --
 drivers/net/failsafe/Makefile             | 1 -
 drivers/net/failsafe/meson.build          | 2 --
 drivers/net/fm10k/Makefile                | 1 -
 drivers/net/fm10k/base/meson.build        | 3 ---
 drivers/net/fm10k/meson.build             | 2 --
 drivers/net/hns3/Makefile                 | 1 -
 drivers/net/hns3/meson.build              | 7 -------
 drivers/net/i40e/Makefile                 | 1 -
 drivers/net/i40e/base/meson.build         | 3 ---
 drivers/net/i40e/meson.build              | 3 +--
 drivers/net/iavf/Makefile                 | 2 +-
 drivers/net/iavf/meson.build              | 2 --
 drivers/net/ice/Makefile                  | 1 -
 drivers/net/ice/meson.build               | 2 --
 drivers/net/ionic/Makefile                | 3 ---
 drivers/net/ipn3ke/Makefile               | 1 -
 drivers/net/ipn3ke/meson.build            | 2 --
 drivers/net/ixgbe/Makefile                | 1 -
 drivers/net/ixgbe/base/meson.build        | 3 ---
 drivers/net/ixgbe/meson.build             | 2 --
 drivers/net/memif/Makefile                | 7 -------
 drivers/net/memif/meson.build             | 8 --------
 drivers/net/mlx4/Makefile                 | 1 -
 drivers/net/mlx4/meson.build              | 1 -
 drivers/net/mlx5/Makefile                 | 3 ---
 drivers/net/mlx5/meson.build              | 1 -
 drivers/net/netvsc/Makefile               | 1 -
 drivers/net/netvsc/meson.build            | 2 --
 drivers/net/nfp/Makefile                  | 1 -
 drivers/net/nfp/meson.build               | 2 --
 drivers/net/octeontx/Makefile             | 2 --
 drivers/net/octeontx/base/meson.build     | 3 ---
 drivers/net/octeontx/meson.build          | 2 --
 drivers/net/pfe/Makefile                  | 4 ----
 drivers/net/pfe/meson.build               | 5 -----
 drivers/net/qede/Makefile                 | 1 -
 drivers/net/qede/base/meson.build         | 3 ---
 drivers/net/qede/meson.build              | 2 --
 drivers/net/sfc/Makefile                  | 1 -
 drivers/net/sfc/base/meson.build          | 3 ---
 drivers/net/sfc/meson.build               | 2 --
 drivers/net/softnic/Makefile              | 1 -
 drivers/net/softnic/meson.build           | 1 -
 drivers/net/tap/Makefile                  | 1 -
 drivers/net/tap/meson.build               | 1 -
 drivers/net/thunderx/Makefile             | 1 -
 drivers/net/thunderx/base/meson.build     | 3 ---
 drivers/net/thunderx/meson.build          | 1 -
 drivers/net/vdev_netvsc/Makefile          | 1 -
 drivers/net/vdev_netvsc/meson.build       | 2 --
 drivers/net/virtio/Makefile               | 1 -
 drivers/net/virtio/meson.build            | 1 -
 drivers/net/vmxnet3/Makefile              | 1 -
 drivers/net/vmxnet3/meson.build           | 1 -
 drivers/raw/dpaa2_cmdif/Makefile          | 1 -
 drivers/raw/dpaa2_cmdif/meson.build       | 2 --
 drivers/raw/dpaa2_qdma/Makefile           | 1 -
 drivers/raw/dpaa2_qdma/meson.build        | 2 --
 drivers/raw/ifpga/Makefile                | 1 -
 drivers/raw/ifpga/meson.build             | 2 --
 drivers/raw/ntb/Makefile                  | 1 -
 drivers/raw/ntb/meson.build               | 1 -
 drivers/vdpa/ifc/Makefile                 | 1 -
 drivers/vdpa/ifc/meson.build              | 1 -
 drivers/vdpa/mlx5/Makefile                | 2 --
 drivers/vdpa/mlx5/meson.build             | 1 -
 lib/librte_bbdev/Makefile                 | 1 -
 lib/librte_bbdev/meson.build              | 1 -
 lib/librte_bpf/Makefile                   | 1 -
 lib/librte_bpf/meson.build                | 1 -
 lib/librte_cmdline/Makefile               | 1 -
 lib/librte_cmdline/meson.build            | 1 -
 lib/librte_compressdev/Makefile           | 1 -
 lib/librte_compressdev/meson.build        | 1 -
 lib/librte_cryptodev/Makefile             | 1 -
 lib/librte_cryptodev/meson.build          | 1 -
 lib/librte_eal/freebsd/Makefile           | 1 -
 lib/librte_eal/linux/Makefile             | 1 -
 lib/librte_eal/meson.build                | 1 -
 lib/librte_ethdev/Makefile                | 1 -
 lib/librte_ethdev/meson.build             | 1 -
 lib/librte_eventdev/Makefile              | 1 -
 lib/librte_eventdev/meson.build           | 2 --
 lib/librte_fib/Makefile                   | 1 -
 lib/librte_fib/meson.build                | 1 -
 lib/librte_flow_classify/Makefile         | 1 -
 lib/librte_flow_classify/meson.build      | 1 -
 lib/librte_hash/Makefile                  | 2 +-
 lib/librte_hash/meson.build               | 3 ---
 lib/librte_ipsec/Makefile                 | 1 -
 lib/librte_ipsec/meson.build              | 2 --
 lib/librte_mbuf/Makefile                  | 1 -
 lib/librte_mbuf/meson.build               | 2 --
 lib/librte_mempool/Makefile               | 4 ----
 lib/librte_mempool/meson.build            | 5 -----
 lib/librte_net/Makefile                   | 1 -
 lib/librte_net/meson.build                | 1 -
 lib/librte_pdump/Makefile                 | 1 -
 lib/librte_pdump/meson.build              | 1 -
 lib/librte_pipeline/Makefile              | 1 -
 lib/librte_pipeline/meson.build           | 1 -
 lib/librte_power/Makefile                 | 1 -
 lib/librte_rcu/Makefile                   | 1 -
 lib/librte_rcu/meson.build                | 2 --
 lib/librte_rib/Makefile                   | 1 -
 lib/librte_rib/meson.build                | 1 -
 lib/librte_ring/Makefile                  | 2 +-
 lib/librte_ring/meson.build               | 3 ---
 lib/librte_stack/Makefile                 | 1 -
 lib/librte_stack/meson.build              | 2 --
 lib/librte_telemetry/Makefile             | 1 -
 lib/librte_telemetry/meson.build          | 1 -
 lib/librte_timer/Makefile                 | 1 -
 lib/librte_timer/meson.build              | 1 -
 lib/librte_vhost/Makefile                 | 1 -
 lib/librte_vhost/meson.build              | 1 -
 lib/meson.build                           | 6 +-----
 mk/target/generic/rte.vars.mk             | 1 +
 240 files changed, 9 insertions(+), 395 deletions(-)
  

Comments

David Marchand April 14, 2020, 2:23 p.m. UTC | #1
On Mon, Apr 13, 2020 at 4:56 PM David Marchand
<david.marchand@redhat.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Remove setting ALLOW_EXPERIMENTAL_API individually for each Makefile and
> meson.build. Instead, enable ALLOW_EXPERIMENTAL_API flag across app, lib
> and drivers.
> This changes reduces the clutter across the project while still
> maintaining the functionality of ALLOW_EXPERIMENTAL_API i.e. warning
> external applications about experimental API usage.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> Signed-off-by: David Marchand <david.marchand@redhat.com>

Applied.
  
Fiona Trahe April 17, 2020, 10:21 a.m. UTC | #2
Hi David / Pavan,

I see this is already applied.

However,
rte_cryptodev_queue_pair_setup() calls
rte_cryptodev_sym_get_existing_header_session_size() 
The former is a stable API, the latter is experimental.
So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.

I tried to build the crypto_perf tool to check this, wasn't clear where it gets it, seems like it inherits from here:
mk/target/generic/rte.vars.mk. So I disabled it there and got many build errors.

Am I missing something?
How was this tested with the flag disabled?

Fiona

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of David Marchand
> Sent: Tuesday, April 14, 2020 3:23 PM
> To: dev <dev@dpdk.org>
> Cc: Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh <pbhagavatula@marvell.com>;
> Richardson, Bruce <bruce.richardson@intel.com>; Thomas Monjalon <thomas@monjalon.net>; Yigit,
> Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal <hemant.agrawal@nxp.com>
> Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> 
> On Mon, Apr 13, 2020 at 4:56 PM David Marchand
> <david.marchand@redhat.com> wrote:
> >
> > From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> >
> > Remove setting ALLOW_EXPERIMENTAL_API individually for each Makefile and
> > meson.build. Instead, enable ALLOW_EXPERIMENTAL_API flag across app, lib
> > and drivers.
> > This changes reduces the clutter across the project while still
> > maintaining the functionality of ALLOW_EXPERIMENTAL_API i.e. warning
> > external applications about experimental API usage.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> > Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> 
> Applied.
> 
> 
> --
> David Marchand
  
David Marchand April 17, 2020, 1:23 p.m. UTC | #3
On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> I see this is already applied.
>
> However,
> rte_cryptodev_queue_pair_setup() calls
> rte_cryptodev_sym_get_existing_header_session_size()
> The former is a stable API, the latter is experimental.
> So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
>
> I tried to build the crypto_perf tool to check this, wasn't clear where it gets it, seems like it inherits from here:
> mk/target/generic/rte.vars.mk. So I disabled it there and got many build errors.

I suppose you mean dpdk-test-crypto-perf.
This tool is compiled inside dpdk, so the flag is inherited from
rte.vars.mk as intended.
  
Fiona Trahe April 17, 2020, 1:44 p.m. UTC | #4
Hi David,

> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Friday, April 17, 2020 2:23 PM
> To: Trahe, Fiona <fiona.trahe@intel.com>
> Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>
> Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> 
> On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> > I see this is already applied.
> >
> > However,
> > rte_cryptodev_queue_pair_setup() calls
> > rte_cryptodev_sym_get_existing_header_session_size()
> > The former is a stable API, the latter is experimental.
> > So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
[Fiona] Thanks for confirming where the flag is.
But I think you've missed my point.
What about this problem?
How was this tested with the flag disabled?


> > I tried to build the crypto_perf tool to check this, wasn't clear where it gets it, seems like it inherits
> from here:
> > mk/target/generic/rte.vars.mk. So I disabled it there and got many build errors.
> 
> I suppose you mean dpdk-test-crypto-perf.
> This tool is compiled inside dpdk, so the flag is inherited from
> rte.vars.mk as intended.
> 
> 
> --
> David Marchand
  
Thomas Monjalon April 17, 2020, 1:54 p.m. UTC | #5
17/04/2020 15:44, Trahe, Fiona:
> From: David Marchand <david.marchand@redhat.com>
> > On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> > > I see this is already applied.
> > >
> > > However,
> > > rte_cryptodev_queue_pair_setup() calls
> > > rte_cryptodev_sym_get_existing_header_session_size()
> > > The former is a stable API, the latter is experimental.
> > > So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
> [Fiona] Thanks for confirming where the flag is.
> But I think you've missed my point.
> What about this problem?
> How was this tested with the flag disabled?

We are not supposed to disable the flag internally.
The examples are not affected by the global enablement,
so you can test non-experimental build with examples.
  
David Marchand April 17, 2020, 1:56 p.m. UTC | #6
On Fri, Apr 17, 2020 at 3:44 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
>
> Hi David,
>
> > -----Original Message-----
> > From: David Marchand <david.marchand@redhat.com>
> > Sent: Friday, April 17, 2020 2:23 PM
> > To: Trahe, Fiona <fiona.trahe@intel.com>
> > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> > <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas Monjalon
> > <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> > <hemant.agrawal@nxp.com>
> > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> >
> > On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> > > I see this is already applied.
> > >
> > > However,
> > > rte_cryptodev_queue_pair_setup() calls
> > > rte_cryptodev_sym_get_existing_header_session_size()
> > > The former is a stable API, the latter is experimental.
> > > So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
> [Fiona] Thanks for confirming where the flag is.
> But I think you've missed my point.
> What about this problem?

- dpdk-test-crypto-perf is built as part of the dpdk compilation itself.
There is no user to be made aware of its use of experimental API.

Now if you are talking about how the crypto API is bent in that it
exposes a stable ABI with an underlying experimental ABI, this has
nothing to do with the flag change.

- But if you want to check crypto experimental api, then try to
disable the flag in examples making use of them.
  
Fiona Trahe April 17, 2020, 3:05 p.m. UTC | #7
Hi Davd, 

> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Friday, April 17, 2020 2:56 PM
> To: Trahe, Fiona <fiona.trahe@intel.com>
> Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>
> Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> 
> On Fri, Apr 17, 2020 at 3:44 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> >
> > Hi David,
> >
> > > -----Original Message-----
> > > From: David Marchand <david.marchand@redhat.com>
> > > Sent: Friday, April 17, 2020 2:23 PM
> > > To: Trahe, Fiona <fiona.trahe@intel.com>
> > > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> > > <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas
> Monjalon
> > > <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> > > <hemant.agrawal@nxp.com>
> > > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> > >
> > > On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> > > > I see this is already applied.
> > > >
> > > > However,
> > > > rte_cryptodev_queue_pair_setup() calls
> > > > rte_cryptodev_sym_get_existing_header_session_size()
> > > > The former is a stable API, the latter is experimental.
> > > > So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
> > [Fiona] Thanks for confirming where the flag is.
> > But I think you've missed my point.
> > What about this problem?
> 
> - dpdk-test-crypto-perf is built as part of the dpdk compilation itself.
> There is no user to be made aware of its use of experimental API.
> 
> Now if you are talking about how the crypto API is bent in that it
> exposes a stable ABI with an underlying experimental ABI, this has
> nothing to do with the flag change.
[Fiona] Before this if an application didn't set ALLOW_EXPERIMENTAL_API
(which I expect is the default for many apps) then the build worked fine
as long as the app didn't directly call an experimental API. The crypto lib
still built ok as its own Makefile had the flag.
I just tried this with dpdk-test-crypto-perf. I had to remove one direct call,
without that it built ok. When I remove the flag from the crypto lib Makefile, the
build breaks as expected due to the above issue.

So, yes, cryptodev lib should be fixed.
However this patch just applied will potentially break builds for many apps!
It could expose many other issues of internal dependencies on experimental APIs.



> 
> - But if you want to check crypto experimental api, then try to
> disable the flag in examples making use of them.
> 
> 
> --
> David Marchand
  
Fiona Trahe April 17, 2020, 3:52 p.m. UTC | #8
Hi David,

> -----Original Message-----
> From: Trahe, Fiona <fiona.trahe@intel.com>
> Sent: Friday, April 17, 2020 4:05 PM
> To: David Marchand <david.marchand@redhat.com>
> Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas Monjalon
> <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Trahe, Fiona <fiona.trahe@intel.com>
> Subject: RE: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> 
> Hi Davd,
> 
> > -----Original Message-----
> > From: David Marchand <david.marchand@redhat.com>
> > Sent: Friday, April 17, 2020 2:56 PM
> > To: Trahe, Fiona <fiona.trahe@intel.com>
> > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> > <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas
> Monjalon
> > <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> > <hemant.agrawal@nxp.com>
> > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> >
> > On Fri, Apr 17, 2020 at 3:44 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> > >
> > > Hi David,
> > >
> > > > -----Original Message-----
> > > > From: David Marchand <david.marchand@redhat.com>
> > > > Sent: Friday, April 17, 2020 2:23 PM
> > > > To: Trahe, Fiona <fiona.trahe@intel.com>
> > > > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> > > > <pbhagavatula@marvell.com>; Richardson, Bruce <bruce.richardson@intel.com>; Thomas
> > Monjalon
> > > > <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> > > > <hemant.agrawal@nxp.com>
> > > > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check internally
> > > >
> > > > On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com> wrote:
> > > > > I see this is already applied.
> > > > >
> > > > > However,
> > > > > rte_cryptodev_queue_pair_setup() calls
> > > > > rte_cryptodev_sym_get_existing_header_session_size()
> > > > > The former is a stable API, the latter is experimental.
> > > > > So I expect the build to break when ALLOW_EXPERIMENTAL_API is disabled.
> > > [Fiona] Thanks for confirming where the flag is.
> > > But I think you've missed my point.
> > > What about this problem?
> >
> > - dpdk-test-crypto-perf is built as part of the dpdk compilation itself.
> > There is no user to be made aware of its use of experimental API.
> >
> > Now if you are talking about how the crypto API is bent in that it
> > exposes a stable ABI with an underlying experimental ABI, this has
> > nothing to do with the flag change.
> [Fiona] Before this if an application didn't set ALLOW_EXPERIMENTAL_API
> (which I expect is the default for many apps) then the build worked fine
> as long as the app didn't directly call an experimental API. The crypto lib
> still built ok as its own Makefile had the flag.
> I just tried this with dpdk-test-crypto-perf. I had to remove one direct call,
> without that it built ok. When I remove the flag from the crypto lib Makefile, the
> build breaks as expected due to the above issue.
> 
> So, yes, cryptodev lib should be fixed.
> However this patch just applied will potentially break builds for many apps!
> It could expose many other issues of internal dependencies on experimental APIs.

[Fiona] Ok, I get it now, there's no issue.
I see now why the patch name was changed from "global" to "internal"!
I had understood that the flag the application set or didn't set would ripple down
through the whole build. Instead the flag is set (or not set) once by the application
only affecting direct API calls and once for the rest of the build, which includes
apps in the app folder, but not apps in the examples folder.
So allowing experimental APIs internally, while disallowing them externally.
A bit confusing, but ok, doesn't break anything and definitely better than
having flags in every Make/meson file.

Fiona
  
Chautru, Nicolas April 18, 2020, 7:43 p.m. UTC | #9
Hi,

It is probably just me but I having issue with this new patch. 
I typically rebuild the PMD libraries directly when doing incremental changes from the Makefile in the PMD directory (ie. not rebuilding full DPDK each time, which still work okay obviously). 
With this new change it doesn't seem to work any longer with the updated Makefiles without the ALLOW_EXPERIMENTAL_API:
	Symbol is not yet part of stable ABI [-Werror=deprecated-declarations]
I would need to have a further look but checking whether it is just me. 

Thanks
Nic

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Trahe, Fiona
> Sent: Friday, April 17, 2020 8:52 AM
> To: David Marchand <david.marchand@redhat.com>
> Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan
> Nikhilesh <pbhagavatula@marvell.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>; Trahe, Fiona <fiona.trahe@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check
> internally
> 
> Hi David,
> 
> > -----Original Message-----
> > From: Trahe, Fiona <fiona.trahe@intel.com>
> > Sent: Friday, April 17, 2020 4:05 PM
> > To: David Marchand <david.marchand@redhat.com>
> > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan
> > Nikhilesh <pbhagavatula@marvell.com>; Richardson, Bruce
> > <bruce.richardson@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> > Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> > <hemant.agrawal@nxp.com>; Trahe, Fiona <fiona.trahe@intel.com>
> > Subject: RE: [dpdk-dev] [PATCH v5] build: disable experimental API
> > check internally
> >
> > Hi Davd,
> >
> > > -----Original Message-----
> > > From: David Marchand <david.marchand@redhat.com>
> > > Sent: Friday, April 17, 2020 2:56 PM
> > > To: Trahe, Fiona <fiona.trahe@intel.com>
> > > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan
> > > Nikhilesh <pbhagavatula@marvell.com>; Richardson, Bruce
> > > <bruce.richardson@intel.com>; Thomas
> > Monjalon
> > > <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>;
> > > Hemant Agrawal <hemant.agrawal@nxp.com>
> > > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API
> > > check internally
> > >
> > > On Fri, Apr 17, 2020 at 3:44 PM Trahe, Fiona <fiona.trahe@intel.com>
> wrote:
> > > >
> > > > Hi David,
> > > >
> > > > > -----Original Message-----
> > > > > From: David Marchand <david.marchand@redhat.com>
> > > > > Sent: Friday, April 17, 2020 2:23 PM
> > > > > To: Trahe, Fiona <fiona.trahe@intel.com>
> > > > > Cc: dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>;
> > > > > Pavan Nikhilesh <pbhagavatula@marvell.com>; Richardson, Bruce
> > > > > <bruce.richardson@intel.com>; Thomas
> > > Monjalon
> > > > > <thomas@monjalon.net>; Yigit, Ferruh <ferruh.yigit@intel.com>;
> > > > > Hemant Agrawal <hemant.agrawal@nxp.com>
> > > > > Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental
> > > > > API check internally
> > > > >
> > > > > On Fri, Apr 17, 2020 at 12:21 PM Trahe, Fiona <fiona.trahe@intel.com>
> wrote:
> > > > > > I see this is already applied.
> > > > > >
> > > > > > However,
> > > > > > rte_cryptodev_queue_pair_setup() calls
> > > > > > rte_cryptodev_sym_get_existing_header_session_size()
> > > > > > The former is a stable API, the latter is experimental.
> > > > > > So I expect the build to break when ALLOW_EXPERIMENTAL_API is
> disabled.
> > > > [Fiona] Thanks for confirming where the flag is.
> > > > But I think you've missed my point.
> > > > What about this problem?
> > >
> > > - dpdk-test-crypto-perf is built as part of the dpdk compilation itself.
> > > There is no user to be made aware of its use of experimental API.
> > >
> > > Now if you are talking about how the crypto API is bent in that it
> > > exposes a stable ABI with an underlying experimental ABI, this has
> > > nothing to do with the flag change.
> > [Fiona] Before this if an application didn't set
> > ALLOW_EXPERIMENTAL_API (which I expect is the default for many apps)
> > then the build worked fine as long as the app didn't directly call an
> > experimental API. The crypto lib still built ok as its own Makefile had the flag.
> > I just tried this with dpdk-test-crypto-perf. I had to remove one
> > direct call, without that it built ok. When I remove the flag from the
> > crypto lib Makefile, the build breaks as expected due to the above issue.
> >
> > So, yes, cryptodev lib should be fixed.
> > However this patch just applied will potentially break builds for many apps!
> > It could expose many other issues of internal dependencies on experimental
> APIs.
> 
> [Fiona] Ok, I get it now, there's no issue.
> I see now why the patch name was changed from "global" to "internal"!
> I had understood that the flag the application set or didn't set would ripple
> down through the whole build. Instead the flag is set (or not set) once by the
> application only affecting direct API calls and once for the rest of the build,
> which includes apps in the app folder, but not apps in the examples folder.
> So allowing experimental APIs internally, while disallowing them externally.
> A bit confusing, but ok, doesn't break anything and definitely better than having
> flags in every Make/meson file.
> 
> Fiona
>
  
David Marchand April 19, 2020, 7:35 a.m. UTC | #10
On Sat, Apr 18, 2020 at 9:46 PM Chautru, Nicolas
<nicolas.chautru@intel.com> wrote:
> It is probably just me but I having issue with this new patch.
> I typically rebuild the PMD libraries directly when doing incremental changes from the Makefile in the PMD directory (ie. not rebuilding full DPDK each time, which still work okay obviously).
> With this new change it doesn't seem to work any longer with the updated Makefiles without the ALLOW_EXPERIMENTAL_API:
>         Symbol is not yet part of stable ABI [-Werror=deprecated-declarations]
> I would need to have a further look but checking whether it is just me.

Can you give details?

I just tried with fpga_lte_fec:
$ make O=$HOME/builds/x86_64-native-linux-gcc+shared+kmods
drivers/baseband/fpga_lte_fec_sub
drivers/baseband/fpga_lte_fec_sub
== Build drivers/baseband/fpga_lte_fec
  CC fpga_lte_fec.o
  PMDINFO fpga_lte_fec.o.pmd.c
  CC fpga_lte_fec.o.pmd.o
  LD fpga_lte_fec.o
  LD librte_pmd_bbdev_fpga_lte_fec.so.20.0.2
  INSTALL-LIB librte_pmd_bbdev_fpga_lte_fec.so.20.0.2
  
Chautru, Nicolas April 19, 2020, 4:17 p.m. UTC | #11
Hi David, 
I will double check internally then as it may be something just that I miss on my end right now given you cannot reproduce it. 

> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Sunday, April 19, 2020 12:35 AM
> To: Chautru, Nicolas <nicolas.chautru@intel.com>
> Cc: Trahe, Fiona <fiona.trahe@intel.com>; Akhil Goyal <akhil.goyal@nxp.com>;
> dev <dev@dpdk.org>; Jerin Jacob <jerinjacobk@gmail.com>; Pavan Nikhilesh
> <pbhagavatula@marvell.com>; Richardson, Bruce
> <bruce.richardson@intel.com>; Thomas Monjalon <thomas@monjalon.net>;
> Yigit, Ferruh <ferruh.yigit@intel.com>; Hemant Agrawal
> <hemant.agrawal@nxp.com>
> Subject: Re: [dpdk-dev] [PATCH v5] build: disable experimental API check
> internally
> 
> On Sat, Apr 18, 2020 at 9:46 PM Chautru, Nicolas <nicolas.chautru@intel.com>
> wrote:
> > It is probably just me but I having issue with this new patch.
> > I typically rebuild the PMD libraries directly when doing incremental changes
> from the Makefile in the PMD directory (ie. not rebuilding full DPDK each time,
> which still work okay obviously).
> > With this new change it doesn't seem to work any longer with the updated
> Makefiles without the ALLOW_EXPERIMENTAL_API:
> >         Symbol is not yet part of stable ABI
> > [-Werror=deprecated-declarations] I would need to have a further look but
> checking whether it is just me.
> 
> Can you give details?
> 
> I just tried with fpga_lte_fec:
> $ make O=$HOME/builds/x86_64-native-linux-gcc+shared+kmods
> drivers/baseband/fpga_lte_fec_sub
> drivers/baseband/fpga_lte_fec_sub
> == Build drivers/baseband/fpga_lte_fec
>   CC fpga_lte_fec.o
>   PMDINFO fpga_lte_fec.o.pmd.c
>   CC fpga_lte_fec.o.pmd.o
>   LD fpga_lte_fec.o
>   LD librte_pmd_bbdev_fpga_lte_fec.so.20.0.2
>   INSTALL-LIB librte_pmd_bbdev_fpga_lte_fec.so.20.0.2
> 
> 
> --
> David Marchand
  

Patch

diff --git a/app/meson.build b/app/meson.build
index 75aa161148..0f7fe94649 100644
--- a/app/meson.build
+++ b/app/meson.build
@@ -22,12 +22,11 @@  apps = [
 # for BSD only
 lib_execinfo = cc.find_library('execinfo', required: false)
 
-default_cflags = machine_args
+default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
 
 foreach app:apps
 	build = true
 	name = app
-	allow_experimental_apis = false
 	sources = []
 	includes = []
 	cflags = default_cflags
@@ -54,10 +53,6 @@  foreach app:apps
 			link_libs = dpdk_static_libraries + dpdk_drivers
 		endif
 
-		if allow_experimental_apis
-			cflags += '-DALLOW_EXPERIMENTAL_API'
-		endif
-
 		executable('dpdk-' + name,
 				sources,
 				c_args: cflags,
diff --git a/app/test-bbdev/Makefile b/app/test-bbdev/Makefile
index c53982ffc1..8272d2b1c8 100644
--- a/app/test-bbdev/Makefile
+++ b/app/test-bbdev/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 APP = testbbdev
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/app/test-bbdev/meson.build b/app/test-bbdev/meson.build
index 4f53a2ed88..0d9f684a12 100644
--- a/app/test-bbdev/meson.build
+++ b/app/test-bbdev/meson.build
@@ -5,7 +5,6 @@  sources = files('main.c',
 		'test_bbdev.c',
 		'test_bbdev_perf.c',
 		'test_bbdev_vector.c')
-allow_experimental_apis = true
 deps += ['bbdev', 'bus_vdev']
 if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC')
 	deps += ['pmd_bbdev_fpga_lte_fec']
diff --git a/app/test-compress-perf/Makefile b/app/test-compress-perf/Makefile
index ad3b91d0a2..2bff531836 100644
--- a/app/test-compress-perf/Makefile
+++ b/app/test-compress-perf/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 APP = dpdk-test-compress-perf
 
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 
 # all source are stored in SRCS-y
diff --git a/app/test-compress-perf/meson.build b/app/test-compress-perf/meson.build
index 1fe26cc14a..a1a484da9a 100644
--- a/app/test-compress-perf/meson.build
+++ b/app/test-compress-perf/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('comp_perf_options_parse.c',
 		'main.c',
 		'comp_perf_test_verify.c',
diff --git a/app/test-crypto-perf/Makefile b/app/test-crypto-perf/Makefile
index 78135f38ce..0dced790f0 100644
--- a/app/test-crypto-perf/Makefile
+++ b/app/test-crypto-perf/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 APP = dpdk-test-crypto-perf
 
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 
 # all source are stored in SRCS-y
diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build
index 0674396da8..ef28cb5a03 100644
--- a/app/test-crypto-perf/meson.build
+++ b/app/test-crypto-perf/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('cperf_ops.c',
 		'cperf_options_parsing.c',
 		'cperf_test_common.c',
diff --git a/app/test-fib/Makefile b/app/test-fib/Makefile
index 9da34eb8fe..2ea799c0e9 100644
--- a/app/test-fib/Makefile
+++ b/app/test-fib/Makefile
@@ -9,7 +9,6 @@  APP = testfib
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # all source are stored in SRCS-y
 SRCS-y := main.c
diff --git a/app/test-fib/meson.build b/app/test-fib/meson.build
index 4db0010357..f74ac651c0 100644
--- a/app/test-fib/meson.build
+++ b/app/test-fib/meson.build
@@ -1,6 +1,5 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('main.c')
 deps += ['fib', 'lpm', 'net']
diff --git a/app/test-pmd/Makefile b/app/test-pmd/Makefile
index d5258eae4a..ea818de220 100644
--- a/app/test-pmd/Makefile
+++ b/app/test-pmd/Makefile
@@ -10,7 +10,6 @@  ifeq ($(CONFIG_RTE_TEST_PMD),y)
 #
 APP = testpmd
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -Wno-deprecated-declarations
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 6006c60f99..4872882979 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -3,7 +3,6 @@ 
 
 # override default name to drop the hyphen
 name = 'testpmd'
-allow_experimental_apis = true
 cflags += '-Wno-deprecated-declarations'
 sources = files('cmdline.c',
 	'cmdline_flow.c',
diff --git a/app/test-sad/Makefile b/app/test-sad/Makefile
index 9b354132e1..9b5a7ddc61 100644
--- a/app/test-sad/Makefile
+++ b/app/test-sad/Makefile
@@ -8,7 +8,6 @@  ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y)
 APP = testsad
 
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # all source are stored in SRCS-y
 SRCS-y := main.c
diff --git a/app/test-sad/meson.build b/app/test-sad/meson.build
index 31f9aab632..db15b658d7 100644
--- a/app/test-sad/meson.build
+++ b/app/test-sad/meson.build
@@ -1,6 +1,5 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('main.c')
 deps += ['ipsec', 'net']
diff --git a/app/test/Makefile b/app/test/Makefile
index 1f080d1626..be53d33c3f 100644
--- a/app/test/Makefile
+++ b/app/test/Makefile
@@ -237,8 +237,6 @@  ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y)
 LDLIBS += -lrte_ipsec
 endif
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/app/test/meson.build b/app/test/meson.build
index 351d29cb65..777c536ae0 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -355,7 +355,6 @@  if dpdk_conf.has('RTE_LIBRTE_PDUMP')
 	test_deps += 'pdump'
 endif
 
-cflags = machine_args
 if cc.has_argument('-Wno-format-truncation')
     cflags += '-Wno-format-truncation'
 endif
@@ -393,7 +392,7 @@  dpdk_test = executable('dpdk-test',
 	test_sources,
 	link_whole: link_libs,
 	dependencies: test_dep_objs,
-	c_args: [cflags, '-DALLOW_EXPERIMENTAL_API'],
+	c_args: cflags,
 	install_rpath: driver_install_path,
 	install: true)
 
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst
index 841ef6d5c8..4efde93f6a 100644
--- a/doc/guides/contributing/coding_style.rst
+++ b/doc/guides/contributing/coding_style.rst
@@ -842,12 +842,6 @@  sources
 
 The optional fields are:
 
-allow_experimental_apis
-	**Default Value = false**
-	Used to allow the library to make use of APIs marked as experimental.
-	Set to ``true`` if the C files in the library call any functions
-	marked as experimental in any included header files.
-
 build
 	**Default Value = true**
 	Used to optionally compile a library, based on its dependencies or
@@ -960,9 +954,6 @@  Meson Build File Contents - Drivers
 For drivers, the values are largely the same as for libraries. The variables
 supported are:
 
-allow_experimental_apis
-	As above.
-
 build
 	As above.
 
diff --git a/drivers/baseband/fpga_lte_fec/Makefile b/drivers/baseband/fpga_lte_fec/Makefile
index b4a442ca54..30caafe3db 100644
--- a/drivers/baseband/fpga_lte_fec/Makefile
+++ b/drivers/baseband/fpga_lte_fec/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_bbdev_fpga_lte_fec.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
diff --git a/drivers/baseband/fpga_lte_fec/meson.build b/drivers/baseband/fpga_lte_fec/meson.build
index c4d3a489a9..e00688da33 100644
--- a/drivers/baseband/fpga_lte_fec/meson.build
+++ b/drivers/baseband/fpga_lte_fec/meson.build
@@ -2,5 +2,4 @@ 
 # Copyright(c) 2019 Intel Corporation
 
 deps += ['bbdev', 'bus_vdev', 'ring', 'pci', 'bus_pci']
-allow_experimental_apis = true
 sources = files('fpga_lte_fec.c')
diff --git a/drivers/baseband/null/Makefile b/drivers/baseband/null/Makefile
index 28751eeb79..0ee500166d 100644
--- a/drivers/baseband/null/Makefile
+++ b/drivers/baseband/null/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_bbdev_null.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
diff --git a/drivers/baseband/null/meson.build b/drivers/baseband/null/meson.build
index e491c7da4a..02ef7db573 100644
--- a/drivers/baseband/null/meson.build
+++ b/drivers/baseband/null/meson.build
@@ -2,5 +2,4 @@ 
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
 deps += ['bbdev', 'bus_vdev', 'ring']
-allow_experimental_apis = true
 sources = files('bbdev_null.c')
diff --git a/drivers/baseband/turbo_sw/Makefile b/drivers/baseband/turbo_sw/Makefile
index ec74d277e9..c2a6fe0f81 100644
--- a/drivers/baseband/turbo_sw/Makefile
+++ b/drivers/baseband/turbo_sw/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_bbdev_turbo_sw.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs
diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build
index 21c3cf819a..f5a1ab3fcb 100644
--- a/drivers/baseband/turbo_sw/meson.build
+++ b/drivers/baseband/turbo_sw/meson.build
@@ -36,5 +36,4 @@  if dpdk_conf.has('RTE_BBDEV_SDK_AVX512')
 endif
 
 deps += ['bbdev', 'bus_vdev', 'ring']
-allow_experimental_apis = true
 sources = files('bbdev_turbo_software.c')
diff --git a/drivers/bus/dpaa/Makefile b/drivers/bus/dpaa/Makefile
index 9e1a31bb75..ba40b21166 100644
--- a/drivers/bus/dpaa/Makefile
+++ b/drivers/bus/dpaa/Makefile
@@ -9,7 +9,6 @@  RTE_BUS_DPAA=$(RTE_SDK)/drivers/bus/dpaa
 #
 LIB = librte_bus_dpaa.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS := -I$(SRCDIR) $(CFLAGS)
 CFLAGS += -O3 $(WERROR_FLAGS)
 CFLAGS += -Wno-pointer-arith
diff --git a/drivers/bus/dpaa/meson.build b/drivers/bus/dpaa/meson.build
index 2b1cf19114..c2cffa4943 100644
--- a/drivers/bus/dpaa/meson.build
+++ b/drivers/bus/dpaa/meson.build
@@ -19,8 +19,6 @@  sources = files('base/fman/fman.c',
 		'base/qbman/qman_driver.c',
 		'dpaa_bus.c')
 
-allow_experimental_apis = true
-
 if cc.has_argument('-Wno-cast-qual')
 	cflags += '-Wno-cast-qual'
 endif
diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile
index 6d22860885..c70e359c87 100644
--- a/drivers/bus/fslmc/Makefile
+++ b/drivers/bus/fslmc/Makefile
@@ -9,7 +9,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_bus_fslmc.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/bus/fslmc/meson.build b/drivers/bus/fslmc/meson.build
index 6e709a8d5a..eb8874a5ac 100644
--- a/drivers/bus/fslmc/meson.build
+++ b/drivers/bus/fslmc/meson.build
@@ -22,6 +22,4 @@  sources = files('fslmc_bus.c',
 		'qbman/qbman_portal.c',
 		'qbman/qbman_debug.c')
 
-allow_experimental_apis = true
-
 includes += include_directories('mc', 'qbman/include', 'portal')
diff --git a/drivers/bus/ifpga/Makefile b/drivers/bus/ifpga/Makefile
index 290c1124ba..1df369103c 100644
--- a/drivers/bus/ifpga/Makefile
+++ b/drivers/bus/ifpga/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_bus_ifpga.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal
diff --git a/drivers/bus/ifpga/meson.build b/drivers/bus/ifpga/meson.build
index c9b08c8627..4ea31f1741 100644
--- a/drivers/bus/ifpga/meson.build
+++ b/drivers/bus/ifpga/meson.build
@@ -4,5 +4,3 @@ 
 deps += ['pci', 'kvargs', 'rawdev']
 install_headers('rte_bus_ifpga.h')
 sources = files('ifpga_common.c', 'ifpga_bus.c')
-
-allow_experimental_apis = true
diff --git a/drivers/bus/pci/Makefile b/drivers/bus/pci/Makefile
index 975d796527..f4102d0a7f 100644
--- a/drivers/bus/pci/Makefile
+++ b/drivers/bus/pci/Makefile
@@ -8,7 +8,6 @@  EXPORT_MAP := rte_bus_pci_version.map
 
 CFLAGS := -I$(SRCDIR) $(CFLAGS)
 CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),)
 SYSTEM := linux
@@ -20,9 +19,6 @@  endif
 CFLAGS += -I$(RTE_SDK)/drivers/bus/pci/$(SYSTEM)
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
 
-# memseg walk is not part of stable API yet
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_pci -lrte_kvargs
 
diff --git a/drivers/bus/pci/meson.build b/drivers/bus/pci/meson.build
index a3feb86aea..b520bdfc14 100644
--- a/drivers/bus/pci/meson.build
+++ b/drivers/bus/pci/meson.build
@@ -16,7 +16,4 @@  else
 	includes += include_directories('bsd')
 endif
 
-# memseg walk is not part of stable API yet
-allow_experimental_apis = true
-
 deps += ['kvargs']
diff --git a/drivers/bus/vdev/Makefile b/drivers/bus/vdev/Makefile
index 63c9b3f59b..01747f03a4 100644
--- a/drivers/bus/vdev/Makefile
+++ b/drivers/bus/vdev/Makefile
@@ -10,7 +10,6 @@  LIB = librte_bus_vdev.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_bus_vdev_version.map
diff --git a/drivers/bus/vdev/meson.build b/drivers/bus/vdev/meson.build
index 12605e5c74..967d54e4f8 100644
--- a/drivers/bus/vdev/meson.build
+++ b/drivers/bus/vdev/meson.build
@@ -5,6 +5,4 @@  sources = files('vdev.c',
 	'vdev_params.c')
 install_headers('rte_bus_vdev.h')
 
-allow_experimental_apis = true
-
 deps += ['kvargs']
diff --git a/drivers/bus/vmbus/Makefile b/drivers/bus/vmbus/Makefile
index 59e789db9b..335df6a0ba 100644
--- a/drivers/bus/vmbus/Makefile
+++ b/drivers/bus/vmbus/Makefile
@@ -7,7 +7,6 @@  EXPORT_MAP := rte_bus_vmbus_version.map
 
 CFLAGS += -I$(SRCDIR)
 CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 ifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),)
 SYSTEM := linux
diff --git a/drivers/bus/vmbus/meson.build b/drivers/bus/vmbus/meson.build
index 251f21b662..a68a1de9d5 100644
--- a/drivers/bus/vmbus/meson.build
+++ b/drivers/bus/vmbus/meson.build
@@ -1,7 +1,5 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 
-allow_experimental_apis = true
-
 install_headers('rte_bus_vmbus.h','rte_vmbus_reg.h')
 
 sources = files('vmbus_common.c',
diff --git a/drivers/common/cpt/meson.build b/drivers/common/cpt/meson.build
index d2e84fff33..beecf0da30 100644
--- a/drivers/common/cpt/meson.build
+++ b/drivers/common/cpt/meson.build
@@ -6,4 +6,3 @@  sources = files('cpt_fpm_tables.c',
 
 deps = ['kvargs', 'pci', 'cryptodev']
 includes += include_directories('../../crypto/octeontx')
-allow_experimental_apis = true
diff --git a/drivers/common/dpaax/Makefile b/drivers/common/dpaax/Makefile
index 59bd8ae15d..15b0b38d0d 100644
--- a/drivers/common/dpaax/Makefile
+++ b/drivers/common/dpaax/Makefile
@@ -9,7 +9,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_common_dpaax.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -Wno-pointer-arith
diff --git a/drivers/common/dpaax/meson.build b/drivers/common/dpaax/meson.build
index d41bb50732..ff2d1a5071 100644
--- a/drivers/common/dpaax/meson.build
+++ b/drivers/common/dpaax/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 NXP
 
-allow_experimental_apis = true
-
 if not is_linux
 	build = false
 	reason = 'only supported on linux'
diff --git a/drivers/common/iavf/Makefile b/drivers/common/iavf/Makefile
index 43383e376f..f06dafd408 100644
--- a/drivers/common/iavf/Makefile
+++ b/drivers/common/iavf/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_common_iavf.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -Wno-pointer-arith
diff --git a/drivers/common/iavf/meson.build b/drivers/common/iavf/meson.build
index 7b68ef27fa..ce50aceaf0 100644
--- a/drivers/common/iavf/meson.build
+++ b/drivers/common/iavf/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
-allow_experimental_apis = true
-
 sources = files('iavf_adminq.c', 'iavf_common.c', 'iavf_impl.c')
 
 if cc.has_argument('-Wno-pointer-to-int-cast')
diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build
index f671710714..ac2cfa6236 100644
--- a/drivers/common/mlx5/meson.build
+++ b/drivers/common/mlx5/meson.build
@@ -49,7 +49,6 @@  if static_ibverbs
 	ext_deps += declare_dependency(link_args:ibv_ldflags.split())
 endif
 
-allow_experimental_apis = true
 deps += ['hash', 'pci', 'net', 'eal', 'kvargs']
 sources = files(
 	'mlx5_devx_cmds.c',
diff --git a/drivers/common/octeontx2/Makefile b/drivers/common/octeontx2/Makefile
index 48f033dc69..efe3da2cc8 100644
--- a/drivers/common/octeontx2/Makefile
+++ b/drivers/common/octeontx2/Makefile
@@ -13,7 +13,6 @@  CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/bus/pci
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 ifneq ($(CONFIG_RTE_ARCH_64),y)
 CFLAGS += -Wno-int-to-pointer-cast
diff --git a/drivers/common/octeontx2/meson.build b/drivers/common/octeontx2/meson.build
index cc2c26123d..996ddba146 100644
--- a/drivers/common/octeontx2/meson.build
+++ b/drivers/common/octeontx2/meson.build
@@ -2,8 +2,6 @@ 
 # Copyright(C) 2019 Marvell International Ltd.
 #
 
-allow_experimental_apis = true
-
 sources= files('otx2_dev.c',
 		'otx2_irq.c',
 		'otx2_mbox.c',
diff --git a/drivers/common/qat/Makefile b/drivers/common/qat/Makefile
index 63d8efb2b2..28bd5668f7 100644
--- a/drivers/common/qat/Makefile
+++ b/drivers/common/qat/Makefile
@@ -16,7 +16,6 @@  CFLAGS += -I$(QAT_COMPRESS_DIR)
 
 
 ifeq ($(CONFIG_RTE_LIBRTE_COMPRESSDEV),y)
-	CFLAGS += -DALLOW_EXPERIMENTAL_API
 	LDLIBS += -lrte_compressdev
 	SRCS-y += qat_comp.c
 	SRCS-y += qat_comp_pmd.c
diff --git a/drivers/compress/isal/Makefile b/drivers/compress/isal/Makefile
index 6438b75ce8..1e225ab434 100644
--- a/drivers/compress/isal/Makefile
+++ b/drivers/compress/isal/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_isal_comp.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # external library dependencies
 LDLIBS += -lisal
diff --git a/drivers/compress/isal/meson.build b/drivers/compress/isal/meson.build
index 25578880db..5ee17e28f5 100644
--- a/drivers/compress/isal/meson.build
+++ b/drivers/compress/isal/meson.build
@@ -10,5 +10,3 @@  endif
 deps += 'bus_vdev'
 sources = files('isal_compress_pmd.c', 'isal_compress_pmd_ops.c')
 ext_deps += dep
-
-allow_experimental_apis = true
diff --git a/drivers/compress/octeontx/Makefile b/drivers/compress/octeontx/Makefile
index d6324b5302..9ba1db791e 100644
--- a/drivers/compress/octeontx/Makefile
+++ b/drivers/compress/octeontx/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_octeontx_zip.a
 # build flags
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(RTE_SDK)/drivers/compress/octeontx/include
 
 # external library include paths
diff --git a/drivers/compress/octeontx/meson.build b/drivers/compress/octeontx/meson.build
index 7cd202d07a..0dc98b7627 100644
--- a/drivers/compress/octeontx/meson.build
+++ b/drivers/compress/octeontx/meson.build
@@ -3,7 +3,6 @@ 
 
 name = 'octeontx_compress'
 sources = files('otx_zip.c', 'otx_zip_pmd.c')
-allow_experimental_apis = true
 includes += include_directories('include')
 deps += ['mempool_octeontx', 'bus_pci']
 ext_deps += dep
diff --git a/drivers/compress/qat/meson.build b/drivers/compress/qat/meson.build
index 9d15076dc6..a002469809 100644
--- a/drivers/compress/qat/meson.build
+++ b/drivers/compress/qat/meson.build
@@ -3,7 +3,6 @@ 
 
 
 # Add our sources files to the list
-allow_experimental_apis = true
 qat_sources += files('qat_comp_pmd.c',
 		     'qat_comp.c')
 qat_includes += include_directories('.')
diff --git a/drivers/compress/zlib/Makefile b/drivers/compress/zlib/Makefile
index 1eba3560fe..9f695f7d9a 100644
--- a/drivers/compress/zlib/Makefile
+++ b/drivers/compress/zlib/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_zlib.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_zlib_version.map
diff --git a/drivers/compress/zlib/meson.build b/drivers/compress/zlib/meson.build
index b1328c535e..b19a6d2b16 100644
--- a/drivers/compress/zlib/meson.build
+++ b/drivers/compress/zlib/meson.build
@@ -10,5 +10,3 @@  endif
 deps += 'bus_vdev'
 sources = files('zlib_pmd.c', 'zlib_pmd_ops.c')
 ext_deps += dep
-
-allow_experimental_apis = true
diff --git a/drivers/crypto/aesni_gcm/Makefile b/drivers/crypto/aesni_gcm/Makefile
index b443167d51..01cb4fddfe 100644
--- a/drivers/crypto/aesni_gcm/Makefile
+++ b/drivers/crypto/aesni_gcm/Makefile
@@ -8,7 +8,6 @@  LIB = librte_pmd_aesni_gcm.a
 
 # build flags
 CFLAGS += -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # versioning export map
diff --git a/drivers/crypto/aesni_gcm/meson.build b/drivers/crypto/aesni_gcm/meson.build
index 3a6e332dcb..ea83e87740 100644
--- a/drivers/crypto/aesni_gcm/meson.build
+++ b/drivers/crypto/aesni_gcm/meson.build
@@ -20,6 +20,5 @@  else
 	endif
 endif
 
-allow_experimental_apis = true
 sources = files('aesni_gcm_pmd.c', 'aesni_gcm_pmd_ops.c')
 deps += ['bus_vdev']
diff --git a/drivers/crypto/aesni_mb/Makefile b/drivers/crypto/aesni_mb/Makefile
index aa2e428106..f0dc82f395 100644
--- a/drivers/crypto/aesni_mb/Makefile
+++ b/drivers/crypto/aesni_mb/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_aesni_mb.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_aesni_mb_version.map
diff --git a/drivers/crypto/aesni_mb/meson.build b/drivers/crypto/aesni_mb/meson.build
index 3e16874165..e557e0103e 100644
--- a/drivers/crypto/aesni_mb/meson.build
+++ b/drivers/crypto/aesni_mb/meson.build
@@ -22,5 +22,4 @@  else
 endif
 
 sources = files('rte_aesni_mb_pmd.c', 'rte_aesni_mb_pmd_ops.c')
-allow_experimental_apis = true
 deps += ['bus_vdev']
diff --git a/drivers/crypto/armv8/Makefile b/drivers/crypto/armv8/Makefile
index 7f20a28d49..0e3bc9fb70 100644
--- a/drivers/crypto/armv8/Makefile
+++ b/drivers/crypto/armv8/Makefile
@@ -24,7 +24,6 @@  EXPORT_MAP := rte_pmd_armv8_version.map
 
 # external library dependencies
 CFLAGS += -I$(ARMV8_CRYPTO_LIB_PATH)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -L$(ARMV8_CRYPTO_LIB_PATH) -lAArch64crypto
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_cryptodev
diff --git a/drivers/crypto/armv8/meson.build b/drivers/crypto/armv8/meson.build
index 6ecb78b42a..c445c5bd3d 100644
--- a/drivers/crypto/armv8/meson.build
+++ b/drivers/crypto/armv8/meson.build
@@ -22,4 +22,3 @@  endif
 
 deps += ['bus_vdev']
 sources = files('rte_armv8_pmd.c', 'rte_armv8_pmd_ops.c')
-allow_experimental_apis = true
diff --git a/drivers/crypto/caam_jr/Makefile b/drivers/crypto/caam_jr/Makefile
index db17294395..89d3238172 100644
--- a/drivers/crypto/caam_jr/Makefile
+++ b/drivers/crypto/caam_jr/Makefile
@@ -9,8 +9,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_caam_jr.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 CFLAGS += -D _GNU_SOURCE
 
 CFLAGS += -O3
diff --git a/drivers/crypto/caam_jr/meson.build b/drivers/crypto/caam_jr/meson.build
index 50132aebef..f8b5250a93 100644
--- a/drivers/crypto/caam_jr/meson.build
+++ b/drivers/crypto/caam_jr/meson.build
@@ -12,8 +12,6 @@  sources = files('caam_jr_capabilities.c',
 		'caam_jr_uio.c',
 		'caam_jr.c')
 
-allow_experimental_apis = true
-
 includes += include_directories('../../bus/dpaa/include/')
 includes += include_directories('../../common/dpaax/')
 includes += include_directories('../../common/dpaax/caamflib/')
diff --git a/drivers/crypto/dpaa2_sec/Makefile b/drivers/crypto/dpaa2_sec/Makefile
index 96b9c78435..a0a2795575 100644
--- a/drivers/crypto/dpaa2_sec/Makefile
+++ b/drivers/crypto/dpaa2_sec/Makefile
@@ -10,7 +10,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_dpaa2_sec.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/crypto/dpaa2_sec/meson.build b/drivers/crypto/dpaa2_sec/meson.build
index ab9c8c8bf9..cb1c2d0492 100644
--- a/drivers/crypto/dpaa2_sec/meson.build
+++ b/drivers/crypto/dpaa2_sec/meson.build
@@ -10,6 +10,4 @@  deps += ['security', 'mempool_dpaa2']
 sources = files('dpaa2_sec_dpseci.c',
 		'mc/dpseci.c')
 
-allow_experimental_apis = true
-
 includes += include_directories('mc', '../../common/dpaax', '../../common/dpaax/caamflib')
diff --git a/drivers/crypto/dpaa_sec/Makefile b/drivers/crypto/dpaa_sec/Makefile
index 13a5ff20cf..ea266962a3 100644
--- a/drivers/crypto/dpaa_sec/Makefile
+++ b/drivers/crypto/dpaa_sec/Makefile
@@ -10,7 +10,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_dpaa_sec.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/crypto/dpaa_sec/meson.build b/drivers/crypto/dpaa_sec/meson.build
index 71de819407..7d422d8d55 100644
--- a/drivers/crypto/dpaa_sec/meson.build
+++ b/drivers/crypto/dpaa_sec/meson.build
@@ -9,8 +9,6 @@  endif
 deps += ['bus_dpaa', 'mempool_dpaa', 'security']
 sources = files('dpaa_sec.c')
 
-allow_experimental_apis = true
-
 includes += include_directories('../../bus/dpaa/include')
 includes += include_directories('../../common/dpaax')
 includes += include_directories('../../common/dpaax/caamflib/')
diff --git a/drivers/crypto/kasumi/Makefile b/drivers/crypto/kasumi/Makefile
index ad19aad11c..a7d0d079d2 100644
--- a/drivers/crypto/kasumi/Makefile
+++ b/drivers/crypto/kasumi/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_kasumi.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_kasumi_version.map
diff --git a/drivers/crypto/kasumi/meson.build b/drivers/crypto/kasumi/meson.build
index 7350f41abd..7560fb7cfa 100644
--- a/drivers/crypto/kasumi/meson.build
+++ b/drivers/crypto/kasumi/meson.build
@@ -19,7 +19,6 @@  else
 
 endif
 
-allow_experimental_apis = true
 ext_deps += lib
 sources = files('rte_kasumi_pmd.c', 'rte_kasumi_pmd_ops.c')
 deps += ['bus_vdev']
diff --git a/drivers/crypto/nitrox/Makefile b/drivers/crypto/nitrox/Makefile
index fc42ac8088..535121196b 100644
--- a/drivers/crypto/nitrox/Makefile
+++ b/drivers/crypto/nitrox/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_nitrox.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_nitrox_version.map
diff --git a/drivers/crypto/nitrox/meson.build b/drivers/crypto/nitrox/meson.build
index 03788366b1..9c0e89c2c3 100644
--- a/drivers/crypto/nitrox/meson.build
+++ b/drivers/crypto/nitrox/meson.build
@@ -7,7 +7,6 @@  if not is_linux
 endif
 
 deps += ['bus_pci']
-allow_experimental_apis = true
 sources = files(
 		'nitrox_device.c',
 		'nitrox_hal.c',
diff --git a/drivers/crypto/octeontx/Makefile b/drivers/crypto/octeontx/Makefile
index 08a99c8272..296755ee90 100644
--- a/drivers/crypto/octeontx/Makefile
+++ b/drivers/crypto/octeontx/Makefile
@@ -19,7 +19,6 @@  VPATH += $(RTE_SDK)/drivers/crypto/octeontx
 
 CFLAGS += -O3
 CFLAGS += -I$(RTE_SDK)/drivers/common/cpt
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # PMD code
 SRCS-$(CONFIG_RTE_LIBRTE_PMD_OCTEONTX_CRYPTO) += otx_cryptodev.c
diff --git a/drivers/crypto/octeontx/meson.build b/drivers/crypto/octeontx/meson.build
index 63a59c51a1..cf031b006c 100644
--- a/drivers/crypto/octeontx/meson.build
+++ b/drivers/crypto/octeontx/meson.build
@@ -9,7 +9,6 @@  deps += ['bus_pci']
 deps += ['common_cpt']
 name = 'octeontx_crypto'
 
-allow_experimental_apis = true
 sources = files('otx_cryptodev.c',
 		'otx_cryptodev_capabilities.c',
 		'otx_cryptodev_hw_access.c',
diff --git a/drivers/crypto/octeontx2/Makefile b/drivers/crypto/octeontx2/Makefile
index 1458e2b72f..5f9a6a0e3f 100644
--- a/drivers/crypto/octeontx2/Makefile
+++ b/drivers/crypto/octeontx2/Makefile
@@ -23,7 +23,6 @@  CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/crypto/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 ifneq ($(CONFIG_RTE_ARCH_64),y)
 CFLAGS += -Wno-int-to-pointer-cast
diff --git a/drivers/crypto/octeontx2/meson.build b/drivers/crypto/octeontx2/meson.build
index a5317990a7..a28c700b9f 100644
--- a/drivers/crypto/octeontx2/meson.build
+++ b/drivers/crypto/octeontx2/meson.build
@@ -12,7 +12,6 @@  deps += ['ethdev']
 deps += ['security']
 name = 'octeontx2_crypto'
 
-allow_experimental_apis = true
 sources = files('otx2_cryptodev.c',
 		'otx2_cryptodev_capabilities.c',
 		'otx2_cryptodev_hw_access.c',
diff --git a/drivers/crypto/openssl/Makefile b/drivers/crypto/openssl/Makefile
index 58a26eced6..b85c816551 100644
--- a/drivers/crypto/openssl/Makefile
+++ b/drivers/crypto/openssl/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_openssl.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_openssl_version.map
diff --git a/drivers/crypto/openssl/meson.build b/drivers/crypto/openssl/meson.build
index 394e74c9eb..d9ac698971 100644
--- a/drivers/crypto/openssl/meson.build
+++ b/drivers/crypto/openssl/meson.build
@@ -6,7 +6,6 @@  if not dep.found()
 	build = false
 	reason = 'missing dependency, "libcrypto"'
 endif
-allow_experimental_apis = true
 deps += 'bus_vdev'
 sources = files('rte_openssl_pmd.c', 'rte_openssl_pmd_ops.c')
 ext_deps += dep
diff --git a/drivers/crypto/snow3g/Makefile b/drivers/crypto/snow3g/Makefile
index cbf1a77904..469aefaa56 100644
--- a/drivers/crypto/snow3g/Makefile
+++ b/drivers/crypto/snow3g/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_snow3g.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_snow3g_version.map
diff --git a/drivers/crypto/snow3g/meson.build b/drivers/crypto/snow3g/meson.build
index 9d93cbe26c..c1c5fd37f7 100644
--- a/drivers/crypto/snow3g/meson.build
+++ b/drivers/crypto/snow3g/meson.build
@@ -19,7 +19,6 @@  else
 
 endif
 
-allow_experimental_apis = true
 ext_deps += lib
 sources = files('rte_snow3g_pmd.c', 'rte_snow3g_pmd_ops.c')
 deps += ['bus_vdev', 'cryptodev']
diff --git a/drivers/crypto/zuc/Makefile b/drivers/crypto/zuc/Makefile
index 1875344472..529b47f25e 100644
--- a/drivers/crypto/zuc/Makefile
+++ b/drivers/crypto/zuc/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_zuc.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_pmd_zuc_version.map
diff --git a/drivers/crypto/zuc/meson.build b/drivers/crypto/zuc/meson.build
index be3824c54c..c3454d799e 100644
--- a/drivers/crypto/zuc/meson.build
+++ b/drivers/crypto/zuc/meson.build
@@ -19,7 +19,6 @@  else
 
 endif
 
-allow_experimental_apis = true
 ext_deps += lib
 sources = files('rte_zuc_pmd.c', 'rte_zuc_pmd_ops.c')
 deps += ['bus_vdev']
diff --git a/drivers/event/dpaa/Makefile b/drivers/event/dpaa/Makefile
index 15ffc157f8..a39dc27c62 100644
--- a/drivers/event/dpaa/Makefile
+++ b/drivers/event/dpaa/Makefile
@@ -10,7 +10,6 @@  RTE_SDK_DPAA=$(RTE_SDK)/drivers/net/dpaa
 #
 LIB = librte_pmd_dpaa_event.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS := -I$(SRCDIR) $(CFLAGS)
 CFLAGS += -O3 $(WERROR_FLAGS)
 CFLAGS += -Wno-pointer-arith
diff --git a/drivers/event/dpaa/meson.build b/drivers/event/dpaa/meson.build
index b74f3bf323..2f761f8e5b 100644
--- a/drivers/event/dpaa/meson.build
+++ b/drivers/event/dpaa/meson.build
@@ -8,5 +8,4 @@  endif
 deps += ['pmd_dpaa', 'pmd_dpaa_sec']
 sources = files('dpaa_eventdev.c')
 
-allow_experimental_apis = true
 includes += include_directories('../../crypto/dpaa_sec/')
diff --git a/drivers/event/dpaa2/Makefile b/drivers/event/dpaa2/Makefile
index 1cd3b88bd6..75cf197c5c 100644
--- a/drivers/event/dpaa2/Makefile
+++ b/drivers/event/dpaa2/Makefile
@@ -31,9 +31,6 @@  CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec
 # versioning export map
 EXPORT_MAP := rte_pmd_dpaa2_event_version.map
 
-# depends on fslmc bus which uses experimental API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 #
 # all source are stored in SRCS-y
 #
diff --git a/drivers/event/dpaa2/meson.build b/drivers/event/dpaa2/meson.build
index ca914ccc4d..71c8be3d6e 100644
--- a/drivers/event/dpaa2/meson.build
+++ b/drivers/event/dpaa2/meson.build
@@ -10,5 +10,4 @@  sources = files('dpaa2_hw_dpcon.c',
 		'dpaa2_eventdev.c',
 		'dpaa2_eventdev_selftest.c')
 
-allow_experimental_apis = true
 includes += include_directories('../../crypto/dpaa2_sec/')
diff --git a/drivers/event/dsw/Makefile b/drivers/event/dsw/Makefile
index 68d681fab9..f6e7dda1fd 100644
--- a/drivers/event/dsw/Makefile
+++ b/drivers/event/dsw/Makefile
@@ -11,9 +11,6 @@  ifneq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
 CFLAGS += -Wno-format-nonliteral
 endif
 
-# Depends on rte_ring_elem_*()
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 LDLIBS += -lrte_eal
 LDLIBS += -lrte_mbuf
 LDLIBS += -lrte_mempool
diff --git a/drivers/event/dsw/meson.build b/drivers/event/dsw/meson.build
index 3b39cb653e..60ab13d906 100644
--- a/drivers/event/dsw/meson.build
+++ b/drivers/event/dsw/meson.build
@@ -6,6 +6,3 @@  if cc.has_argument('-Wno-format-nonliteral')
 	cflags += '-Wno-format-nonliteral'
 endif
 sources = files('dsw_evdev.c', 'dsw_event.c', 'dsw_xstats.c')
-
-# Depends on rte_ring_elem_*()
-allow_experimental_apis = true
diff --git a/drivers/event/octeontx2/Makefile b/drivers/event/octeontx2/Makefile
index bcd22ee8cd..9d67b00c69 100644
--- a/drivers/event/octeontx2/Makefile
+++ b/drivers/event/octeontx2/Makefile
@@ -16,7 +16,6 @@  CFLAGS += -I$(RTE_SDK)/drivers/mempool/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/event/octeontx2
 CFLAGS += -I$(RTE_SDK)/drivers/net/octeontx2
 CFLAGS += -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 ifneq ($(CONFIG_RTE_ARCH_64),y)
 CFLAGS += -Wno-int-to-pointer-cast
diff --git a/drivers/event/octeontx2/meson.build b/drivers/event/octeontx2/meson.build
index 56febb8d86..4b938416b9 100644
--- a/drivers/event/octeontx2/meson.build
+++ b/drivers/event/octeontx2/meson.build
@@ -12,8 +12,6 @@  sources = files('otx2_worker.c',
 		'otx2_tim_worker.c'
 		)
 
-allow_experimental_apis = true
-
 extra_flags = []
 # This integrated controller runs only on a arm64 machine, remove 32bit warnings
 if not dpdk_conf.get('RTE_ARCH_64')
diff --git a/drivers/event/opdl/Makefile b/drivers/event/opdl/Makefile
index 1dfd6f5e83..71713b00ae 100644
--- a/drivers/event/opdl/Makefile
+++ b/drivers/event/opdl/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_opdl_event.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_eventdev -lrte_kvargs
 LDLIBS += -lrte_bus_vdev -lrte_mbuf -lrte_mempool
diff --git a/drivers/event/opdl/meson.build b/drivers/event/opdl/meson.build
index e67b164e3e..1fe034ea12 100644
--- a/drivers/event/opdl/meson.build
+++ b/drivers/event/opdl/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
-allow_experimental_apis = true
 sources = files(
 	'opdl_evdev.c',
 	'opdl_evdev_init.c',
diff --git a/drivers/mempool/bucket/Makefile b/drivers/mempool/bucket/Makefile
index 1dc0079f8f..c766c35b2c 100644
--- a/drivers/mempool/bucket/Makefile
+++ b/drivers/mempool/bucket/Makefile
@@ -15,7 +15,6 @@  LIB = librte_mempool_bucket.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_mempool -lrte_ring
 
diff --git a/drivers/mempool/bucket/meson.build b/drivers/mempool/bucket/meson.build
index 2fd77f9d45..618d791283 100644
--- a/drivers/mempool/bucket/meson.build
+++ b/drivers/mempool/bucket/meson.build
@@ -6,6 +6,4 @@ 
 # This software was jointly developed between OKTET Labs (under contract
 # for Solarflare) and Solarflare Communications, Inc.
 
-allow_experimental_apis = true
-
 sources = files('rte_mempool_bucket.c')
diff --git a/drivers/mempool/dpaa/Makefile b/drivers/mempool/dpaa/Makefile
index 8c786ddbeb..144969c627 100644
--- a/drivers/mempool/dpaa/Makefile
+++ b/drivers/mempool/dpaa/Makefile
@@ -19,9 +19,6 @@  CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
 # versioning export map
 EXPORT_MAP := rte_mempool_dpaa_version.map
 
-# depends on dpaa bus which uses experimental API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 # all source are stored in SRCS-y
 #
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL) += dpaa_mempool.c
diff --git a/drivers/mempool/dpaa/meson.build b/drivers/mempool/dpaa/meson.build
index b7446f174b..754e6397f2 100644
--- a/drivers/mempool/dpaa/meson.build
+++ b/drivers/mempool/dpaa/meson.build
@@ -8,6 +8,3 @@  endif
 
 deps += ['bus_dpaa']
 sources = files('dpaa_mempool.c')
-
-# depends on dpaa bus which uses experimental API
-allow_experimental_apis = true
diff --git a/drivers/mempool/dpaa2/Makefile b/drivers/mempool/dpaa2/Makefile
index 52565be9a9..04db6d27de 100644
--- a/drivers/mempool/dpaa2/Makefile
+++ b/drivers/mempool/dpaa2/Makefile
@@ -18,9 +18,6 @@  CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include
 # versioning export map
 EXPORT_MAP := rte_mempool_dpaa2_version.map
 
-# depends on fslmc bus which uses experimental API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 # all source are stored in SRCS-y
 #
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2_hw_mempool.c
diff --git a/drivers/mempool/dpaa2/meson.build b/drivers/mempool/dpaa2/meson.build
index d79fc31644..df299a0456 100644
--- a/drivers/mempool/dpaa2/meson.build
+++ b/drivers/mempool/dpaa2/meson.build
@@ -8,6 +8,3 @@  endif
 
 deps += ['bus_fslmc']
 sources = files('dpaa2_hw_mempool.c')
-
-# depends on fslmc bus which uses experimental API
-allow_experimental_apis = true
diff --git a/drivers/mempool/octeontx/Makefile b/drivers/mempool/octeontx/Makefile
index ee54c66dc2..9c840620d9 100644
--- a/drivers/mempool/octeontx/Makefile
+++ b/drivers/mempool/octeontx/Makefile
@@ -11,7 +11,6 @@  LIB = librte_mempool_octeontx.a
 
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -I$(RTE_SDK)/drivers/common/octeontx/
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXPORT_MAP := rte_mempool_octeontx_version.map
 
diff --git a/drivers/mempool/octeontx/meson.build b/drivers/mempool/octeontx/meson.build
index 1954359502..3baaf7db25 100644
--- a/drivers/mempool/octeontx/meson.build
+++ b/drivers/mempool/octeontx/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
-allow_experimental_apis = true
-
 sources = files('octeontx_fpavf.c',
 		'rte_mempool_octeontx.c'
 )
diff --git a/drivers/mempool/octeontx2/Makefile b/drivers/mempool/octeontx2/Makefile
index 337babf66e..3828219b11 100644
--- a/drivers/mempool/octeontx2/Makefile
+++ b/drivers/mempool/octeontx2/Makefile
@@ -23,8 +23,6 @@  CFLAGS += -diag-disable 2259
 endif
 endif
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 EXPORT_MAP := rte_mempool_octeontx2_version.map
 
 #
diff --git a/drivers/mempool/octeontx2/meson.build b/drivers/mempool/octeontx2/meson.build
index 8255377df5..9fde40f0e9 100644
--- a/drivers/mempool/octeontx2/meson.build
+++ b/drivers/mempool/octeontx2/meson.build
@@ -2,8 +2,6 @@ 
 # Copyright(C) 2019 Marvell International Ltd.
 #
 
-allow_experimental_apis = true
-
 sources = files('otx2_mempool_ops.c',
 		'otx2_mempool.c',
 		'otx2_mempool_irq.c',
diff --git a/drivers/mempool/stack/Makefile b/drivers/mempool/stack/Makefile
index 97c3dab071..ccfd970400 100644
--- a/drivers/mempool/stack/Makefile
+++ b/drivers/mempool/stack/Makefile
@@ -10,7 +10,6 @@  LIB = librte_mempool_stack.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # Headers
 CFLAGS += -I$(RTE_SDK)/lib/librte_mempool
diff --git a/drivers/mempool/stack/meson.build b/drivers/mempool/stack/meson.build
index 03e369a410..580dde79eb 100644
--- a/drivers/mempool/stack/meson.build
+++ b/drivers/mempool/stack/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation
 
-allow_experimental_apis = true
-
 sources = files('rte_mempool_stack.c')
 
 deps += ['stack']
diff --git a/drivers/meson.build b/drivers/meson.build
index 5502bf9924..4d8f842ab8 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -20,7 +20,7 @@  dpdk_driver_classes = ['common',
 disabled_drivers = run_command(list_dir_globs, get_option('disable_drivers'),
 		).stdout().split()
 
-default_cflags = machine_args
+default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
 if cc.has_argument('-Wno-format-truncation')
 	default_cflags += '-Wno-format-truncation'
 endif
@@ -44,7 +44,6 @@  foreach class:dpdk_driver_classes
 		reason = '<unknown reason>' # set if build == false to explain
 		name = drv
 		fmt_name = ''
-		allow_experimental_apis = false
 		sources = []
 		objs = []
 		cflags = default_cflags
@@ -106,10 +105,6 @@  foreach class:dpdk_driver_classes
 			dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1)
 			lib_name = driver_name_fmt.format(fmt_name)
 
-			if allow_experimental_apis
-				cflags += '-DALLOW_EXPERIMENTAL_API'
-			endif
-
 			dpdk_extra_ldflags += pkgconfig_extra_libs
 
 			# generate pmdinfo sources by building a temporary
diff --git a/drivers/net/atlantic/Makefile b/drivers/net/atlantic/Makefile
index 016e369283..0d0d0a502d 100644
--- a/drivers/net/atlantic/Makefile
+++ b/drivers/net/atlantic/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_atlantic.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXPORT_MAP := rte_pmd_atlantic_version.map
 
diff --git a/drivers/net/atlantic/meson.build b/drivers/net/atlantic/meson.build
index 919d74149e..60b84684ec 100644
--- a/drivers/net/atlantic/meson.build
+++ b/drivers/net/atlantic/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Aquantia Corporation
 
-allow_experimental_apis = true
-
 sources = files(
 	'atl_rxtx.c',
 	'atl_ethdev.c',
diff --git a/drivers/net/avp/Makefile b/drivers/net/avp/Makefile
index 8c12d3b7a0..075247b13a 100644
--- a/drivers/net/avp/Makefile
+++ b/drivers/net/avp/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_avp.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
 LDLIBS += -lrte_bus_pci
diff --git a/drivers/net/avp/meson.build b/drivers/net/avp/meson.build
index 793bb185dd..a5f63cdef9 100644
--- a/drivers/net/avp/meson.build
+++ b/drivers/net/avp/meson.build
@@ -5,6 +5,5 @@  if not is_linux
 	build = false
 	reason = 'only supported on linux'
 endif
-allow_experimental_apis = true
 sources = files('avp_ethdev.c')
 install_headers('rte_avp_common.h', 'rte_avp_fifo.h')
diff --git a/drivers/net/axgbe/Makefile b/drivers/net/axgbe/Makefile
index 0097a93074..e421d0da11 100644
--- a/drivers/net/axgbe/Makefile
+++ b/drivers/net/axgbe/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_axgbe.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXPORT_MAP := rte_pmd_axgbe_version.map
 
diff --git a/drivers/net/axgbe/meson.build b/drivers/net/axgbe/meson.build
index 366b289276..86873b7ef9 100644
--- a/drivers/net/axgbe/meson.build
+++ b/drivers/net/axgbe/meson.build
@@ -6,8 +6,6 @@  if not is_linux
 	reason = 'only supported on linux'
 endif
 
-allow_experimental_apis = true
-
 sources = files('axgbe_ethdev.c',
 		'axgbe_dev.c',
 		'axgbe_mdio.c',
diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile
index 5f6c39e4ee..451434cc18 100644
--- a/drivers/net/bnx2x/Makefile
+++ b/drivers/net/bnx2x/Makefile
@@ -12,7 +12,6 @@  LIB = librte_pmd_bnx2x.a
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -DZLIB_CONST
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lz
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
diff --git a/drivers/net/bnx2x/meson.build b/drivers/net/bnx2x/meson.build
index 678708905e..4892bb234c 100644
--- a/drivers/net/bnx2x/meson.build
+++ b/drivers/net/bnx2x/meson.build
@@ -5,7 +5,6 @@  dep = dependency('zlib', required: false)
 build = dep.found()
 reason = 'missing dependency, "zlib"'
 ext_deps += dep
-allow_experimental_apis = true
 cflags += '-DZLIB_CONST'
 sources = files('bnx2x.c',
 	'bnx2x_ethdev.c',
diff --git a/drivers/net/bonding/Makefile b/drivers/net/bonding/Makefile
index a64296d8cf..728551a846 100644
--- a/drivers/net/bonding/Makefile
+++ b/drivers/net/bonding/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_bond.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
diff --git a/drivers/net/bonding/meson.build b/drivers/net/bonding/meson.build
index d133375d4a..a3eff3b31c 100644
--- a/drivers/net/bonding/meson.build
+++ b/drivers/net/bonding/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2017 Intel Corporation
 
 name = 'bond' #, james bond :-)
-allow_experimental_apis = true
 sources = files('rte_eth_bond_api.c', 'rte_eth_bond_pmd.c', 'rte_eth_bond_flow.c',
 	'rte_eth_bond_args.c', 'rte_eth_bond_8023ad.c', 'rte_eth_bond_alb.c')
 
diff --git a/drivers/net/dpaa/Makefile b/drivers/net/dpaa/Makefile
index f63c9bf540..d7bbc0e158 100644
--- a/drivers/net/dpaa/Makefile
+++ b/drivers/net/dpaa/Makefile
@@ -25,9 +25,6 @@  CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
 
 EXPORT_MAP := rte_pmd_dpaa_version.map
 
-# depends on dpaa bus which uses experimental API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 # Interfaces with DPDK
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_ethdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA_PMD) += dpaa_rxtx.c
diff --git a/drivers/net/dpaa/meson.build b/drivers/net/dpaa/meson.build
index 542b44af4f..271416f081 100644
--- a/drivers/net/dpaa/meson.build
+++ b/drivers/net/dpaa/meson.build
@@ -14,6 +14,4 @@  if cc.has_argument('-Wno-pointer-arith')
 	cflags += '-Wno-pointer-arith'
 endif
 
-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa.h')
diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile
index cdd9115ba4..6f38c18b9b 100644
--- a/drivers/net/dpaa2/Makefile
+++ b/drivers/net/dpaa2/Makefile
@@ -24,9 +24,6 @@  CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2
 # versioning export map
 EXPORT_MAP := rte_pmd_dpaa2_version.map
 
-# depends on fslmc bus which uses experimental API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += base/dpaa2_hw_dpni.c
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_rxtx.c
 SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_ethdev.c
diff --git a/drivers/net/dpaa2/meson.build b/drivers/net/dpaa2/meson.build
index 571cdb7d4b..6dd0eb274c 100644
--- a/drivers/net/dpaa2/meson.build
+++ b/drivers/net/dpaa2/meson.build
@@ -24,7 +24,4 @@  endif
 
 includes += include_directories('base', 'mc')
 
-# depends on fslmc bus which uses experimental API
-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa2.h')
diff --git a/drivers/net/e1000/Makefile b/drivers/net/e1000/Makefile
index d93a5225c3..9fb038cf08 100644
--- a/drivers/net/e1000/Makefile
+++ b/drivers/net/e1000/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_e1000.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
 LDLIBS += -lrte_bus_pci
diff --git a/drivers/net/e1000/base/meson.build b/drivers/net/e1000/base/meson.build
index f26f242987..5e1716defe 100644
--- a/drivers/net/e1000/base/meson.build
+++ b/drivers/net/e1000/base/meson.build
@@ -25,9 +25,6 @@  error_cflags = ['-Wno-uninitialized', '-Wno-unused-parameter',
 	'-Wno-unused-variable', '-Wno-misleading-indentation',
 	'-Wno-implicit-fallthrough']
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/e1000/meson.build b/drivers/net/e1000/meson.build
index d0901d3779..cf456995cc 100644
--- a/drivers/net/e1000/meson.build
+++ b/drivers/net/e1000/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ena/Makefile b/drivers/net/ena/Makefile
index b44daa896f..8ccff36db7 100644
--- a/drivers/net/ena/Makefile
+++ b/drivers/net/ena/Makefile
@@ -12,8 +12,6 @@  CFLAGS += $(WERROR_FLAGS) -O2
 INCLUDES :=-I$(SRCDIR) -I$(SRCDIR)/base/ena_defs -I$(SRCDIR)/base
 
 EXPORT_MAP := rte_pmd_ena_version.map
-# rte_fbarray is not yet part of stable API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 VPATH += $(SRCDIR)/base
 #
diff --git a/drivers/net/ena/meson.build b/drivers/net/ena/meson.build
index 091ca6e3f8..189903b901 100644
--- a/drivers/net/ena/meson.build
+++ b/drivers/net/ena/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('ena_ethdev.c',
 	'base/ena_com.c',
 	'base/ena_eth_com.c')
diff --git a/drivers/net/enetc/Makefile b/drivers/net/enetc/Makefile
index 7f7a85f649..7276026e37 100644
--- a/drivers/net/enetc/Makefile
+++ b/drivers/net/enetc/Makefile
@@ -11,7 +11,6 @@  LIB = librte_pmd_enetc.a
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 EXPORT_MAP := rte_pmd_enetc_version.map
 SRCS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc_ethdev.c
 SRCS-$(CONFIG_RTE_LIBRTE_ENETC_PMD) += enetc_rxtx.c
diff --git a/drivers/net/enetc/meson.build b/drivers/net/enetc/meson.build
index af11c0960c..bea54bea88 100644
--- a/drivers/net/enetc/meson.build
+++ b/drivers/net/enetc/meson.build
@@ -11,4 +11,3 @@  sources = files('enetc_ethdev.c',
 		'enetc_rxtx.c')
 
 includes += include_directories('base')
-allow_experimental_apis = true
diff --git a/drivers/net/enic/Makefile b/drivers/net/enic/Makefile
index 316088a3c7..d098a474a1 100644
--- a/drivers/net/enic/Makefile
+++ b/drivers/net/enic/Makefile
@@ -11,8 +11,6 @@  LIB = librte_pmd_enic.a
 
 EXPORT_MAP := rte_pmd_enic_version.map
 
-# Experimental APIs used: rte_intr_ack
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/base/
 CFLAGS += -I$(SRCDIR)
 CFLAGS += -O3
diff --git a/drivers/net/enic/meson.build b/drivers/net/enic/meson.build
index e5eeb56675..1bd7cc7e1b 100644
--- a/drivers/net/enic/meson.build
+++ b/drivers/net/enic/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Cisco Systems, Inc.
 
-# Experimental APIs used: rte_intr_ack
-cflags += ['-DALLOW_EXPERIMENTAL_API']
 sources = files(
 	'base/vnic_cq.c',
 	'base/vnic_dev.c',
diff --git a/drivers/net/failsafe/Makefile b/drivers/net/failsafe/Makefile
index bebc9056e0..464fd0515d 100644
--- a/drivers/net/failsafe/Makefile
+++ b/drivers/net/failsafe/Makefile
@@ -27,7 +27,6 @@  endif
 # No exported include files
 
 # Basic CFLAGS:
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -std=gnu99 -Wextra
 CFLAGS += -O3
 CFLAGS += -I.
diff --git a/drivers/net/failsafe/meson.build b/drivers/net/failsafe/meson.build
index dfd4067cbd..56010e2120 100644
--- a/drivers/net/failsafe/meson.build
+++ b/drivers/net/failsafe/meson.build
@@ -11,8 +11,6 @@  else
 	cflags += '-DBSD'
 endif
 
-allow_experimental_apis = true
-
 sources = files('failsafe_args.c',
 	'failsafe.c',
 	'failsafe_eal.c',
diff --git a/drivers/net/fm10k/Makefile b/drivers/net/fm10k/Makefile
index 29e659da8a..d486389928 100644
--- a/drivers/net/fm10k/Makefile
+++ b/drivers/net/fm10k/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_fm10k.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXPORT_MAP := rte_pmd_fm10k_version.map
 
diff --git a/drivers/net/fm10k/base/meson.build b/drivers/net/fm10k/base/meson.build
index 40d9b730a3..6ac11b2012 100644
--- a/drivers/net/fm10k/base/meson.build
+++ b/drivers/net/fm10k/base/meson.build
@@ -16,9 +16,6 @@  error_cflags = ['-Wno-unused-parameter', '-Wno-unused-value',
 	'-Wno-implicit-fallthrough'
 ]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/fm10k/meson.build b/drivers/net/fm10k/meson.build
index 8f6e423922..2772ea4dfc 100644
--- a/drivers/net/fm10k/meson.build
+++ b/drivers/net/fm10k/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/hns3/Makefile b/drivers/net/hns3/Makefile
index ae0ee7e931..d7798a4706 100644
--- a/drivers/net/hns3/Makefile
+++ b/drivers/net/hns3/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_hns3.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 # Experimantal APIs:
 # - rte_mp_action_register
 # - rte_mp_action_unregister
diff --git a/drivers/net/hns3/meson.build b/drivers/net/hns3/meson.build
index 1a350fc8c6..e01e6ce60b 100644
--- a/drivers/net/hns3/meson.build
+++ b/drivers/net/hns3/meson.build
@@ -27,11 +27,4 @@  sources = files('hns3_cmd.c',
 	'hns3_stats.c',
 	'hns3_mp.c')
 
-allow_experimental_apis = true
-# Experimantal APIs:
-# - rte_mp_action_register
-# - rte_mp_action_unregister
-# - rte_mp_reply
-# - rte_mp_request_sync
-
 deps += ['hash']
diff --git a/drivers/net/i40e/Makefile b/drivers/net/i40e/Makefile
index 819473abac..7ec8d95331 100644
--- a/drivers/net/i40e/Makefile
+++ b/drivers/net/i40e/Makefile
@@ -11,7 +11,6 @@  LIB = librte_pmd_i40e.a
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -DPF_DRIVER -DVF_DRIVER -DINTEGRATED_VF
 CFLAGS += -DX722_A0_SUPPORT
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
diff --git a/drivers/net/i40e/base/meson.build b/drivers/net/i40e/base/meson.build
index 3dee8c9754..db0c830dc2 100644
--- a/drivers/net/i40e/base/meson.build
+++ b/drivers/net/i40e/base/meson.build
@@ -18,9 +18,6 @@  error_cflags = ['-Wno-sign-compare', '-Wno-unused-value',
 		'-Wno-unused-parameter',
 ]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build
index b01babba1f..886e8da664 100644
--- a/drivers/net/i40e/meson.build
+++ b/drivers/net/i40e/meson.build
@@ -4,8 +4,7 @@ 
 cflags += ['-DPF_DRIVER',
 	'-DVF_DRIVER',
 	'-DINTEGRATED_VF',
-	'-DX722_A0_SUPPORT',
-	'-DALLOW_EXPERIMENTAL_API']
+	'-DX722_A0_SUPPORT']
 
 subdir('base')
 objs = [base_objs]
diff --git a/drivers/net/iavf/Makefile b/drivers/net/iavf/Makefile
index 514073d76e..399682594e 100644
--- a/drivers/net/iavf/Makefile
+++ b/drivers/net/iavf/Makefile
@@ -9,7 +9,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_iavf.a
 
 CFLAGS += -I$(RTE_SDK)/drivers/common/iavf
-CFLAGS += -O3 $(WERROR_FLAGS) -Wno-strict-aliasing -DALLOW_EXPERIMENTAL_API
+CFLAGS += -O3 $(WERROR_FLAGS) -Wno-strict-aliasing
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
 LDLIBS += -lrte_bus_pci
diff --git a/drivers/net/iavf/meson.build b/drivers/net/iavf/meson.build
index dbd0b01db5..7bf3a33043 100644
--- a/drivers/net/iavf/meson.build
+++ b/drivers/net/iavf/meson.build
@@ -3,8 +3,6 @@ 
 
 cflags += ['-Wno-strict-aliasing']
 
-allow_experimental_apis = true
-
 includes += include_directories('../../common/iavf')
 deps += ['common_iavf']
 
diff --git a/drivers/net/ice/Makefile b/drivers/net/ice/Makefile
index 6c4d155268..54a90a86f9 100644
--- a/drivers/net/ice/Makefile
+++ b/drivers/net/ice/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_ice.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_ethdev -lrte_kvargs
 LDLIBS += -lrte_bus_pci -lrte_mempool -lrte_hash
diff --git a/drivers/net/ice/meson.build b/drivers/net/ice/meson.build
index f9e897bbc2..617b2c815d 100644
--- a/drivers/net/ice/meson.build
+++ b/drivers/net/ice/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/ionic/Makefile b/drivers/net/ionic/Makefile
index f74ac2d34f..7442e2c5cb 100644
--- a/drivers/net/ionic/Makefile
+++ b/drivers/net/ionic/Makefile
@@ -8,9 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_ionic.a
 
-# Required to use rte_eth_dev_create and rte_eth_dev_destroy
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/net/ipn3ke/Makefile b/drivers/net/ipn3ke/Makefile
index 2c7ef0a1d8..40696dbde8 100644
--- a/drivers/net/ipn3ke/Makefile
+++ b/drivers/net/ipn3ke/Makefile
@@ -15,7 +15,6 @@  LIB = librte_pmd_ipn3ke.a
 #  rte_eth_dev_destroy()
 #  rte_eth_switch_domain_free()
 #
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -I$(RTE_SDK)/drivers/bus/ifpga
diff --git a/drivers/net/ipn3ke/meson.build b/drivers/net/ipn3ke/meson.build
index f19083af15..ec9cb7daf0 100644
--- a/drivers/net/ipn3ke/meson.build
+++ b/drivers/net/ipn3ke/meson.build
@@ -19,8 +19,6 @@  if not dep.found()
 	subdir_done()
 endif
 
-allow_experimental_apis = true
-
 includes += include_directories('../../raw/ifpga')
 
 sources += files('ipn3ke_ethdev.c',
diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile
index aec56a6807..0f0bcf1d66 100644
--- a/drivers/net/ixgbe/Makefile
+++ b/drivers/net/ixgbe/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_ixgbe.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/net/ixgbe/base/meson.build b/drivers/net/ixgbe/base/meson.build
index bbd0f51ea5..da3887560d 100644
--- a/drivers/net/ixgbe/base/meson.build
+++ b/drivers/net/ixgbe/base/meson.build
@@ -22,9 +22,6 @@  error_cflags = ['-Wno-unused-value',
 		'-Wno-unused-parameter',
 		]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 foreach flag: error_cflags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/ixgbe/meson.build b/drivers/net/ixgbe/meson.build
index 06cf42a4aa..949075eb22 100644
--- a/drivers/net/ixgbe/meson.build
+++ b/drivers/net/ixgbe/meson.build
@@ -3,8 +3,6 @@ 
 
 cflags += ['-DRTE_LIBRTE_IXGBE_BYPASS']
 
-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/memif/Makefile b/drivers/net/memif/Makefile
index 959b36bcbd..3bf4ddce4c 100644
--- a/drivers/net/memif/Makefile
+++ b/drivers/net/memif/Makefile
@@ -12,13 +12,6 @@  EXPORT_MAP := rte_pmd_memif_version.map
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-# Experimantal APIs:
-# - rte_intr_callback_unregister_pending
-# - rte_mp_action_register
-# - rte_mp_reply
-# - rte_mp_request_sync
-# - rte_mcfg_get_single_file_segments
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
 LDLIBS += -lrte_ethdev -lrte_kvargs -lrte_net
 LDLIBS += -lrte_hash
diff --git a/drivers/net/memif/meson.build b/drivers/net/memif/meson.build
index 4c1c647f64..9c3ba432d0 100644
--- a/drivers/net/memif/meson.build
+++ b/drivers/net/memif/meson.build
@@ -9,12 +9,4 @@  endif
 sources = files('rte_eth_memif.c',
 		'memif_socket.c')
 
-allow_experimental_apis = true
-# Experimantal APIs:
-# - rte_intr_callback_unregister_pending
-# - rte_mp_action_register
-# - rte_mp_reply
-# - rte_mp_request_sync
-# - rte_mcfg_get_single_file_segments
-
 deps += ['hash']
diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
index c5543ed3da..02e9b2ec07 100644
--- a/drivers/net/mlx4/Makefile
+++ b/drivers/net/mlx4/Makefile
@@ -38,7 +38,6 @@  CFLAGS += -D_BSD_SOURCE
 CFLAGS += -D_DEFAULT_SOURCE
 CFLAGS += -D_XOPEN_SOURCE=600
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)
 CFLAGS += -DMLX4_GLUE='"$(LIB_GLUE)"'
 CFLAGS += -DMLX4_GLUE_VERSION='"$(LIB_GLUE_VERSION)"'
diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
index c598745730..5a25e11a7b 100644
--- a/drivers/net/mlx4/meson.build
+++ b/drivers/net/mlx4/meson.build
@@ -50,7 +50,6 @@  if static_ibverbs
 	ext_deps += declare_dependency(link_args:ibv_ldflags.split())
 endif
 
-allow_experimental_apis = true
 sources = files(
 	'mlx4.c',
 	'mlx4_ethdev.c',
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
index e8ba6244d6..2577ee5e5c 100644
--- a/drivers/net/mlx5/Makefile
+++ b/drivers/net/mlx5/Makefile
@@ -56,9 +56,6 @@  CFLAGS += -Wno-error=cast-qual
 
 EXPORT_MAP := rte_pmd_mlx5_version.map
 
-# memseg walk is not part of stable API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 # DEBUG which is usually provided on the command-line may enable
 # CONFIG_RTE_LIBRTE_MLX5_DEBUG.
 ifeq ($(DEBUG),1)
diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
index d418d26ba9..928663af7e 100644
--- a/drivers/net/mlx5/meson.build
+++ b/drivers/net/mlx5/meson.build
@@ -8,7 +8,6 @@  if not is_linux
 	subdir_done()
 endif
 
-allow_experimental_apis = true
 deps += ['hash', 'common_mlx5']
 sources = files(
 	'mlx5.c',
diff --git a/drivers/net/netvsc/Makefile b/drivers/net/netvsc/Makefile
index 45526e2a8e..da8991584a 100644
--- a/drivers/net/netvsc/Makefile
+++ b/drivers/net/netvsc/Makefile
@@ -5,7 +5,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_netvsc.a
 
 CFLAGS += -O3 $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXPORT_MAP := rte_pmd_netvsc_version.map
 
diff --git a/drivers/net/netvsc/meson.build b/drivers/net/netvsc/meson.build
index 131dd2866e..e7f4493028 100644
--- a/drivers/net/netvsc/meson.build
+++ b/drivers/net/netvsc/meson.build
@@ -6,5 +6,3 @@  reason = 'missing dependency, DPDK VMBus driver'
 sources = files('hn_ethdev.c', 'hn_rxtx.c', 'hn_rndis.c', 'hn_nvs.c', 'hn_vf.c')
 
 deps += ['bus_vmbus' ]
-
-allow_experimental_apis = true
diff --git a/drivers/net/nfp/Makefile b/drivers/net/nfp/Makefile
index aa720d6698..289b3a60e3 100644
--- a/drivers/net/nfp/Makefile
+++ b/drivers/net/nfp/Makefile
@@ -10,7 +10,6 @@  LIB = librte_pmd_nfp.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lm
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
diff --git a/drivers/net/nfp/meson.build b/drivers/net/nfp/meson.build
index b487cdffdf..24a9a6da9c 100644
--- a/drivers/net/nfp/meson.build
+++ b/drivers/net/nfp/meson.build
@@ -18,5 +18,3 @@  sources = files('nfpcore/nfp_cpp_pcie_ops.c',
 	'nfpcore/nfp_nsp_eth.c',
 	'nfpcore/nfp_hwinfo.c',
 	'nfp_net.c')
-
-allow_experimental_apis = true
diff --git a/drivers/net/octeontx/Makefile b/drivers/net/octeontx/Makefile
index 8ddfc30894..49ef8f3742 100644
--- a/drivers/net/octeontx/Makefile
+++ b/drivers/net/octeontx/Makefile
@@ -42,8 +42,6 @@  else
 CFLAGS_octeontx_rxtx.o += -O3 -Ofast
 endif
 
-CFLAGS_octeontx_ethdev.o += -DALLOW_EXPERIMENTAL_API
-
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_common_octeontx
 LDLIBS += -lrte_mempool_octeontx
diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
index a06a2c89c9..b72104170e 100644
--- a/drivers/net/octeontx/base/meson.build
+++ b/drivers/net/octeontx/base/meson.build
@@ -14,9 +14,6 @@  foreach d: depends
 endforeach
 
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 base_lib = static_library('octeontx_base', sources,
 	c_args: c_args,
 	dependencies: static_objs,
diff --git a/drivers/net/octeontx/meson.build b/drivers/net/octeontx/meson.build
index 0e249eb98d..ef789eaa90 100644
--- a/drivers/net/octeontx/meson.build
+++ b/drivers/net/octeontx/meson.build
@@ -8,8 +8,6 @@  sources = files('octeontx_rxtx.c',
 		'octeontx_ethdev.c'
 		)
 
-allow_experimental_apis = true
-
 deps += ['mempool_octeontx', 'eventdev']
 
 includes += include_directories('base')
diff --git a/drivers/net/pfe/Makefile b/drivers/net/pfe/Makefile
index 20a3839e7a..75d30b01aa 100644
--- a/drivers/net/pfe/Makefile
+++ b/drivers/net/pfe/Makefile
@@ -15,10 +15,6 @@  CFLAGS += -I$(RTE_SDK)/drivers/net/pfe/base/
 CFLAGS += -I$(RTE_SDK)/drivers/common/dpaax
 
 EXPORT_MAP := rte_pmd_pfe_version.map
-# Driver uses below experimental APIs
-# rte_mem_iova2virt
-# rte_mem_virt2memseg
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # Interfaces with DPDK
 SRCS-$(CONFIG_RTE_LIBRTE_PFE_PMD) += pfe_ethdev.c
diff --git a/drivers/net/pfe/meson.build b/drivers/net/pfe/meson.build
index 678ce49a9d..3e1a228a3f 100644
--- a/drivers/net/pfe/meson.build
+++ b/drivers/net/pfe/meson.build
@@ -15,9 +15,4 @@  if cc.has_argument('-Wno-pointer-arith')
 	cflags += '-Wno-pointer-arith'
 endif
 
-# Driver uses below experimental APIs
-# rte_mem_iova2virt
-# rte_mem_virt2memseg
-allow_experimental_apis = true
-
 includes += include_directories('base')
diff --git a/drivers/net/qede/Makefile b/drivers/net/qede/Makefile
index ada33800c4..5810b4d49a 100644
--- a/drivers/net/qede/Makefile
+++ b/drivers/net/qede/Makefile
@@ -12,7 +12,6 @@  LIB = librte_pmd_qede.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs
 LDLIBS += -lrte_bus_pci
diff --git a/drivers/net/qede/base/meson.build b/drivers/net/qede/base/meson.build
index 71b89737df..59b41c895d 100644
--- a/drivers/net/qede/base/meson.build
+++ b/drivers/net/qede/base/meson.build
@@ -45,9 +45,6 @@  error_cflags = [
 	'-Wno-pointer-bool-conversion',
 ]
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 foreach flag: error_cflags
         if cc.has_argument(flag)
                 c_args += flag
diff --git a/drivers/net/qede/meson.build b/drivers/net/qede/meson.build
index 1755719f0a..12388a680e 100644
--- a/drivers/net/qede/meson.build
+++ b/drivers/net/qede/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
-allow_experimental_apis = true
-
 subdir('base')
 objs = [base_objs]
 
diff --git a/drivers/net/sfc/Makefile b/drivers/net/sfc/Makefile
index 1f9c0bc3e0..921771db76 100644
--- a/drivers/net/sfc/Makefile
+++ b/drivers/net/sfc/Makefile
@@ -13,7 +13,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_sfc_efx.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/base/
 CFLAGS += -I$(SRCDIR)
 CFLAGS += -O3
diff --git a/drivers/net/sfc/base/meson.build b/drivers/net/sfc/base/meson.build
index 074112f169..bc7bc86cdb 100644
--- a/drivers/net/sfc/base/meson.build
+++ b/drivers/net/sfc/base/meson.build
@@ -63,9 +63,6 @@  extra_flags = [
 ]
 
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 foreach flag: extra_flags
 	if cc.has_argument(flag)
 		c_args += flag
diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build
index 8c54f9d548..c2f6af7579 100644
--- a/drivers/net/sfc/meson.build
+++ b/drivers/net/sfc/meson.build
@@ -11,8 +11,6 @@  if arch_subdir != 'x86' or not dpdk_conf.get('RTE_ARCH_64')
 	reason = 'only supported on x86_64'
 endif
 
-allow_experimental_apis = true
-
 extra_flags = []
 
 # Strict-aliasing rules are violated by rte_eth_link to uint64_t casts
diff --git a/drivers/net/softnic/Makefile b/drivers/net/softnic/Makefile
index 5068ffa18a..dabbe13a5f 100644
--- a/drivers/net/softnic/Makefile
+++ b/drivers/net/softnic/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_softnic.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_pipeline -lrte_port -lrte_table
diff --git a/drivers/net/softnic/meson.build b/drivers/net/softnic/meson.build
index 9c10c2ec80..96c003e157 100644
--- a/drivers/net/softnic/meson.build
+++ b/drivers/net/softnic/meson.build
@@ -5,7 +5,6 @@  if not is_linux
 	build = false
 	reason = 'only supported on linux'
 endif
-allow_experimental_apis = true
 install_headers('rte_eth_softnic.h')
 sources = files('rte_eth_softnic_tm.c',
 	'rte_eth_softnic.c',
diff --git a/drivers/net/tap/Makefile b/drivers/net/tap/Makefile
index 088fa8f9a9..cbf87af401 100644
--- a/drivers/net/tap/Makefile
+++ b/drivers/net/tap/Makefile
@@ -20,7 +20,6 @@  CFLAGS += -O3
 CFLAGS += -I$(SRCDIR)
 CFLAGS += -I.
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_hash
 LDLIBS += -lrte_bus_vdev -lrte_gso
diff --git a/drivers/net/tap/meson.build b/drivers/net/tap/meson.build
index baa70f7564..c1cdf9e673 100644
--- a/drivers/net/tap/meson.build
+++ b/drivers/net/tap/meson.build
@@ -39,7 +39,6 @@  args = [
 	  'TCA_ACT_BPF_FD' ],
 ]
 config = configuration_data()
-allow_experimental_apis = true
 foreach arg:args
 	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2]))
 endforeach
diff --git a/drivers/net/thunderx/Makefile b/drivers/net/thunderx/Makefile
index 969338a189..149638a499 100644
--- a/drivers/net/thunderx/Makefile
+++ b/drivers/net/thunderx/Makefile
@@ -10,7 +10,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_thunderx_nicvf.a
 
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lm
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
diff --git a/drivers/net/thunderx/base/meson.build b/drivers/net/thunderx/base/meson.build
index bf4e8608ad..8998264a3a 100644
--- a/drivers/net/thunderx/base/meson.build
+++ b/drivers/net/thunderx/base/meson.build
@@ -8,9 +8,6 @@  sources = [
 ]
 
 c_args = cflags
-if allow_experimental_apis
-	c_args += '-DALLOW_EXPERIMENTAL_API'
-endif
 base_lib = static_library('nicvf_base', sources,
 	c_args: c_args,
 	dependencies: static_rte_ethdev
diff --git a/drivers/net/thunderx/meson.build b/drivers/net/thunderx/meson.build
index 23d9458115..69819a97fa 100644
--- a/drivers/net/thunderx/meson.build
+++ b/drivers/net/thunderx/meson.build
@@ -4,7 +4,6 @@ 
 subdir('base')
 objs = [base_objs]
 
-allow_experimental_apis = true
 sources = files('nicvf_rxtx.c',
 		'nicvf_ethdev.c',
 		'nicvf_svf.c'
diff --git a/drivers/net/vdev_netvsc/Makefile b/drivers/net/vdev_netvsc/Makefile
index 9cd81225b3..01d26fb798 100644
--- a/drivers/net/vdev_netvsc/Makefile
+++ b/drivers/net/vdev_netvsc/Makefile
@@ -9,7 +9,6 @@  LIB = librte_pmd_vdev_netvsc.a
 EXPORT_MAP := rte_pmd_vdev_netvsc_version.map
 
 # Additional compilation flags.
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += -g
 CFLAGS += -Wall -Wextra
diff --git a/drivers/net/vdev_netvsc/meson.build b/drivers/net/vdev_netvsc/meson.build
index bf62edb7a3..58b0012ed9 100644
--- a/drivers/net/vdev_netvsc/meson.build
+++ b/drivers/net/vdev_netvsc/meson.build
@@ -7,8 +7,6 @@  if not is_linux
 endif
 sources = files('vdev_netvsc.c')
 
-allow_experimental_apis = true
-
 cflags_options = [
         '-D_BSD_SOURCE',
         '-D_DEFAULT_SOURCE',
diff --git a/drivers/net/virtio/Makefile b/drivers/net/virtio/Makefile
index efdcb0d93f..c9edb84eeb 100644
--- a/drivers/net/virtio/Makefile
+++ b/drivers/net/virtio/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_virtio.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
index 5e7ca855c8..15150eea17 100644
--- a/drivers/net/virtio/meson.build
+++ b/drivers/net/virtio/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
 sources += files('virtio_ethdev.c',
 	'virtio_pci.c',
 	'virtio_rxtx.c',
diff --git a/drivers/net/vmxnet3/Makefile b/drivers/net/vmxnet3/Makefile
index 3a63cf2e91..4390fedee0 100644
--- a/drivers/net/vmxnet3/Makefile
+++ b/drivers/net/vmxnet3/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pmd_vmxnet3_uio.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/net/vmxnet3/meson.build b/drivers/net/vmxnet3/meson.build
index a92bd28680..0641f776ff 100644
--- a/drivers/net/vmxnet3/meson.build
+++ b/drivers/net/vmxnet3/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
-allow_experimental_apis = true
 sources += files(
 	'vmxnet3_ethdev.c',
 	'vmxnet3_rxtx.c',
diff --git a/drivers/raw/dpaa2_cmdif/Makefile b/drivers/raw/dpaa2_cmdif/Makefile
index f671a30ccf..227ec4896e 100644
--- a/drivers/raw/dpaa2_cmdif/Makefile
+++ b/drivers/raw/dpaa2_cmdif/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_rawdev_dpaa2_cmdif.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/raw/dpaa2_cmdif/meson.build b/drivers/raw/dpaa2_cmdif/meson.build
index 70247622bc..e7656a3cda 100644
--- a/drivers/raw/dpaa2_cmdif/meson.build
+++ b/drivers/raw/dpaa2_cmdif/meson.build
@@ -6,6 +6,4 @@  reason = 'missing dependency, DPDK DPAA2 mempool driver'
 deps += ['rawdev', 'mempool_dpaa2', 'bus_vdev']
 sources = files('dpaa2_cmdif.c')
 
-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa2_cmdif.h')
diff --git a/drivers/raw/dpaa2_qdma/Makefile b/drivers/raw/dpaa2_qdma/Makefile
index fc5b3435b0..7b2abdddb4 100644
--- a/drivers/raw/dpaa2_qdma/Makefile
+++ b/drivers/raw/dpaa2_qdma/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_rawdev_dpaa2_qdma.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/drivers/raw/dpaa2_qdma/meson.build b/drivers/raw/dpaa2_qdma/meson.build
index fe166d9183..b9b08153ac 100644
--- a/drivers/raw/dpaa2_qdma/meson.build
+++ b/drivers/raw/dpaa2_qdma/meson.build
@@ -6,6 +6,4 @@  reason = 'missing dependency, DPDK DPAA2 mempool driver'
 deps += ['rawdev', 'mempool_dpaa2', 'ring', 'kvargs']
 sources = files('dpaa2_qdma.c')
 
-allow_experimental_apis = true
-
 install_headers('rte_pmd_dpaa2_qdma.h')
diff --git a/drivers/raw/ifpga/Makefile b/drivers/raw/ifpga/Makefile
index eb03a856c0..371e127f19 100644
--- a/drivers/raw/ifpga/Makefile
+++ b/drivers/raw/ifpga/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_rawdev_ifpga.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 CFLAGS += -I$(RTE_SDK)/drivers/bus/ifpga
diff --git a/drivers/raw/ifpga/meson.build b/drivers/raw/ifpga/meson.build
index e2a4b8cccb..05a1711b5d 100644
--- a/drivers/raw/ifpga/meson.build
+++ b/drivers/raw/ifpga/meson.build
@@ -23,5 +23,3 @@  sources = files('ifpga_rawdev.c')
 includes += include_directories('base')
 includes += include_directories('../../net/ipn3ke')
 includes += include_directories('../../net/i40e')
-
-allow_experimental_apis = true
diff --git a/drivers/raw/ntb/Makefile b/drivers/raw/ntb/Makefile
index d69b4306bc..8f0bff9b02 100644
--- a/drivers/raw/ntb/Makefile
+++ b/drivers/raw/ntb/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_rawdev_ntb.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool
diff --git a/drivers/raw/ntb/meson.build b/drivers/raw/ntb/meson.build
index 7a7d261263..2926193a0a 100644
--- a/drivers/raw/ntb/meson.build
+++ b/drivers/raw/ntb/meson.build
@@ -6,4 +6,3 @@  deps += ['rawdev', 'mbuf', 'mempool',
 sources = files('ntb.c',
                 'ntb_hw_intel.c')
 install_headers('rte_pmd_ntb.h')
-allow_experimental_apis = true
diff --git a/drivers/vdpa/ifc/Makefile b/drivers/vdpa/ifc/Makefile
index fe227b8110..b468bfdbdd 100644
--- a/drivers/vdpa/ifc/Makefile
+++ b/drivers/vdpa/ifc/Makefile
@@ -14,7 +14,6 @@  LDLIBS += -lrte_kvargs
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 #
 # Add extra flags for base driver source files to disable warnings in them
diff --git a/drivers/vdpa/ifc/meson.build b/drivers/vdpa/ifc/meson.build
index adc9ed9ff0..b179987f98 100644
--- a/drivers/vdpa/ifc/meson.build
+++ b/drivers/vdpa/ifc/meson.build
@@ -3,7 +3,6 @@ 
 
 build = dpdk_conf.has('RTE_LIBRTE_VHOST')
 reason = 'missing dependency, DPDK vhost library'
-allow_experimental_apis = true
 sources = files('ifcvf_vdpa.c', 'base/ifcvf.c')
 includes += include_directories('base')
 deps += 'vhost'
diff --git a/drivers/vdpa/mlx5/Makefile b/drivers/vdpa/mlx5/Makefile
index 71532174e2..ef34c0b880 100644
--- a/drivers/vdpa/mlx5/Makefile
+++ b/drivers/vdpa/mlx5/Makefile
@@ -35,8 +35,6 @@  LDLIBS += -lrte_eal -lrte_vhost -lrte_kvargs -lrte_pci -lrte_bus_pci -lrte_sched
 CFLAGS += -Wno-error=cast-qual
 
 EXPORT_MAP := rte_pmd_mlx5_vdpa_version.map
-# memseg walk is not part of stable API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # DEBUG which is usually provided on the command-line may enable
 # CONFIG_RTE_LIBRTE_MLX5_DEBUG.
diff --git a/drivers/vdpa/mlx5/meson.build b/drivers/vdpa/mlx5/meson.build
index 9c152e5469..2963aad711 100644
--- a/drivers/vdpa/mlx5/meson.build
+++ b/drivers/vdpa/mlx5/meson.build
@@ -8,7 +8,6 @@  if not is_linux
 endif
 
 fmt_name = 'mlx5_vdpa'
-allow_experimental_apis = true
 deps += ['hash', 'common_mlx5', 'vhost', 'pci', 'bus_pci', 'eal', 'sched']
 sources = files(
 	'mlx5_vdpa.c',
diff --git a/lib/librte_bbdev/Makefile b/lib/librte_bbdev/Makefile
index cdabf64f47..9d7576b358 100644
--- a/lib/librte_bbdev/Makefile
+++ b/lib/librte_bbdev/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_bbdev.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf
diff --git a/lib/librte_bbdev/meson.build b/lib/librte_bbdev/meson.build
index f6ca0ad7a2..1267782203 100644
--- a/lib/librte_bbdev/meson.build
+++ b/lib/librte_bbdev/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_bbdev.c')
 headers = files('rte_bbdev.h',
 		'rte_bbdev_pmd.h',
diff --git a/lib/librte_bpf/Makefile b/lib/librte_bpf/Makefile
index 3a20f95e74..3be6750432 100644
--- a/lib/librte_bpf/Makefile
+++ b/lib/librte_bpf/Makefile
@@ -8,7 +8,6 @@  LIB = librte_bpf.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_net -lrte_eal
 LDLIBS += -lrte_mempool -lrte_ring
 LDLIBS += -lrte_mbuf -lrte_ethdev
diff --git a/lib/librte_bpf/meson.build b/lib/librte_bpf/meson.build
index 52cfaf9ac2..6070898cb6 100644
--- a/lib/librte_bpf/meson.build
+++ b/lib/librte_bpf/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('bpf.c',
 		'bpf_exec.c',
 		'bpf_load.c',
diff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile
index 5bcaecc338..619d9a2426 100644
--- a/lib/librte_cmdline/Makefile
+++ b/lib/librte_cmdline/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_cmdline.a
 
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 EXPORT_MAP := rte_cmdline_version.map
 
diff --git a/lib/librte_cmdline/meson.build b/lib/librte_cmdline/meson.build
index a7dd319664..7fc54ff1ab 100644
--- a/lib/librte_cmdline/meson.build
+++ b/lib/librte_cmdline/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('cmdline.c',
 	'cmdline_cirbuf.c',
 	'cmdline_parse.c',
diff --git a/lib/librte_compressdev/Makefile b/lib/librte_compressdev/Makefile
index 112cdc5b28..53679d69b8 100644
--- a/lib/librte_compressdev/Makefile
+++ b/lib/librte_compressdev/Makefile
@@ -9,7 +9,6 @@  LIB = librte_compressdev.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mempool -lrte_kvargs
 
 # library source files
diff --git a/lib/librte_compressdev/meson.build b/lib/librte_compressdev/meson.build
index 5416571c9d..7d95cd4f30 100644
--- a/lib/librte_compressdev/meson.build
+++ b/lib/librte_compressdev/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_compressdev.c',
 	'rte_compressdev_pmd.c',
 	'rte_comp.c')
diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile
index 7fac49afa3..2ba0dbeecc 100644
--- a/lib/librte_cryptodev/Makefile
+++ b/lib/librte_cryptodev/Makefile
@@ -9,7 +9,6 @@  LIB = librte_cryptodev.a
 # build flags
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mempool -lrte_ring -lrte_mbuf
 LDLIBS += -lrte_kvargs
 
diff --git a/lib/librte_cryptodev/meson.build b/lib/librte_cryptodev/meson.build
index 49bae03a88..42825a8107 100644
--- a/lib/librte_cryptodev/meson.build
+++ b/lib/librte_cryptodev/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017-2019 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c')
 headers = files('rte_cryptodev.h',
 	'rte_cryptodev_pmd.h',
diff --git a/lib/librte_eal/freebsd/Makefile b/lib/librte_eal/freebsd/Makefile
index e5d4d8ff26..2d53ce9eef 100644
--- a/lib/librte_eal/freebsd/Makefile
+++ b/lib/librte_eal/freebsd/Makefile
@@ -9,7 +9,6 @@  ARCH_DIR ?= $(RTE_ARCH)
 VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
 VPATH += $(RTE_SDK)/lib/librte_eal/common
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/include
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
diff --git a/lib/librte_eal/linux/Makefile b/lib/librte_eal/linux/Makefile
index e5f44959c6..fc2316667a 100644
--- a/lib/librte_eal/linux/Makefile
+++ b/lib/librte_eal/linux/Makefile
@@ -9,7 +9,6 @@  ARCH_DIR ?= $(RTE_ARCH)
 VPATH += $(RTE_SDK)/lib/librte_eal/$(ARCH_DIR)
 VPATH += $(RTE_SDK)/lib/librte_eal/common
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -I$(SRCDIR)/include
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common
 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/include
diff --git a/lib/librte_eal/meson.build b/lib/librte_eal/meson.build
index 9d219a0e6e..0267c3b9d8 100644
--- a/lib/librte_eal/meson.build
+++ b/lib/librte_eal/meson.build
@@ -11,7 +11,6 @@  subdir(exec_env)
 
 subdir(arch_subdir)
 
-allow_experimental_apis = true
 deps += 'kvargs'
 if dpdk_conf.has('RTE_USE_LIBBSD')
 	ext_deps += libbsd
diff --git a/lib/librte_ethdev/Makefile b/lib/librte_ethdev/Makefile
index b627e4e23b..943fb8c877 100644
--- a/lib/librte_ethdev/Makefile
+++ b/lib/librte_ethdev/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_ethdev.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_net -lrte_eal -lrte_mempool -lrte_ring
diff --git a/lib/librte_ethdev/meson.build b/lib/librte_ethdev/meson.build
index 3537f22f59..ab341d9c04 100644
--- a/lib/librte_ethdev/meson.build
+++ b/lib/librte_ethdev/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2017 Intel Corporation
 
 name = 'ethdev'
-allow_experimental_apis = true
 sources = files('ethdev_private.c',
 	'ethdev_profile.c',
 	'rte_class_eth.c',
diff --git a/lib/librte_eventdev/Makefile b/lib/librte_eventdev/Makefile
index 1052ccdbb5..c85c0d3cfb 100644
--- a/lib/librte_eventdev/Makefile
+++ b/lib/librte_eventdev/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_eventdev.a
 
 # build flags
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 ifeq ($(CONFIG_RTE_EXEC_ENV_LINUX),y)
diff --git a/lib/librte_eventdev/meson.build b/lib/librte_eventdev/meson.build
index 02ac61ad2c..16d8240e94 100644
--- a/lib/librte_eventdev/meson.build
+++ b/lib/librte_eventdev/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
-
 if is_linux
 	cflags += '-DLINUX'
 else
diff --git a/lib/librte_fib/Makefile b/lib/librte_fib/Makefile
index 7773427d19..1dd2a495b1 100644
--- a/lib/librte_fib/Makefile
+++ b/lib/librte_fib/Makefile
@@ -9,7 +9,6 @@  LIB = librte_fib.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_rib
 
 EXPORT_MAP := rte_fib_version.map
diff --git a/lib/librte_fib/meson.build b/lib/librte_fib/meson.build
index e2c6f44a76..771828fbed 100644
--- a/lib/librte_fib/meson.build
+++ b/lib/librte_fib/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
 # Copyright(c) 2019 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_fib.c', 'rte_fib6.c', 'dir24_8.c', 'trie.c')
 headers = files('rte_fib.h', 'rte_fib6.h')
 deps += ['rib']
diff --git a/lib/librte_flow_classify/Makefile b/lib/librte_flow_classify/Makefile
index 34298af1a4..ca3cae82dd 100644
--- a/lib/librte_flow_classify/Makefile
+++ b/lib/librte_flow_classify/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_flow_classify.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 
diff --git a/lib/librte_flow_classify/meson.build b/lib/librte_flow_classify/meson.build
index d7e487475f..a7a5b3d577 100644
--- a/lib/librte_flow_classify/meson.build
+++ b/lib/librte_flow_classify/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_flow_classify.c', 'rte_flow_classify_parse.c')
 headers = files('rte_flow_classify.h')
 deps += ['net', 'table']
diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
index 9b36097f47..ec9f864992 100644
--- a/lib/librte_hash/Makefile
+++ b/lib/librte_hash/Makefile
@@ -6,7 +6,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_hash.a
 
-CFLAGS += -O3 -DALLOW_EXPERIMENTAL_API
+CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
 LDLIBS += -lrte_eal -lrte_ring
 
diff --git a/lib/librte_hash/meson.build b/lib/librte_hash/meson.build
index bce11ad9e0..6ab46ae9d7 100644
--- a/lib/librte_hash/meson.build
+++ b/lib/librte_hash/meson.build
@@ -10,6 +10,3 @@  headers = files('rte_crc_arm64.h',
 
 sources = files('rte_cuckoo_hash.c', 'rte_fbk_hash.c')
 deps += ['ring']
-
-# rte ring reset is not yet part of stable API
-allow_experimental_apis = true
diff --git a/lib/librte_ipsec/Makefile b/lib/librte_ipsec/Makefile
index f74e8a9045..e4c69646b0 100644
--- a/lib/librte_ipsec/Makefile
+++ b/lib/librte_ipsec/Makefile
@@ -8,7 +8,6 @@  LIB = librte_ipsec.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_net
 LDLIBS += -lrte_cryptodev -lrte_security -lrte_hash
 
diff --git a/lib/librte_ipsec/meson.build b/lib/librte_ipsec/meson.build
index 70358526b0..fc69970ec5 100644
--- a/lib/librte_ipsec/meson.build
+++ b/lib/librte_ipsec/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Intel Corporation
 
-allow_experimental_apis = true
-
 sources = files('esp_inb.c', 'esp_outb.c', 'sa.c', 'ses.c', 'ipsec_sad.c')
 
 headers = files('rte_ipsec.h', 'rte_ipsec_group.h', 'rte_ipsec_sa.h', 'rte_ipsec_sad.h')
diff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile
index 9f6e6387f9..41ea5496e3 100644
--- a/lib/librte_mbuf/Makefile
+++ b/lib/librte_mbuf/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_mbuf.a
 
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_mempool
 
diff --git a/lib/librte_mbuf/meson.build b/lib/librte_mbuf/meson.build
index d9b53b6ae3..e95c770e5a 100644
--- a/lib/librte_mbuf/meson.build
+++ b/lib/librte_mbuf/meson.build
@@ -7,5 +7,3 @@  headers = files('rte_mbuf.h', 'rte_mbuf_core.h',
 		'rte_mbuf_ptype.h', 'rte_mbuf_pool_ops.h',
 		'rte_mbuf_dyn.h')
 deps += ['mempool']
-
-allow_experimental_apis = true
diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile
index a5649050b1..84aae66043 100644
--- a/lib/librte_mempool/Makefile
+++ b/lib/librte_mempool/Makefile
@@ -7,14 +7,10 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_mempool.a
 
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_ring
 
 EXPORT_MAP := rte_mempool_version.map
 
-# memseg walk is not yet part of stable API
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 # all source are stored in SRCS-y
 SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) +=  rte_mempool.c
 SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) +=  rte_mempool_ops.c
diff --git a/lib/librte_mempool/meson.build b/lib/librte_mempool/meson.build
index f8710b61bc..45e0cb7ea3 100644
--- a/lib/librte_mempool/meson.build
+++ b/lib/librte_mempool/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
-
 extra_flags = []
 
 foreach flag: extra_flags
@@ -15,6 +13,3 @@  sources = files('rte_mempool.c', 'rte_mempool_ops.c',
 		'rte_mempool_ops_default.c')
 headers = files('rte_mempool.h')
 deps += ['ring']
-
-# memseg walk is not yet part of stable API
-allow_experimental_apis = true
diff --git a/lib/librte_net/Makefile b/lib/librte_net/Makefile
index aabdf4879d..aa1d6fed5a 100644
--- a/lib/librte_net/Makefile
+++ b/lib/librte_net/Makefile
@@ -5,7 +5,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 
 LIB = librte_net.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 LDLIBS += -lrte_mbuf -lrte_eal -lrte_mempool
 
diff --git a/lib/librte_net/meson.build b/lib/librte_net/meson.build
index 208eee2dc2..f799349b3e 100644
--- a/lib/librte_net/meson.build
+++ b/lib/librte_net/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
 headers = files('rte_ip.h',
 	'rte_tcp.h',
 	'rte_udp.h',
diff --git a/lib/librte_pdump/Makefile b/lib/librte_pdump/Makefile
index fde8ac92b8..ece8aaacc1 100644
--- a/lib/librte_pdump/Makefile
+++ b/lib/librte_pdump/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_pdump.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev
 
diff --git a/lib/librte_pdump/meson.build b/lib/librte_pdump/meson.build
index 1173cdea34..3a95eabde6 100644
--- a/lib/librte_pdump/meson.build
+++ b/lib/librte_pdump/meson.build
@@ -3,5 +3,4 @@ 
 
 sources = files('rte_pdump.c')
 headers = files('rte_pdump.h')
-allow_experimental_apis = true
 deps += ['ethdev']
diff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile
index d2abb5f3ff..cfbbd18282 100644
--- a/lib/librte_pipeline/Makefile
+++ b/lib/librte_pipeline/Makefile
@@ -8,7 +8,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 #
 LIB = librte_pipeline.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_table
diff --git a/lib/librte_pipeline/meson.build b/lib/librte_pipeline/meson.build
index be8a3536af..d70b1a023b 100644
--- a/lib/librte_pipeline/meson.build
+++ b/lib/librte_pipeline/meson.build
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_pipeline.c', 'rte_port_in_action.c', 'rte_table_action.c')
 headers = files('rte_pipeline.h', 'rte_port_in_action.h', 'rte_table_action.h')
 deps += ['port', 'table', 'meter', 'sched', 'cryptodev']
diff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile
index 9a6db07e5f..087d643ee5 100644
--- a/lib/librte_power/Makefile
+++ b/lib/librte_power/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_power.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
 LDLIBS += -lrte_eal -lrte_timer
 
diff --git a/lib/librte_rcu/Makefile b/lib/librte_rcu/Makefile
index c4bb28d779..728669975a 100644
--- a/lib/librte_rcu/Makefile
+++ b/lib/librte_rcu/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_rcu.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 LDLIBS += -lrte_eal
 
diff --git a/lib/librte_rcu/meson.build b/lib/librte_rcu/meson.build
index 62920ba02c..5929bd3a70 100644
--- a/lib/librte_rcu/meson.build
+++ b/lib/librte_rcu/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Arm Limited
 
-allow_experimental_apis = true
-
 sources = files('rte_rcu_qsbr.c')
 headers = files('rte_rcu_qsbr.h')
 
diff --git a/lib/librte_rib/Makefile b/lib/librte_rib/Makefile
index 4a1df4e06a..be80ce5d3f 100644
--- a/lib/librte_rib/Makefile
+++ b/lib/librte_rib/Makefile
@@ -9,7 +9,6 @@  LIB = librte_rib.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal -lrte_mempool
 
 EXPORT_MAP := rte_rib_version.map
diff --git a/lib/librte_rib/meson.build b/lib/librte_rib/meson.build
index 46a1c0c906..7bacbb4535 100644
--- a/lib/librte_rib/meson.build
+++ b/lib/librte_rib/meson.build
@@ -2,7 +2,6 @@ 
 # Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
 # Copyright(c) 2019 Intel Corporation
 
-allow_experimental_apis = true
 sources = files('rte_rib.c', 'rte_rib6.c')
 headers = files('rte_rib.h', 'rte_rib6.h')
 deps += ['mempool']
diff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile
index 917c560ad0..28368e6d10 100644
--- a/lib/librte_ring/Makefile
+++ b/lib/librte_ring/Makefile
@@ -6,7 +6,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_ring.a
 
-CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -DALLOW_EXPERIMENTAL_API
+CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 LDLIBS += -lrte_eal
 
 EXPORT_MAP := rte_ring_version.map
diff --git a/lib/librte_ring/meson.build b/lib/librte_ring/meson.build
index f2f3ccc88b..05402e4f0c 100644
--- a/lib/librte_ring/meson.build
+++ b/lib/librte_ring/meson.build
@@ -6,6 +6,3 @@  headers = files('rte_ring.h',
 		'rte_ring_elem.h',
 		'rte_ring_c11_mem.h',
 		'rte_ring_generic.h')
-
-# rte_ring_create_elem and rte_ring_get_memsize_elem are experimental
-allow_experimental_apis = true
diff --git a/lib/librte_stack/Makefile b/lib/librte_stack/Makefile
index 94ee48d4b3..020ef102b5 100644
--- a/lib/librte_stack/Makefile
+++ b/lib/librte_stack/Makefile
@@ -7,7 +7,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_stack.a
 
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lrte_eal
 
 EXPORT_MAP := rte_stack_version.map
diff --git a/lib/librte_stack/meson.build b/lib/librte_stack/meson.build
index f420a5c223..8f82a40ec2 100644
--- a/lib/librte_stack/meson.build
+++ b/lib/librte_stack/meson.build
@@ -1,8 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2019 Intel Corporation
 
-allow_experimental_apis = true
-
 sources = files('rte_stack.c', 'rte_stack_std.c', 'rte_stack_lf.c')
 headers = files('rte_stack.h',
 		'rte_stack_std.h',
diff --git a/lib/librte_telemetry/Makefile b/lib/librte_telemetry/Makefile
index f364548556..12009b9a7c 100644
--- a/lib/librte_telemetry/Makefile
+++ b/lib/librte_telemetry/Makefile
@@ -8,7 +8,6 @@  LIB = librte_telemetry.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 LDLIBS += -lrte_eal -lrte_ethdev
 LDLIBS += -lrte_metrics
diff --git a/lib/librte_telemetry/meson.build b/lib/librte_telemetry/meson.build
index 26a331140b..1bdf128c1a 100644
--- a/lib/librte_telemetry/meson.build
+++ b/lib/librte_telemetry/meson.build
@@ -4,7 +4,6 @@ 
 sources = files('rte_telemetry.c', 'rte_telemetry_parser.c', 'rte_telemetry_parser_test.c')
 headers = files('rte_telemetry.h', 'rte_telemetry_internal.h', 'rte_telemetry_parser.h')
 deps += ['metrics', 'ethdev']
-cflags += '-DALLOW_EXPERIMENTAL_API'
 
 jansson = dependency('jansson', required: false)
 if jansson.found()
diff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile
index 1c290b4c2d..7e95d120c0 100644
--- a/lib/librte_timer/Makefile
+++ b/lib/librte_timer/Makefile
@@ -6,7 +6,6 @@  include $(RTE_SDK)/mk/rte.vars.mk
 # library name
 LIB = librte_timer.a
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 LDLIBS += -lrte_eal
 
diff --git a/lib/librte_timer/meson.build b/lib/librte_timer/meson.build
index d3b828ce9d..89b17e0397 100644
--- a/lib/librte_timer/meson.build
+++ b/lib/librte_timer/meson.build
@@ -3,4 +3,3 @@ 
 
 sources = files('rte_timer.c')
 headers = files('rte_timer.h')
-allow_experimental_apis = true
diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
index c5cf6632d7..e592795f22 100644
--- a/lib/librte_vhost/Makefile
+++ b/lib/librte_vhost/Makefile
@@ -8,7 +8,6 @@  LIB = librte_vhost.a
 
 EXPORT_MAP := rte_vhost_version.map
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
 CFLAGS += -I vhost_user
 CFLAGS += -fno-strict-aliasing
diff --git a/lib/librte_vhost/meson.build b/lib/librte_vhost/meson.build
index ef7a5bced4..f80632848c 100644
--- a/lib/librte_vhost/meson.build
+++ b/lib/librte_vhost/meson.build
@@ -17,7 +17,6 @@  elif (toolchain == 'icc' and cc.version().version_compare('>=16.0.0'))
 endif
 dpdk_conf.set('RTE_LIBRTE_VHOST_POSTCOPY',
 	      cc.has_header('linux/userfaultfd.h'))
-allow_experimental_apis = true
 cflags += '-fno-strict-aliasing'
 sources = files('fd_man.c', 'iotlb.c', 'socket.c', 'vdpa.c',
 		'vhost.c', 'vhost_user.c',
diff --git a/lib/meson.build b/lib/meson.build
index 9c3cc55d5e..63c17ee75e 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -36,7 +36,7 @@  if is_windows
 	libraries = ['kvargs','eal'] # only supported libraries for windows
 endif
 
-default_cflags = machine_args
+default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
 if cc.has_argument('-Wno-format-truncation')
 	default_cflags += '-Wno-format-truncation'
 endif
@@ -47,7 +47,6 @@  foreach l:libraries
 	build = true
 	reason = '<unknown reason>' # set if build == false to explain why
 	name = l
-	allow_experimental_apis = false
 	use_function_versioning = false
 	sources = []
 	headers = []
@@ -98,9 +97,6 @@  foreach l:libraries
 			static_dep = shared_dep
 		else
 
-			if allow_experimental_apis
-				cflags += '-DALLOW_EXPERIMENTAL_API'
-			endif
 			if use_function_versioning
 				cflags += '-DRTE_USE_FUNCTION_VERSIONING'
 			endif
diff --git a/mk/target/generic/rte.vars.mk b/mk/target/generic/rte.vars.mk
index 374722173d..ec26728970 100644
--- a/mk/target/generic/rte.vars.mk
+++ b/mk/target/generic/rte.vars.mk
@@ -105,6 +105,7 @@  CFLAGS += -DRTE_USE_FUNCTION_VERSIONING
 ifeq ($(BUILDING_RTE_SDK),1)
 # building sdk
 CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 else
 # if we are building an external application, include SDK's lib and
 # includes too