diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
index 6a01b39..d150353 100755
--- a/devtools/checkpatches.sh
+++ b/devtools/checkpatches.sh
@@ -79,6 +79,31 @@ check_forbidden_additions() { # <patch>
 	return $res
 }
 
+check_experimental_tags() { # <patch>
+	res=0
+
+	cat "$1" |awk '
+	BEGIN {
+		current_file = "";
+		ret = 0;
+	}
+	/^+++ b\// {
+		current_file = $2;
+	}
+	/^+.*__rte_experimental/ {
+		if (current_file ~ ".c$" ) {
+			print "Please only put __rte_experimental tags in " \
+				"headers ("current_file")";
+			ret = 1;
+		}
+	}
+	END {
+		exit ret;
+	}' || res=1
+
+	return $res
+}
+
 number=0
 range='origin/master..'
 quiet=false
@@ -151,6 +176,14 @@ check () { # <patch> <commit> <title>
 		ret=1
 	fi
 
+	! $verbose || printf '\nChecking __rte_experimental tags:\n'
+	report=$(check_experimental_tags "$tmpinput")
+	if [ $? -ne 0 ] ; then
+		$headline_printed || print_headline "$3"
+		printf '%s\n' "$report"
+		ret=1
+	fi
+
 	clean_tmp_files
 	[ $ret -eq 0 ] && return 0
 
diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst
index 5d93b18..3ab2c43 100644
--- a/doc/guides/contributing/versioning.rst
+++ b/doc/guides/contributing/versioning.rst
@@ -149,9 +149,9 @@ Note that marking an API as experimental is a multi step process.
 To mark an API as experimental, the symbols which are desired to be exported
 must be placed in an EXPERIMENTAL version block in the corresponding libraries'
 version map script.
-Secondly, the corresponding definitions of those exported functions, and
-their forward declarations (in the development header files), must be marked
-with the ``__rte_experimental`` tag (see ``rte_compat.h``).
+Secondly, the corresponding prototypes of those exported functions (in the
+development header files), must be marked with the ``__rte_experimental`` tag
+(see ``rte_compat.h``).
 The DPDK build makefiles perform a check to ensure that the map file and the
 C code reflect the same list of symbols.
 This check can be circumvented by defining ``ALLOW_EXPERIMENTAL_API``
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index d668f3e..03f6959 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -102,7 +102,7 @@ static int dpaa2_dev_link_update(struct rte_eth_dev *dev,
 
 int dpaa2_logtype_pmd;
 
-__rte_experimental void
+void
 rte_pmd_dpaa2_set_timestamp(enum pmd_dpaa2_ts enable)
 {
 	dpaa2_enable_ts = enable;
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index 077afab..9514f2c 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -882,7 +882,7 @@
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_pmd_ixgbe_upd_fctrl_sbp(uint16_t port, int enable)
 {
 	struct ixgbe_hw *hw;
@@ -1096,7 +1096,7 @@ STATIC void rte_pmd_ixgbe_release_swfw(struct ixgbe_hw *hw, u32 mask)
 	ixgbe_release_swfw_semaphore(hw, mask);
 }
 
-int __rte_experimental
+int
 rte_pmd_ixgbe_mdio_lock(uint16_t port)
 {
 	struct ixgbe_hw *hw;
@@ -1123,7 +1123,7 @@ STATIC void rte_pmd_ixgbe_release_swfw(struct ixgbe_hw *hw, u32 mask)
 	return IXGBE_SUCCESS;
 }
 
-int __rte_experimental
+int
 rte_pmd_ixgbe_mdio_unlock(uint16_t port)
 {
 	struct rte_eth_dev *dev;
@@ -1150,7 +1150,7 @@ STATIC void rte_pmd_ixgbe_release_swfw(struct ixgbe_hw *hw, u32 mask)
 	return IXGBE_SUCCESS;
 }
 
-int __rte_experimental
+int
 rte_pmd_ixgbe_mdio_unlocked_read(uint16_t port, uint32_t reg_addr,
 				 uint32_t dev_type, uint16_t *phy_data)
 {
@@ -1197,7 +1197,7 @@ STATIC void rte_pmd_ixgbe_release_swfw(struct ixgbe_hw *hw, u32 mask)
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_pmd_ixgbe_mdio_unlocked_write(uint16_t port, uint32_t reg_addr,
 				  uint32_t dev_type, uint16_t phy_data)
 {
diff --git a/lib/librte_bbdev/rte_bbdev.c b/lib/librte_bbdev/rte_bbdev.c
index a3ab5d9..0c35480 100644
--- a/lib/librte_bbdev/rte_bbdev.c
+++ b/lib/librte_bbdev/rte_bbdev.c
@@ -173,7 +173,7 @@ struct rte_bbdev_callback {
 	return RTE_BBDEV_MAX_DEVS;
 }
 
-struct rte_bbdev * __rte_experimental
+struct rte_bbdev *
 rte_bbdev_allocate(const char *name)
 {
 	int ret;
@@ -232,7 +232,7 @@ struct rte_bbdev * __rte_experimental
 	return bbdev;
 }
 
-int __rte_experimental
+int
 rte_bbdev_release(struct rte_bbdev *bbdev)
 {
 	uint16_t dev_id;
@@ -266,7 +266,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-struct rte_bbdev * __rte_experimental
+struct rte_bbdev *
 rte_bbdev_get_named_dev(const char *name)
 {
 	unsigned int i;
@@ -286,13 +286,13 @@ struct rte_bbdev * __rte_experimental
 	return NULL;
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_bbdev_count(void)
 {
 	return num_devs;
 }
 
-bool __rte_experimental
+bool
 rte_bbdev_is_valid(uint16_t dev_id)
 {
 	if ((dev_id < RTE_BBDEV_MAX_DEVS) &&
@@ -301,7 +301,7 @@ struct rte_bbdev * __rte_experimental
 	return false;
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_bbdev_find_next(uint16_t dev_id)
 {
 	dev_id++;
@@ -311,7 +311,7 @@ struct rte_bbdev * __rte_experimental
 	return dev_id;
 }
 
-int __rte_experimental
+int
 rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id)
 {
 	unsigned int i;
@@ -401,7 +401,7 @@ struct rte_bbdev * __rte_experimental
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_bbdev_intr_enable(uint16_t dev_id)
 {
 	int ret;
@@ -433,7 +433,7 @@ struct rte_bbdev * __rte_experimental
 	return -ENOTSUP;
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
 		const struct rte_bbdev_queue_conf *conf)
 {
@@ -551,7 +551,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_start(uint16_t dev_id)
 {
 	int i;
@@ -583,7 +583,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_stop(uint16_t dev_id)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -604,7 +604,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_close(uint16_t dev_id)
 {
 	int ret;
@@ -649,7 +649,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -679,7 +679,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -739,7 +739,7 @@ struct rte_bbdev * __rte_experimental
 	rte_bbdev_log_debug("Reset stats on %u", dev->data->dev_id);
 }
 
-int __rte_experimental
+int
 rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -762,7 +762,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_stats_reset(uint16_t dev_id)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -779,7 +779,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -807,7 +807,7 @@ struct rte_bbdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
 		struct rte_bbdev_queue_info *queue_info)
 {
@@ -872,7 +872,7 @@ struct rte_bbdev * __rte_experimental
 	}
 }
 
-struct rte_mempool * __rte_experimental
+struct rte_mempool *
 rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type,
 		unsigned int num_elements, unsigned int cache_size,
 		int socket_id)
@@ -919,7 +919,7 @@ struct rte_mempool * __rte_experimental
 	return mp;
 }
 
-int __rte_experimental
+int
 rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,
 		rte_bbdev_cb_fn cb_fn, void *cb_arg)
 {
@@ -964,7 +964,7 @@ struct rte_mempool * __rte_experimental
 	return (user_cb == NULL) ? -ENOMEM : 0;
 }
 
-int __rte_experimental
+int
 rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,
 		rte_bbdev_cb_fn cb_fn, void *cb_arg)
 {
@@ -1009,7 +1009,7 @@ struct rte_mempool * __rte_experimental
 	return ret;
 }
 
-void __rte_experimental
+void
 rte_bbdev_pmd_callback_process(struct rte_bbdev *dev,
 	enum rte_bbdev_event_type event, void *ret_param)
 {
@@ -1051,7 +1051,7 @@ struct rte_mempool * __rte_experimental
 	rte_spinlock_unlock(&rte_bbdev_cb_lock);
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -1062,7 +1062,7 @@ struct rte_mempool * __rte_experimental
 	return dev->dev_ops->queue_intr_enable(dev, queue_id);
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id)
 {
 	struct rte_bbdev *dev = get_dev(dev_id);
@@ -1073,7 +1073,7 @@ struct rte_mempool * __rte_experimental
 	return dev->dev_ops->queue_intr_disable(dev, queue_id);
 }
 
-int __rte_experimental
+int
 rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
 		void *data)
 {
@@ -1110,7 +1110,7 @@ struct rte_mempool * __rte_experimental
 }
 
 
-const char * __rte_experimental
+const char *
 rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type)
 {
 	static const char * const op_types[] = {
diff --git a/lib/librte_bpf/bpf.c b/lib/librte_bpf/bpf.c
index f590c8c..cc963d5 100644
--- a/lib/librte_bpf/bpf.c
+++ b/lib/librte_bpf/bpf.c
@@ -16,7 +16,7 @@
 
 int rte_bpf_logtype;
 
-__rte_experimental void
+void
 rte_bpf_destroy(struct rte_bpf *bpf)
 {
 	if (bpf != NULL) {
@@ -26,7 +26,7 @@
 	}
 }
 
-__rte_experimental int
+int
 rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit)
 {
 	if (bpf == NULL || jit == NULL)
diff --git a/lib/librte_bpf/bpf_exec.c b/lib/librte_bpf/bpf_exec.c
index 6a79139..1bb2266 100644
--- a/lib/librte_bpf/bpf_exec.c
+++ b/lib/librte_bpf/bpf_exec.c
@@ -424,7 +424,7 @@
 	return 0;
 }
 
-__rte_experimental uint32_t
+uint32_t
 rte_bpf_exec_burst(const struct rte_bpf *bpf, void *ctx[], uint64_t rc[],
 	uint32_t num)
 {
@@ -443,7 +443,7 @@
 	return i;
 }
 
-__rte_experimental uint64_t
+uint64_t
 rte_bpf_exec(const struct rte_bpf *bpf, void *ctx)
 {
 	uint64_t rc;
diff --git a/lib/librte_bpf/bpf_load.c b/lib/librte_bpf/bpf_load.c
index 194103e..2a3b901 100644
--- a/lib/librte_bpf/bpf_load.c
+++ b/lib/librte_bpf/bpf_load.c
@@ -86,7 +86,7 @@
 	return 0;
 }
 
-__rte_experimental struct rte_bpf *
+struct rte_bpf *
 rte_bpf_load(const struct rte_bpf_prm *prm)
 {
 	struct rte_bpf *bpf;
@@ -132,7 +132,7 @@
 }
 
 #ifndef RTE_LIBRTE_BPF_ELF
-__rte_experimental struct rte_bpf *
+struct rte_bpf *
 rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
 	const char *sname)
 {
diff --git a/lib/librte_bpf/bpf_load_elf.c b/lib/librte_bpf/bpf_load_elf.c
index 926317b..2b11ade 100644
--- a/lib/librte_bpf/bpf_load_elf.c
+++ b/lib/librte_bpf/bpf_load_elf.c
@@ -294,7 +294,7 @@
 	return bpf;
 }
 
-__rte_experimental struct rte_bpf *
+struct rte_bpf *
 rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,
 	const char *sname)
 {
diff --git a/lib/librte_bpf/bpf_pkt.c b/lib/librte_bpf/bpf_pkt.c
index ab9daa5..6e8248f 100644
--- a/lib/librte_bpf/bpf_pkt.c
+++ b/lib/librte_bpf/bpf_pkt.c
@@ -480,7 +480,7 @@ struct bpf_eth_cbh {
 }
 
 
-__rte_experimental void
+void
 rte_bpf_eth_rx_unload(uint16_t port, uint16_t queue)
 {
 	struct bpf_eth_cbh *cbh;
@@ -491,7 +491,7 @@ struct bpf_eth_cbh {
 	rte_spinlock_unlock(&cbh->lock);
 }
 
-__rte_experimental void
+void
 rte_bpf_eth_tx_unload(uint16_t port, uint16_t queue)
 {
 	struct bpf_eth_cbh *cbh;
@@ -572,7 +572,7 @@ struct bpf_eth_cbh {
 	return rc;
 }
 
-__rte_experimental int
+int
 rte_bpf_eth_rx_elf_load(uint16_t port, uint16_t queue,
 	const struct rte_bpf_prm *prm, const char *fname, const char *sname,
 	uint32_t flags)
@@ -588,7 +588,7 @@ struct bpf_eth_cbh {
 	return rc;
 }
 
-__rte_experimental int
+int
 rte_bpf_eth_tx_elf_load(uint16_t port, uint16_t queue,
 	const struct rte_bpf_prm *prm, const char *fname, const char *sname,
 	uint32_t flags)
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index 06e3d44..3b0e46f 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -6,7 +6,7 @@
 #include "rte_compressdev.h"
 #include "rte_compressdev_internal.h"
 
-const char * __rte_experimental
+const char *
 rte_comp_get_feature_name(uint64_t flag)
 {
 	switch (flag) {
@@ -112,7 +112,7 @@ struct rte_comp_op_pool_private {
 	op->mempool = mempool;
 }
 
-struct rte_mempool * __rte_experimental
+struct rte_mempool *
 rte_comp_op_pool_create(const char *name,
 		unsigned int nb_elts, unsigned int cache_size,
 		uint16_t user_size, int socket_id)
@@ -167,7 +167,7 @@ struct rte_mempool * __rte_experimental
 	return mp;
 }
 
-struct rte_comp_op * __rte_experimental
+struct rte_comp_op *
 rte_comp_op_alloc(struct rte_mempool *mempool)
 {
 	struct rte_comp_op *op = NULL;
@@ -182,7 +182,7 @@ struct rte_comp_op * __rte_experimental
 	return op;
 }
 
-int __rte_experimental
+int
 rte_comp_op_bulk_alloc(struct rte_mempool *mempool,
 		struct rte_comp_op **ops, uint16_t nb_ops)
 {
@@ -207,14 +207,14 @@ struct rte_comp_op * __rte_experimental
  * @param op
  *   Compress operation
  */
-void __rte_experimental
+void
 rte_comp_op_free(struct rte_comp_op *op)
 {
 	if (op != NULL && op->mempool != NULL)
 		rte_mempool_put(op->mempool, op);
 }
 
-void __rte_experimental
+void
 rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops)
 {
 	uint16_t i;
diff --git a/lib/librte_compressdev/rte_compressdev.c b/lib/librte_compressdev/rte_compressdev.c
index afba584..b3c5651 100644
--- a/lib/librte_compressdev/rte_compressdev.c
+++ b/lib/librte_compressdev/rte_compressdev.c
@@ -28,7 +28,7 @@
 		.max_devs		= RTE_COMPRESS_MAX_DEVS
 };
 
-const struct rte_compressdev_capabilities * __rte_experimental
+const struct rte_compressdev_capabilities *
 rte_compressdev_capability_get(uint8_t dev_id,
 			enum rte_comp_algorithm algo)
 {
@@ -51,7 +51,7 @@
 	return NULL;
 }
 
-const char * __rte_experimental
+const char *
 rte_compressdev_get_feature_name(uint64_t flag)
 {
 	switch (flag) {
@@ -80,7 +80,7 @@
 	return &compressdev_globals.devs[dev_id];
 }
 
-struct rte_compressdev * __rte_experimental
+struct rte_compressdev *
 rte_compressdev_pmd_get_named_dev(const char *name)
 {
 	struct rte_compressdev *dev;
@@ -116,7 +116,7 @@ struct rte_compressdev * __rte_experimental
 }
 
 
-int __rte_experimental
+int
 rte_compressdev_get_dev_id(const char *name)
 {
 	unsigned int i;
@@ -134,13 +134,13 @@ struct rte_compressdev * __rte_experimental
 	return -1;
 }
 
-uint8_t __rte_experimental
+uint8_t
 rte_compressdev_count(void)
 {
 	return compressdev_globals.nb_devs;
 }
 
-uint8_t __rte_experimental
+uint8_t
 rte_compressdev_devices_get(const char *driver_name, uint8_t *devices,
 	uint8_t nb_devices)
 {
@@ -165,7 +165,7 @@ struct rte_compressdev * __rte_experimental
 	return count;
 }
 
-int __rte_experimental
+int
 rte_compressdev_socket_id(uint8_t dev_id)
 {
 	struct rte_compressdev *dev;
@@ -222,7 +222,7 @@ struct rte_compressdev * __rte_experimental
 	return RTE_COMPRESS_MAX_DEVS;
 }
 
-struct rte_compressdev * __rte_experimental
+struct rte_compressdev *
 rte_compressdev_pmd_allocate(const char *name, int socket_id)
 {
 	struct rte_compressdev *compressdev;
@@ -268,7 +268,7 @@ struct rte_compressdev * __rte_experimental
 	return compressdev;
 }
 
-int __rte_experimental
+int
 rte_compressdev_pmd_release_device(struct rte_compressdev *compressdev)
 {
 	int ret;
@@ -288,7 +288,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_compressdev_queue_pair_count(uint8_t dev_id)
 {
 	struct rte_compressdev *dev;
@@ -413,7 +413,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_compressdev_configure(uint8_t dev_id, struct rte_compressdev_config *config)
 {
 	struct rte_compressdev *dev;
@@ -447,7 +447,7 @@ struct rte_compressdev * __rte_experimental
 	return (*dev->dev_ops->dev_configure)(dev, config);
 }
 
-int __rte_experimental
+int
 rte_compressdev_start(uint8_t dev_id)
 {
 	struct rte_compressdev *dev;
@@ -479,7 +479,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-void __rte_experimental
+void
 rte_compressdev_stop(uint8_t dev_id)
 {
 	struct rte_compressdev *dev;
@@ -503,7 +503,7 @@ struct rte_compressdev * __rte_experimental
 	dev->data->dev_started = 0;
 }
 
-int __rte_experimental
+int
 rte_compressdev_close(uint8_t dev_id)
 {
 	struct rte_compressdev *dev;
@@ -538,7 +538,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_compressdev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id,
 		uint32_t max_inflight_ops, int socket_id)
 {
@@ -573,7 +573,7 @@ struct rte_compressdev * __rte_experimental
 			max_inflight_ops, socket_id);
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_compressdev_dequeue_burst(uint8_t dev_id, uint16_t qp_id,
 		struct rte_comp_op **ops, uint16_t nb_ops)
 {
@@ -585,7 +585,7 @@ struct rte_compressdev * __rte_experimental
 	return nb_ops;
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_compressdev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,
 		struct rte_comp_op **ops, uint16_t nb_ops)
 {
@@ -595,7 +595,7 @@ struct rte_compressdev * __rte_experimental
 			dev->data->queue_pairs[qp_id], ops, nb_ops);
 }
 
-int __rte_experimental
+int
 rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats)
 {
 	struct rte_compressdev *dev;
@@ -618,7 +618,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-void __rte_experimental
+void
 rte_compressdev_stats_reset(uint8_t dev_id)
 {
 	struct rte_compressdev *dev;
@@ -635,7 +635,7 @@ struct rte_compressdev * __rte_experimental
 }
 
 
-void __rte_experimental
+void
 rte_compressdev_info_get(uint8_t dev_id, struct rte_compressdev_info *dev_info)
 {
 	struct rte_compressdev *dev;
@@ -655,7 +655,7 @@ struct rte_compressdev * __rte_experimental
 	dev_info->driver_name = dev->device->driver->name;
 }
 
-int __rte_experimental
+int
 rte_compressdev_private_xform_create(uint8_t dev_id,
 		const struct rte_comp_xform *xform,
 		void **priv_xform)
@@ -680,7 +680,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_compressdev_private_xform_free(uint8_t dev_id, void *priv_xform)
 {
 	struct rte_compressdev *dev;
@@ -703,7 +703,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_compressdev_stream_create(uint8_t dev_id,
 		const struct rte_comp_xform *xform,
 		void **stream)
@@ -729,7 +729,7 @@ struct rte_compressdev * __rte_experimental
 }
 
 
-int __rte_experimental
+int
 rte_compressdev_stream_free(uint8_t dev_id, void *stream)
 {
 	struct rte_compressdev *dev;
@@ -752,7 +752,7 @@ struct rte_compressdev * __rte_experimental
 	return 0;
 }
 
-const char * __rte_experimental
+const char *
 rte_compressdev_name_get(uint8_t dev_id)
 {
 	struct rte_compressdev *dev = rte_compressdev_get_dev(dev_id);
diff --git a/lib/librte_compressdev/rte_compressdev_pmd.c b/lib/librte_compressdev/rte_compressdev_pmd.c
index cc51d69..46b2556 100644
--- a/lib/librte_compressdev/rte_compressdev_pmd.c
+++ b/lib/librte_compressdev/rte_compressdev_pmd.c
@@ -48,7 +48,7 @@
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_compressdev_pmd_parse_input_args(
 		struct rte_compressdev_pmd_init_params *params,
 		const char *args)
@@ -84,7 +84,7 @@
 	return ret;
 }
 
-struct rte_compressdev * __rte_experimental
+struct rte_compressdev *
 rte_compressdev_pmd_create(const char *name,
 		struct rte_device *device,
 		size_t private_data_size,
@@ -133,7 +133,7 @@ struct rte_compressdev * __rte_experimental
 	return compressdev;
 }
 
-int __rte_experimental
+int
 rte_compressdev_pmd_destroy(struct rte_compressdev *compressdev)
 {
 	int retval;
diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c
index 00c2cf4..be9f026 100644
--- a/lib/librte_cryptodev/rte_cryptodev.c
+++ b/lib/librte_cryptodev/rte_cryptodev.c
@@ -250,7 +250,7 @@ struct rte_cryptodev_sym_session_pool_private_data {
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum,
 		const char *xform_string)
 {
@@ -338,7 +338,7 @@ struct rte_cryptodev_sym_session_pool_private_data {
 	return -1;
 }
 
-const struct rte_cryptodev_asymmetric_xform_capability * __rte_experimental
+const struct rte_cryptodev_asymmetric_xform_capability *
 rte_cryptodev_asym_capability_get(uint8_t dev_id,
 		const struct rte_cryptodev_asym_capability_idx *idx)
 {
@@ -411,7 +411,7 @@ struct rte_cryptodev_sym_session_pool_private_data {
 
 	return 0;
 }
-int __rte_experimental
+int
 rte_cryptodev_asym_xform_capability_check_optype(
 	const struct rte_cryptodev_asymmetric_xform_capability *capability,
 	enum rte_crypto_asym_op_type op_type)
@@ -422,7 +422,7 @@ struct rte_cryptodev_sym_session_pool_private_data {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_cryptodev_asym_xform_capability_check_modlen(
 	const struct rte_cryptodev_asymmetric_xform_capability *capability,
 	uint16_t modlen)
@@ -1235,7 +1235,7 @@ struct rte_cryptodev *
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_cryptodev_asym_session_init(uint8_t dev_id,
 		struct rte_cryptodev_asym_session *sess,
 		struct rte_crypto_asym_xform *xforms,
@@ -1270,7 +1270,7 @@ struct rte_cryptodev *
 	return 0;
 }
 
-struct rte_mempool * __rte_experimental
+struct rte_mempool *
 rte_cryptodev_sym_session_pool_create(const char *name, uint32_t nb_elts,
 	uint32_t elt_size, uint32_t cache_size, uint16_t user_data_size,
 	int socket_id)
@@ -1354,7 +1354,7 @@ struct rte_cryptodev_sym_session *
 	return sess;
 }
 
-struct rte_cryptodev_asym_session * __rte_experimental
+struct rte_cryptodev_asym_session *
 rte_cryptodev_asym_session_create(struct rte_mempool *mp)
 {
 	struct rte_cryptodev_asym_session *sess;
@@ -1398,7 +1398,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_cryptodev_asym_session_clear(uint8_t dev_id,
 		struct rte_cryptodev_asym_session *sess)
 {
@@ -1438,7 +1438,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_cryptodev_asym_session_free(struct rte_cryptodev_asym_session *sess)
 {
 	uint8_t i;
@@ -1478,7 +1478,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 			rte_cryptodev_sym_session_data_size(&s));
 }
 
-unsigned int __rte_experimental
+unsigned int
 rte_cryptodev_sym_get_existing_header_session_size(
 		struct rte_cryptodev_sym_session *sess)
 {
@@ -1489,7 +1489,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 				rte_cryptodev_sym_session_data_size(sess));
 }
 
-unsigned int __rte_experimental
+unsigned int
 rte_cryptodev_asym_get_header_session_size(void)
 {
 	/*
@@ -1519,7 +1519,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 	return priv_sess_size;
 }
 
-unsigned int __rte_experimental
+unsigned int
 rte_cryptodev_asym_get_private_session_size(uint8_t dev_id)
 {
 	struct rte_cryptodev *dev;
@@ -1542,7 +1542,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 
 }
 
-int __rte_experimental
+int
 rte_cryptodev_sym_session_set_user_data(
 					struct rte_cryptodev_sym_session *sess,
 					void *data,
@@ -1558,7 +1558,7 @@ struct rte_cryptodev_asym_session * __rte_experimental
 	return 0;
 }
 
-void * __rte_experimental
+void *
 rte_cryptodev_sym_session_get_user_data(
 					struct rte_cryptodev_sym_session *sess)
 {
diff --git a/lib/librte_eal/common/eal_common_class.c b/lib/librte_eal/common/eal_common_class.c
index d922266..0187076 100644
--- a/lib/librte_eal/common/eal_common_class.c
+++ b/lib/librte_eal/common/eal_common_class.c
@@ -12,7 +12,7 @@
 static struct rte_class_list rte_class_list =
 	TAILQ_HEAD_INITIALIZER(rte_class_list);
 
-__rte_experimental void
+void
 rte_class_register(struct rte_class *class)
 {
 	RTE_VERIFY(class);
@@ -22,14 +22,13 @@
 	RTE_LOG(DEBUG, EAL, "Registered [%s] device class.\n", class->name);
 }
 
-__rte_experimental void
+void
 rte_class_unregister(struct rte_class *class)
 {
 	TAILQ_REMOVE(&rte_class_list, class, next);
 	RTE_LOG(DEBUG, EAL, "Unregistered [%s] device class.\n", class->name);
 }
 
-__rte_experimental
 struct rte_class *
 rte_class_find(const struct rte_class *start, rte_class_cmp_t cmp,
 	       const void *data)
@@ -56,7 +55,6 @@ struct rte_class *
 	return strcmp(class->name, name);
 }
 
-__rte_experimental
 struct rte_class *
 rte_class_find_by_name(const char *name)
 {
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index 824b8f9..86f801d 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -422,7 +422,7 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_dev_event_callback_register(const char *device_name,
 				rte_dev_event_cb_fn cb_fn,
 				void *cb_arg)
@@ -488,7 +488,7 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_dev_event_callback_unregister(const char *device_name,
 				  rte_dev_event_cb_fn cb_fn,
 				  void *cb_arg)
@@ -533,7 +533,7 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
 	return ret;
 }
 
-void __rte_experimental
+void
 rte_dev_event_callback_process(const char *device_name,
 			       enum rte_dev_event_type event)
 {
@@ -559,7 +559,6 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
 	rte_spinlock_unlock(&dev_event_lock);
 }
 
-__rte_experimental
 int
 rte_dev_iterator_init(struct rte_dev_iterator *it,
 		      const char *dev_str)
@@ -712,7 +711,6 @@ class_next_dev_cmp(const struct rte_class *cls,
 	it->device = dev;
 	return dev == NULL;
 }
-__rte_experimental
 struct rte_device *
 rte_dev_iterator_next(struct rte_dev_iterator *it)
 {
diff --git a/lib/librte_eal/common/eal_common_fbarray.c b/lib/librte_eal/common/eal_common_fbarray.c
index eb04a1e..b7ddb66 100644
--- a/lib/librte_eal/common/eal_common_fbarray.c
+++ b/lib/librte_eal/common/eal_common_fbarray.c
@@ -709,7 +709,7 @@ struct used_mask {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,
 		unsigned int elt_sz)
 {
@@ -833,7 +833,7 @@ struct used_mask {
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_fbarray_attach(struct rte_fbarray *arr)
 {
 	struct mem_area *ma = NULL, *tmp = NULL;
@@ -924,7 +924,7 @@ struct used_mask {
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_fbarray_detach(struct rte_fbarray *arr)
 {
 	struct mem_area *tmp = NULL;
@@ -978,7 +978,7 @@ struct used_mask {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_fbarray_destroy(struct rte_fbarray *arr)
 {
 	struct mem_area *tmp = NULL;
@@ -1060,7 +1060,7 @@ struct used_mask {
 	return ret;
 }
 
-void * __rte_experimental
+void *
 rte_fbarray_get(const struct rte_fbarray *arr, unsigned int idx)
 {
 	void *ret = NULL;
@@ -1079,19 +1079,19 @@ struct used_mask {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_fbarray_set_used(struct rte_fbarray *arr, unsigned int idx)
 {
 	return set_used(arr, idx, true);
 }
 
-int __rte_experimental
+int
 rte_fbarray_set_free(struct rte_fbarray *arr, unsigned int idx)
 {
 	return set_used(arr, idx, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_is_used(struct rte_fbarray *arr, unsigned int idx)
 {
 	struct used_mask *msk;
@@ -1160,25 +1160,25 @@ struct used_mask {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_next_free(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find(arr, start, true, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_next_used(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find(arr, start, true, true);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_prev_free(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find(arr, start, false, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_prev_used(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find(arr, start, false, true);
@@ -1236,28 +1236,28 @@ struct used_mask {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_next_n_free(struct rte_fbarray *arr, unsigned int start,
 		unsigned int n)
 {
 	return fbarray_find_n(arr, start, n, true, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_next_n_used(struct rte_fbarray *arr, unsigned int start,
 		unsigned int n)
 {
 	return fbarray_find_n(arr, start, n, true, true);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_prev_n_free(struct rte_fbarray *arr, unsigned int start,
 		unsigned int n)
 {
 	return fbarray_find_n(arr, start, n, false, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_prev_n_used(struct rte_fbarray *arr, unsigned int start,
 		unsigned int n)
 {
@@ -1400,56 +1400,56 @@ struct used_mask {
 	return biggest_idx;
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_biggest_free(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_biggest(arr, start, false, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_biggest_used(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_biggest(arr, start, true, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_rev_biggest_free(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_biggest(arr, start, false, true);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_rev_biggest_used(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_biggest(arr, start, true, true);
 }
 
 
-int __rte_experimental
+int
 rte_fbarray_find_contig_free(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_contig(arr, start, true, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_contig_used(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_contig(arr, start, true, true);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_rev_contig_free(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_contig(arr, start, false, false);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_rev_contig_used(struct rte_fbarray *arr, unsigned int start)
 {
 	return fbarray_find_contig(arr, start, false, true);
 }
 
-int __rte_experimental
+int
 rte_fbarray_find_idx(const struct rte_fbarray *arr, const void *elt)
 {
 	void *end;
@@ -1475,7 +1475,7 @@ struct used_mask {
 	return ret;
 }
 
-void __rte_experimental
+void
 rte_fbarray_dump_metadata(struct rte_fbarray *arr, FILE *f)
 {
 	struct used_mask *msk;
diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c
index c714a4b..4f6f227 100644
--- a/lib/librte_eal/common/eal_common_log.c
+++ b/lib/librte_eal/common/eal_common_log.c
@@ -268,7 +268,7 @@ int rte_log_cur_msg_logtype(void)
 }
 
 /* Register an extended log type and try to pick its level from EAL options */
-int __rte_experimental
+int
 rte_log_register_type_and_pick_level(const char *name, uint32_t level_def)
 {
 	struct rte_eal_opt_loglevel *opt_ll;
diff --git a/lib/librte_eal/common/eal_common_memory.c b/lib/librte_eal/common/eal_common_memory.c
index de6fc1b..858d563 100644
--- a/lib/librte_eal/common/eal_common_memory.c
+++ b/lib/librte_eal/common/eal_common_memory.c
@@ -243,7 +243,7 @@
 	return msl;
 }
 
-__rte_experimental struct rte_memseg_list *
+struct rte_memseg_list *
 rte_mem_virt2memseg_list(const void *addr)
 {
 	return virt2memseg_list(addr);
@@ -280,7 +280,7 @@ struct virtiova {
 	return 0;
 }
 
-__rte_experimental void *
+void *
 rte_mem_iova2virt(rte_iova_t iova)
 {
 	struct virtiova vi;
@@ -299,7 +299,7 @@ struct virtiova {
 	return vi.virt;
 }
 
-__rte_experimental struct rte_memseg *
+struct rte_memseg *
 rte_mem_virt2memseg(const void *addr, const struct rte_memseg_list *msl)
 {
 	return virt2memseg(addr, msl != NULL ? msl :
@@ -368,7 +368,7 @@ struct virtiova {
  * Defining here because declared in rte_memory.h, but the actual implementation
  * is in eal_common_memalloc.c, like all other memalloc internals.
  */
-int __rte_experimental
+int
 rte_mem_event_callback_register(const char *name, rte_mem_event_callback_t clb,
 		void *arg)
 {
@@ -381,7 +381,7 @@ struct virtiova {
 	return eal_memalloc_mem_event_callback_register(name, clb, arg);
 }
 
-int __rte_experimental
+int
 rte_mem_event_callback_unregister(const char *name, void *arg)
 {
 	/* FreeBSD boots with legacy mem enabled by default */
@@ -393,7 +393,7 @@ struct virtiova {
 	return eal_memalloc_mem_event_callback_unregister(name, arg);
 }
 
-int __rte_experimental
+int
 rte_mem_alloc_validator_register(const char *name,
 		rte_mem_alloc_validator_t clb, int socket_id, size_t limit)
 {
@@ -407,7 +407,7 @@ struct virtiova {
 			limit);
 }
 
-int __rte_experimental
+int
 rte_mem_alloc_validator_unregister(const char *name, int socket_id)
 {
 	/* FreeBSD boots with legacy mem enabled by default */
@@ -489,13 +489,13 @@ struct virtiova {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_mem_check_dma_mask(uint8_t maskbits)
 {
 	return check_dma_mask(maskbits, false);
 }
 
-int __rte_experimental
+int
 rte_mem_check_dma_mask_thread_unsafe(uint8_t maskbits)
 {
 	return check_dma_mask(maskbits, true);
@@ -508,7 +508,7 @@ struct virtiova {
  * initialization. PMDs should use rte_mem_check_dma_mask if addressing
  * limitations by the device.
  */
-void __rte_experimental
+void
 rte_mem_set_dma_mask(uint8_t maskbits)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -554,7 +554,7 @@ unsigned rte_memory_get_nrank(void)
 	return mlock((void *)aligned, page_size);
 }
 
-int __rte_experimental
+int
 rte_memseg_contig_walk_thread_unsafe(rte_memseg_contig_walk_t func, void *arg)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -593,7 +593,7 @@ unsigned rte_memory_get_nrank(void)
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_memseg_contig_walk(rte_memseg_contig_walk_t func, void *arg)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -607,7 +607,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_memseg_walk_thread_unsafe(rte_memseg_walk_t func, void *arg)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -635,7 +635,7 @@ unsigned rte_memory_get_nrank(void)
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_memseg_walk(rte_memseg_walk_t func, void *arg)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -649,7 +649,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_memseg_list_walk_thread_unsafe(rte_memseg_list_walk_t func, void *arg)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -668,7 +668,7 @@ unsigned rte_memory_get_nrank(void)
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_memseg_list_walk(rte_memseg_list_walk_t func, void *arg)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -682,7 +682,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_memseg_get_fd_thread_unsafe(const struct rte_memseg *ms)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -724,7 +724,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_memseg_get_fd(const struct rte_memseg *ms)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -737,7 +737,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_memseg_get_fd_offset_thread_unsafe(const struct rte_memseg *ms,
 		size_t *offset)
 {
@@ -780,7 +780,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_memseg_get_fd_offset(const struct rte_memseg *ms, size_t *offset)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -793,7 +793,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_extmem_register(void *va_addr, size_t len, rte_iova_t iova_addrs[],
 		unsigned int n_pages, size_t page_sz)
 {
@@ -842,7 +842,7 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_extmem_unregister(void *va_addr, size_t len)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
@@ -899,13 +899,13 @@ unsigned rte_memory_get_nrank(void)
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_extmem_attach(void *va_addr, size_t len)
 {
 	return sync_memory(va_addr, len, true);
 }
 
-int __rte_experimental
+int
 rte_extmem_detach(void *va_addr, size_t len)
 {
 	return sync_memory(va_addr, len, false);
diff --git a/lib/librte_eal/common/eal_common_proc.c b/lib/librte_eal/common/eal_common_proc.c
index cfd571e..cbe8d10 100644
--- a/lib/librte_eal/common/eal_common_proc.c
+++ b/lib/librte_eal/common/eal_common_proc.c
@@ -197,7 +197,7 @@ struct pending_request {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_mp_action_register(const char *name, rte_mp_t action)
 {
 	struct action_entry *entry;
@@ -231,7 +231,7 @@ struct pending_request {
 	return 0;
 }
 
-void __rte_experimental
+void
 rte_mp_action_unregister(const char *name)
 {
 	struct action_entry *entry;
@@ -801,7 +801,7 @@ enum async_action {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_mp_sendmsg(struct rte_mp_msg *msg)
 {
 	if (check_input(msg) != 0)
@@ -948,7 +948,7 @@ enum async_action {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,
 		const struct timespec *ts)
 {
@@ -1044,7 +1044,7 @@ enum async_action {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,
 		rte_mp_async_reply_t clb)
 {
@@ -1194,7 +1194,7 @@ enum async_action {
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_mp_reply(struct rte_mp_msg *msg, const char *peer)
 {
 	RTE_LOG(DEBUG, EAL, "reply: %s\n", msg->name);
diff --git a/lib/librte_eal/common/eal_common_timer.c b/lib/librte_eal/common/eal_common_timer.c
index 68d67e6..145543d 100644
--- a/lib/librte_eal/common/eal_common_timer.c
+++ b/lib/librte_eal/common/eal_common_timer.c
@@ -33,7 +33,7 @@
 		rte_pause();
 }
 
-void __rte_experimental
+void
 rte_delay_us_sleep(unsigned int us)
 {
 	struct timespec wait[2];
diff --git a/lib/librte_eal/common/rte_malloc.c b/lib/librte_eal/common/rte_malloc.c
index 54792ea..b119eba 100644
--- a/lib/librte_eal/common/rte_malloc.c
+++ b/lib/librte_eal/common/rte_malloc.c
@@ -196,7 +196,7 @@ void rte_free(void *addr)
 /*
  * Function to dump contents of all heaps
  */
-void __rte_experimental
+void
 rte_malloc_dump_heaps(FILE *f)
 {
 	struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
diff --git a/lib/librte_eal/common/rte_option.c b/lib/librte_eal/common/rte_option.c
index fe7f2ab..6f8bd6e 100644
--- a/lib/librte_eal/common/rte_option.c
+++ b/lib/librte_eal/common/rte_option.c
@@ -38,7 +38,6 @@ struct rte_option_list rte_option_list =
 	return -1;
 }
 
-__rte_experimental
 int
 rte_option_register(struct rte_option *opt)
 {
diff --git a/lib/librte_eal/common/rte_random.c b/lib/librte_eal/common/rte_random.c
index 3d9b9b7..f851190 100644
--- a/lib/librte_eal/common/rte_random.c
+++ b/lib/librte_eal/common/rte_random.c
@@ -137,7 +137,7 @@ struct rte_rand_state *__rte_rand_get_state(void)
 	return __rte_rand_lfsr258(state);
 }
 
-uint64_t __rte_experimental
+uint64_t
 rte_rand_max(uint64_t upper_bound)
 {
 	struct rte_rand_state *state;
diff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c
index 5f75e5a..c3653eb 100644
--- a/lib/librte_eal/common/rte_service.c
+++ b/lib/librte_eal/common/rte_service.c
@@ -378,7 +378,7 @@ int32_t rte_service_init(void)
 	return 0;
 }
 
-int32_t __rte_experimental
+int32_t
 rte_service_may_be_active(uint32_t id)
 {
 	uint32_t ids[RTE_MAX_LCORE] = {0};
@@ -754,7 +754,7 @@ int32_t rte_service_run_iter_on_app_lcore(uint32_t id,
 	}
 }
 
-int32_t __rte_experimental
+int32_t
 rte_service_lcore_attr_get(uint32_t lcore, uint32_t attr_id,
 			   uint64_t *attr_value)
 {
@@ -814,7 +814,7 @@ int32_t rte_service_run_iter_on_app_lcore(uint32_t id,
 	return 0;
 }
 
-int32_t __rte_experimental
+int32_t
 rte_service_lcore_attr_reset_all(uint32_t lcore)
 {
 	struct core_state *cs;
diff --git a/lib/librte_eal/freebsd/eal/eal.c b/lib/librte_eal/freebsd/eal/eal.c
index 2c77a86..a3d4863 100644
--- a/lib/librte_eal/freebsd/eal/eal.c
+++ b/lib/librte_eal/freebsd/eal/eal.c
@@ -881,7 +881,7 @@ static void rte_eal_init_alert(const char *msg)
 	return fctret;
 }
 
-int __rte_experimental
+int
 rte_eal_cleanup(void)
 {
 	rte_service_finalize();
diff --git a/lib/librte_eal/freebsd/eal/eal_dev.c b/lib/librte_eal/freebsd/eal/eal_dev.c
index 255d611..8e06e70 100644
--- a/lib/librte_eal/freebsd/eal/eal_dev.c
+++ b/lib/librte_eal/freebsd/eal/eal_dev.c
@@ -6,28 +6,28 @@
 #include <rte_compat.h>
 #include <rte_dev.h>
 
-int __rte_experimental
+int
 rte_dev_event_monitor_start(void)
 {
 	RTE_LOG(ERR, EAL, "Device event is not supported for FreeBSD\n");
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_dev_event_monitor_stop(void)
 {
 	RTE_LOG(ERR, EAL, "Device event is not supported for FreeBSD\n");
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_dev_hotplug_handle_enable(void)
 {
 	RTE_LOG(ERR, EAL, "Device event is not supported for FreeBSD\n");
 	return -1;
 }
 
-int __rte_experimental
+int
 rte_dev_hotplug_handle_disable(void)
 {
 	RTE_LOG(ERR, EAL, "Device event is not supported for FreeBSD\n");
diff --git a/lib/librte_eal/freebsd/eal/eal_interrupts.c b/lib/librte_eal/freebsd/eal/eal_interrupts.c
index 4a9aedd..10375bd 100644
--- a/lib/librte_eal/freebsd/eal/eal_interrupts.c
+++ b/lib/librte_eal/freebsd/eal/eal_interrupts.c
@@ -193,7 +193,7 @@ struct rte_intr_source {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
 				rte_intr_callback_fn cb_fn, void *cb_arg,
 				rte_intr_unregister_callback_fn ucb_fn)
diff --git a/lib/librte_eal/linux/eal/eal_dev.c b/lib/librte_eal/linux/eal/eal_dev.c
index c418093..83c9cd6 100644
--- a/lib/librte_eal/linux/eal/eal_dev.c
+++ b/lib/librte_eal/linux/eal/eal_dev.c
@@ -285,7 +285,7 @@ static int cmp_dev_name(const struct rte_device *dev,
 	rte_spinlock_unlock(&failure_handle_lock);
 }
 
-int __rte_experimental
+int
 rte_dev_event_monitor_start(void)
 {
 	int ret;
@@ -312,7 +312,7 @@ static int cmp_dev_name(const struct rte_device *dev,
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_dev_event_monitor_stop(void)
 {
 	int ret;
@@ -365,7 +365,7 @@ static int cmp_dev_name(const struct rte_device *dev,
 	return rte_errno;
 }
 
-int __rte_experimental
+int
 rte_dev_hotplug_handle_enable(void)
 {
 	int ret = 0;
@@ -380,7 +380,7 @@ static int cmp_dev_name(const struct rte_device *dev,
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_dev_hotplug_handle_disable(void)
 {
 	int ret = 0;
diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c b/lib/librte_eal/linux/eal/eal_interrupts.c
index be0dd44..79ad5e8 100644
--- a/lib/librte_eal/linux/eal/eal_interrupts.c
+++ b/lib/librte_eal/linux/eal/eal_interrupts.c
@@ -522,7 +522,7 @@ struct rte_intr_source {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,
 				rte_intr_callback_fn cb_fn, void *cb_arg,
 				rte_intr_unregister_callback_fn ucb_fn)
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 8ac3016..31f02ec 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -601,7 +601,7 @@ struct rte_eth_dev *
 	return port_id;
 }
 
-int __rte_experimental
+int
 rte_eth_dev_owner_new(uint64_t *owner_id)
 {
 	rte_eth_dev_shared_data_prepare();
@@ -654,7 +654,7 @@ struct rte_eth_dev *
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_eth_dev_owner_set(const uint16_t port_id,
 		      const struct rte_eth_dev_owner *owner)
 {
@@ -670,7 +670,7 @@ struct rte_eth_dev *
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_eth_dev_owner_unset(const uint16_t port_id, const uint64_t owner_id)
 {
 	const struct rte_eth_dev_owner new_owner = (struct rte_eth_dev_owner)
@@ -687,7 +687,7 @@ struct rte_eth_dev *
 	return ret;
 }
 
-void __rte_experimental
+void
 rte_eth_dev_owner_delete(const uint64_t owner_id)
 {
 	uint16_t port_id;
@@ -713,7 +713,7 @@ struct rte_eth_dev *
 	rte_spinlock_unlock(&rte_eth_dev_shared_data->ownership_lock);
 }
 
-int __rte_experimental
+int
 rte_eth_dev_owner_get(const uint16_t port_id, struct rte_eth_dev_owner *owner)
 {
 	int ret = 0;
@@ -1535,7 +1535,7 @@ struct rte_eth_dev *
 	return eth_err(port_id, ret);
 }
 
-int __rte_experimental
+int
 rte_eth_dev_is_removed(uint16_t port_id)
 {
 	struct rte_eth_dev *dev;
@@ -3592,7 +3592,7 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_eth_dev_rx_intr_ctl_q_get_fd(uint16_t port_id, uint16_t queue_id)
 {
 	struct rte_intr_handle *intr_handle;
@@ -3654,7 +3654,7 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
 			RTE_MEMZONE_IOVA_CONTIG, align);
 }
 
-int __rte_experimental
+int
 rte_eth_dev_create(struct rte_device *device, const char *name,
 	size_t priv_data_size,
 	ethdev_bus_specific_init ethdev_bus_specific_init,
@@ -3717,7 +3717,7 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
 	return retval;
 }
 
-int  __rte_experimental
+int
 rte_eth_dev_destroy(struct rte_eth_dev *ethdev,
 	ethdev_uninit_t ethdev_uninit)
 {
@@ -4238,7 +4238,7 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
 	return eth_err(port_id, (*dev->dev_ops->set_eeprom)(dev, info));
 }
 
-int __rte_experimental
+int
 rte_eth_dev_get_module_info(uint16_t port_id,
 			    struct rte_eth_dev_module_info *modinfo)
 {
@@ -4251,7 +4251,7 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
 	return (*dev->dev_ops->get_module_info)(dev, modinfo);
 }
 
-int __rte_experimental
+int
 rte_eth_dev_get_module_eeprom(uint16_t port_id,
 			      struct rte_dev_eeprom_info *info)
 {
@@ -4407,7 +4407,7 @@ enum rte_eth_switch_domain_state {
 	enum rte_eth_switch_domain_state state;
 } rte_eth_switch_domains[RTE_MAX_ETHPORTS];
 
-int __rte_experimental
+int
 rte_eth_switch_domain_alloc(uint16_t *domain_id)
 {
 	unsigned int i;
@@ -4428,7 +4428,7 @@ enum rte_eth_switch_domain_state {
 	return -ENOSPC;
 }
 
-int __rte_experimental
+int
 rte_eth_switch_domain_free(uint16_t domain_id)
 {
 	if (domain_id == RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID ||
@@ -4508,7 +4508,7 @@ enum rte_eth_switch_domain_state {
 	}
 }
 
-int __rte_experimental
+int
 rte_eth_devargs_parse(const char *dargs, struct rte_eth_devargs *eth_da)
 {
 	struct rte_kvargs args;
diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c
index 3277be1..5c49522 100644
--- a/lib/librte_ethdev/rte_flow.c
+++ b/lib/librte_ethdev/rte_flow.c
@@ -899,7 +899,7 @@ enum rte_flow_conv_item_spec_type {
  * Expand RSS flows into several possible flows according to the RSS hash
  * fields requested and the driver capabilities.
  */
-int __rte_experimental
+int
 rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,
 		    const struct rte_flow_item *pattern, uint64_t types,
 		    const struct rte_flow_expand_node graph[],
diff --git a/lib/librte_ethdev/rte_mtr.c b/lib/librte_ethdev/rte_mtr.c
index 12b8154..3073ac0 100644
--- a/lib/librte_ethdev/rte_mtr.c
+++ b/lib/librte_ethdev/rte_mtr.c
@@ -58,7 +58,7 @@
 })
 
 /* MTR capabilities get */
-int __rte_experimental
+int
 rte_mtr_capabilities_get(uint16_t port_id,
 	struct rte_mtr_capabilities *cap,
 	struct rte_mtr_error *error)
@@ -69,7 +69,7 @@
 }
 
 /* MTR meter profile add */
-int __rte_experimental
+int
 rte_mtr_meter_profile_add(uint16_t port_id,
 	uint32_t meter_profile_id,
 	struct rte_mtr_meter_profile *profile,
@@ -81,7 +81,7 @@
 }
 
 /** MTR meter profile delete */
-int __rte_experimental
+int
 rte_mtr_meter_profile_delete(uint16_t port_id,
 	uint32_t meter_profile_id,
 	struct rte_mtr_error *error)
@@ -92,7 +92,7 @@
 }
 
 /** MTR object create */
-int __rte_experimental
+int
 rte_mtr_create(uint16_t port_id,
 	uint32_t mtr_id,
 	struct rte_mtr_params *params,
@@ -105,7 +105,7 @@
 }
 
 /** MTR object destroy */
-int __rte_experimental
+int
 rte_mtr_destroy(uint16_t port_id,
 	uint32_t mtr_id,
 	struct rte_mtr_error *error)
@@ -116,7 +116,7 @@
 }
 
 /** MTR object meter enable */
-int __rte_experimental
+int
 rte_mtr_meter_enable(uint16_t port_id,
 	uint32_t mtr_id,
 	struct rte_mtr_error *error)
@@ -127,7 +127,7 @@
 }
 
 /** MTR object meter disable */
-int __rte_experimental
+int
 rte_mtr_meter_disable(uint16_t port_id,
 	uint32_t mtr_id,
 	struct rte_mtr_error *error)
@@ -138,7 +138,7 @@
 }
 
 /** MTR object meter profile update */
-int __rte_experimental
+int
 rte_mtr_meter_profile_update(uint16_t port_id,
 	uint32_t mtr_id,
 	uint32_t meter_profile_id,
@@ -150,7 +150,7 @@
 }
 
 /** MTR object meter DSCP table update */
-int __rte_experimental
+int
 rte_mtr_meter_dscp_table_update(uint16_t port_id,
 	uint32_t mtr_id,
 	enum rte_color *dscp_table,
@@ -162,7 +162,7 @@
 }
 
 /** MTR object policer action update */
-int __rte_experimental
+int
 rte_mtr_policer_actions_update(uint16_t port_id,
 	uint32_t mtr_id,
 	uint32_t action_mask,
@@ -175,7 +175,7 @@
 }
 
 /** MTR object enabled stats update */
-int __rte_experimental
+int
 rte_mtr_stats_update(uint16_t port_id,
 	uint32_t mtr_id,
 	uint64_t stats_mask,
@@ -187,7 +187,7 @@
 }
 
 /** MTR object stats read */
-int __rte_experimental
+int
 rte_mtr_stats_read(uint16_t port_id,
 	uint32_t mtr_id,
 	struct rte_mtr_stats *stats,
diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
index a97d198..dd251cc 100644
--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
@@ -2297,7 +2297,7 @@ static int rxa_sw_add(struct rte_event_eth_rx_adapter *rx_adapter,
 	return rxa_ctrl(id, 0);
 }
 
-int __rte_experimental
+int
 rte_event_eth_rx_adapter_stats_get(uint8_t id,
 			       struct rte_event_eth_rx_adapter_stats *stats)
 {
@@ -2384,7 +2384,7 @@ static int rxa_sw_add(struct rte_event_eth_rx_adapter *rx_adapter,
 	return rx_adapter->service_inited ? 0 : -ESRCH;
 }
 
-int __rte_experimental
+int
 rte_event_eth_rx_adapter_cb_register(uint8_t id,
 					uint16_t eth_dev_id,
 					rte_event_eth_rx_adapter_cb_fn cb_fn,
diff --git a/lib/librte_flow_classify/rte_flow_classify.c b/lib/librte_flow_classify/rte_flow_classify.c
index 24f7f7a..5ff5858 100644
--- a/lib/librte_flow_classify/rte_flow_classify.c
+++ b/lib/librte_flow_classify/rte_flow_classify.c
@@ -89,7 +89,7 @@ struct rte_flow_classify_rule {
 	void *entry_ptr; /* handle to the table entry for rule meta data */
 };
 
-int __rte_experimental
+int
 rte_flow_classify_validate(
 		   struct rte_flow_classifier *cls,
 		   const struct rte_flow_attr *attr,
@@ -258,7 +258,7 @@ struct rte_flow_classify_rule {
 	return 0;
 }
 
-struct rte_flow_classifier * __rte_experimental
+struct rte_flow_classifier *
 rte_flow_classifier_create(struct rte_flow_classifier_params *params)
 {
 	struct rte_flow_classifier *cls;
@@ -300,7 +300,7 @@ struct rte_flow_classifier * __rte_experimental
 		table->ops.f_free(table->h_table);
 }
 
-int __rte_experimental
+int
 rte_flow_classifier_free(struct rte_flow_classifier *cls)
 {
 	uint32_t i;
@@ -372,7 +372,7 @@ struct rte_flow_classifier * __rte_experimental
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_flow_classify_table_create(struct rte_flow_classifier *cls,
 	struct rte_flow_classify_table_params *params)
 {
@@ -482,7 +482,7 @@ struct rte_flow_classifier * __rte_experimental
 	return rule;
 }
 
-struct rte_flow_classify_rule * __rte_experimental
+struct rte_flow_classify_rule *
 rte_flow_classify_table_entry_add(struct rte_flow_classifier *cls,
 		const struct rte_flow_attr *attr,
 		const struct rte_flow_item pattern[],
@@ -564,7 +564,7 @@ struct rte_flow_classify_rule * __rte_experimental
 	return NULL;
 }
 
-int __rte_experimental
+int
 rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,
 		struct rte_flow_classify_rule *rule)
 {
@@ -642,7 +642,7 @@ struct rte_flow_classify_rule * __rte_experimental
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_flow_classifier_query(struct rte_flow_classifier *cls,
 		struct rte_mbuf **pkts,
 		const uint16_t nb_pkts,
diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
index 953928f..51198b4 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
@@ -1583,7 +1583,7 @@ struct rte_hash *
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_hash_free_key_with_position(const struct rte_hash *h,
 				const int32_t position)
 {
diff --git a/lib/librte_ip_frag/rte_ip_frag_common.c b/lib/librte_ip_frag/rte_ip_frag_common.c
index a23f6f2..6b29e9d 100644
--- a/lib/librte_ip_frag/rte_ip_frag_common.c
+++ b/lib/librte_ip_frag/rte_ip_frag_common.c
@@ -123,7 +123,7 @@ struct rte_ip_frag_tbl *
 }
 
 /* Delete expired fragments */
-void __rte_experimental
+void
 rte_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl,
 	struct rte_ip_frag_death_row *dr, uint64_t tms)
 {
diff --git a/lib/librte_ipsec/sa.c b/lib/librte_ipsec/sa.c
index 1cb71ca..81e3437 100644
--- a/lib/librte_ipsec/sa.c
+++ b/lib/librte_ipsec/sa.c
@@ -77,7 +77,7 @@ struct crypto_xform {
 	return 0;
 }
 
-uint64_t __rte_experimental
+uint64_t
 rte_ipsec_sa_type(const struct rte_ipsec_sa *sa)
 {
 	return sa->type;
@@ -149,7 +149,7 @@ struct crypto_xform {
 	return sz;
 }
 
-void __rte_experimental
+void
 rte_ipsec_sa_fini(struct rte_ipsec_sa *sa)
 {
 	memset(sa, 0, sa->size);
@@ -405,7 +405,7 @@ struct crypto_xform {
 			((uintptr_t)sa->sqn.inb.rsn[0] + rsn_size(nb_bucket));
 }
 
-int __rte_experimental
+int
 rte_ipsec_sa_size(const struct rte_ipsec_sa_prm *prm)
 {
 	uint64_t type;
@@ -425,7 +425,7 @@ struct crypto_xform {
 	return ipsec_sa_size(type, &wsz, &nb);
 }
 
-int __rte_experimental
+int
 rte_ipsec_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm,
 	uint32_t size)
 {
diff --git a/lib/librte_ipsec/ses.c b/lib/librte_ipsec/ses.c
index 1158097..82c765a 100644
--- a/lib/librte_ipsec/ses.c
+++ b/lib/librte_ipsec/ses.c
@@ -27,7 +27,7 @@
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_ipsec_session_prepare(struct rte_ipsec_session *ss)
 {
 	int32_t rc;
diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c
index e29d0cc..00104a3 100644
--- a/lib/librte_kni/rte_kni.c
+++ b/lib/librte_kni/rte_kni.c
@@ -709,7 +709,7 @@ struct rte_kni *
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_kni_update_link(struct rte_kni *kni, unsigned int linkup)
 {
 	char path[64];
diff --git a/lib/librte_kvargs/rte_kvargs.c b/lib/librte_kvargs/rte_kvargs.c
index f7030c6..d393329 100644
--- a/lib/librte_kvargs/rte_kvargs.c
+++ b/lib/librte_kvargs/rte_kvargs.c
@@ -186,7 +186,6 @@ struct rte_kvargs *
 	return kvlist;
 }
 
-__rte_experimental
 struct rte_kvargs *
 rte_kvargs_parse_delim(const char *args, const char * const valid_keys[],
 		       const char *valid_ends)
@@ -211,7 +210,6 @@ struct rte_kvargs *
 	return kvlist;
 }
 
-__rte_experimental
 int
 rte_kvargs_strcmp(const char *key __rte_unused,
 		  const char *value, void *opaque)
diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
index 21f6f74..37718d4 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -177,7 +177,6 @@ struct rte_mempool *
 		rte_panic("%s\n", reason);
 }
 
-__rte_experimental
 int rte_mbuf_check(const struct rte_mbuf *m, int is_header,
 		   const char **reason)
 {
diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c
index 4567944..da01429 100644
--- a/lib/librte_meter/rte_meter.c
+++ b/lib/librte_meter/rte_meter.c
@@ -119,7 +119,7 @@
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_meter_trtcm_rfc4115_profile_config(
 	struct rte_meter_trtcm_rfc4115_profile *p,
 	struct rte_meter_trtcm_rfc4115_params *params)
@@ -144,7 +144,7 @@
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_meter_trtcm_rfc4115_config(
 	struct rte_meter_trtcm_rfc4115 *m,
 	struct rte_meter_trtcm_rfc4115_profile *p)
diff --git a/lib/librte_net/rte_arp.c b/lib/librte_net/rte_arp.c
index cfd6e03..784b7f4 100644
--- a/lib/librte_net/rte_arp.c
+++ b/lib/librte_net/rte_arp.c
@@ -7,7 +7,7 @@
 #include <rte_arp.h>
 
 #define RARP_PKT_SIZE	64
-struct rte_mbuf * __rte_experimental
+struct rte_mbuf *
 rte_net_make_rarp_packet(struct rte_mempool *mpool,
 		const struct rte_ether_addr *mac)
 {
diff --git a/lib/librte_net/rte_net.c b/lib/librte_net/rte_net.c
index 6515909..dfccbbf 100644
--- a/lib/librte_net/rte_net.c
+++ b/lib/librte_net/rte_net.c
@@ -179,7 +179,7 @@
 }
 
 /* parse ipv6 extended headers, update offset and return next proto */
-int __rte_experimental
+int
 rte_net_skip_ip6_ext(uint16_t proto, const struct rte_mbuf *m, uint32_t *off,
 	int *frag)
 {
diff --git a/lib/librte_power/rte_power_empty_poll.c b/lib/librte_power/rte_power_empty_poll.c
index 15d4f05..0a8024d 100644
--- a/lib/librte_power/rte_power_empty_poll.c
+++ b/lib/librte_power/rte_power_empty_poll.c
@@ -361,7 +361,7 @@ static inline void  __attribute__((always_inline))
 	return 0;
 }
 
-void __rte_experimental
+void
 rte_empty_poll_detection(struct rte_timer *tim, void *arg)
 {
 
@@ -402,7 +402,7 @@ static inline void  __attribute__((always_inline))
 
 }
 
-int __rte_experimental
+int
 rte_power_empty_poll_stat_init(struct ep_params **eptr, uint8_t *freq_tlb,
 		struct ep_policy *policy)
 {
@@ -461,7 +461,7 @@ static inline void  __attribute__((always_inline))
 	return 0;
 }
 
-void __rte_experimental
+void
 rte_power_empty_poll_stat_free(void)
 {
 
@@ -471,7 +471,7 @@ static inline void  __attribute__((always_inline))
 		rte_free(ep_params);
 }
 
-int __rte_experimental
+int
 rte_power_empty_poll_stat_update(unsigned int lcore_id)
 {
 	struct priority_worker *poll_stats;
@@ -489,7 +489,7 @@ static inline void  __attribute__((always_inline))
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_power_poll_stat_update(unsigned int lcore_id, uint8_t nb_pkt)
 {
 
@@ -509,7 +509,7 @@ static inline void  __attribute__((always_inline))
 }
 
 
-uint64_t __rte_experimental
+uint64_t
 rte_power_empty_poll_stat_fetch(unsigned int lcore_id)
 {
 	struct priority_worker *poll_stats;
@@ -525,7 +525,7 @@ static inline void  __attribute__((always_inline))
 	return poll_stats->empty_dequeues;
 }
 
-uint64_t __rte_experimental
+uint64_t
 rte_power_poll_stat_fetch(unsigned int lcore_id)
 {
 	struct priority_worker *poll_stats;
diff --git a/lib/librte_rcu/rte_rcu_qsbr.c b/lib/librte_rcu/rte_rcu_qsbr.c
index de25464..ce7f93d 100644
--- a/lib/librte_rcu/rte_rcu_qsbr.c
+++ b/lib/librte_rcu/rte_rcu_qsbr.c
@@ -23,7 +23,7 @@
 #include "rte_rcu_qsbr.h"
 
 /* Get the memory size of QSBR variable */
-size_t __rte_experimental
+size_t
 rte_rcu_qsbr_get_memsize(uint32_t max_threads)
 {
 	size_t sz;
@@ -49,7 +49,7 @@
 }
 
 /* Initialize a quiescent state variable */
-int __rte_experimental
+int
 rte_rcu_qsbr_init(struct rte_rcu_qsbr *v, uint32_t max_threads)
 {
 	size_t sz;
@@ -80,7 +80,7 @@
 /* Register a reader thread to report its quiescent state
  * on a QS variable.
  */
-int __rte_experimental
+int
 rte_rcu_qsbr_thread_register(struct rte_rcu_qsbr *v, unsigned int thread_id)
 {
 	unsigned int i, id, success;
@@ -132,7 +132,7 @@
 /* Remove a reader thread, from the list of threads reporting their
  * quiescent state on a QS variable.
  */
-int __rte_experimental
+int
 rte_rcu_qsbr_thread_unregister(struct rte_rcu_qsbr *v, unsigned int thread_id)
 {
 	unsigned int i, id, success;
@@ -186,7 +186,7 @@
 }
 
 /* Wait till the reader threads have entered quiescent state. */
-void __rte_experimental
+void
 rte_rcu_qsbr_synchronize(struct rte_rcu_qsbr *v, unsigned int thread_id)
 {
 	uint64_t t;
@@ -206,7 +206,7 @@
 }
 
 /* Dump the details of a single quiescent state variable to a file. */
-int __rte_experimental
+int
 rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v)
 {
 	uint64_t bmap;
diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
index a60ddf9..bc06bc3 100644
--- a/lib/librte_sched/rte_sched.c
+++ b/lib/librte_sched/rte_sched.c
@@ -953,7 +953,7 @@ struct rte_sched_port *
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_sched_port_pipe_profile_add(struct rte_sched_port *port,
 	struct rte_sched_pipe_params *params,
 	uint32_t *pipe_profile_id)
diff --git a/lib/librte_security/rte_security.c b/lib/librte_security/rte_security.c
index a222b33..bc81ce1 100644
--- a/lib/librte_security/rte_security.c
+++ b/lib/librte_security/rte_security.c
@@ -33,7 +33,7 @@ struct rte_security_session *
 	return sess;
 }
 
-int __rte_experimental
+int
 rte_security_session_update(struct rte_security_ctx *instance,
 			    struct rte_security_session *sess,
 			    struct rte_security_session_conf *conf)
@@ -49,7 +49,7 @@ struct rte_security_session *
 	return instance->ops->session_get_size(instance->device);
 }
 
-int __rte_experimental
+int
 rte_security_session_stats_get(struct rte_security_ctx *instance,
 			       struct rte_security_session *sess,
 			       struct rte_security_stats *stats)
@@ -86,7 +86,7 @@ struct rte_security_session *
 					       sess, m, params);
 }
 
-void * __rte_experimental
+void *
 rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md)
 {
 	void *userdata = NULL;
diff --git a/lib/librte_telemetry/rte_telemetry.c b/lib/librte_telemetry/rte_telemetry.c
index 949c636..9819b22 100644
--- a/lib/librte_telemetry/rte_telemetry.c
+++ b/lib/librte_telemetry/rte_telemetry.c
@@ -970,7 +970,7 @@ struct json_data {
 	return -1;
 }
 
-int32_t __rte_experimental
+int32_t
 rte_telemetry_init()
 {
 	int ret;
@@ -1038,7 +1038,7 @@ struct json_data {
 	return 0;
 }
 
-int32_t __rte_experimental
+int32_t
 rte_telemetry_cleanup(void)
 {
 	int ret;
@@ -1284,7 +1284,7 @@ struct json_data {
 	return sockfd;
 }
 
-int32_t __rte_experimental
+int32_t
 rte_telemetry_selftest(void)
 {
 	const char *invalid_client_path = SELFTEST_INVALID_CLIENT;
diff --git a/lib/librte_telemetry/rte_telemetry_parser.c b/lib/librte_telemetry/rte_telemetry_parser.c
index 956d783..e3cc19f 100644
--- a/lib/librte_telemetry/rte_telemetry_parser.c
+++ b/lib/librte_telemetry/rte_telemetry_parser.c
@@ -606,7 +606,7 @@ struct rte_telemetry_command {
 	return -1;
 }
 
-int32_t __rte_experimental
+int32_t
 rte_telemetry_parse(struct telemetry_impl *telemetry, char *socket_rx_data)
 {
 	int ret, action_int;
diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c
index dd79539..eaeafd7 100644
--- a/lib/librte_timer/rte_timer.c
+++ b/lib/librte_timer/rte_timer.c
@@ -92,7 +92,7 @@ struct rte_timer_data {
 	timer_data = &rte_timer_data_arr[id];				\
 } while (0)
 
-int __rte_experimental
+int
 rte_timer_data_alloc(uint32_t *id_ptr)
 {
 	int i;
@@ -116,7 +116,7 @@ struct rte_timer_data {
 	return -ENOSPC;
 }
 
-int __rte_experimental
+int
 rte_timer_data_dealloc(uint32_t id)
 {
 	struct rte_timer_data *timer_data;
@@ -204,7 +204,7 @@ struct rte_timer_data {
 		  rte_timer_subsystem_init_v1905);
 BIND_DEFAULT_SYMBOL(rte_timer_subsystem_init, _v1905, 19.05);
 
-void __rte_experimental
+void
 rte_timer_subsystem_finalize(void)
 {
 	if (!rte_timer_subsystem_initialized)
@@ -573,7 +573,7 @@ struct rte_timer_data {
 		  rte_timer_reset_v1905);
 BIND_DEFAULT_SYMBOL(rte_timer_reset, _v1905, 19.05);
 
-int __rte_experimental
+int
 rte_timer_alt_reset(uint32_t timer_data_id, struct rte_timer *tim,
 		    uint64_t ticks, enum rte_timer_type type,
 		    unsigned int tim_lcore, rte_timer_cb_t fct, void *arg)
@@ -657,7 +657,7 @@ struct rte_timer_data {
 		  rte_timer_stop_v1905);
 BIND_DEFAULT_SYMBOL(rte_timer_stop, _v1905, 19.05);
 
-int __rte_experimental
+int
 rte_timer_alt_stop(uint32_t timer_data_id, struct rte_timer *tim)
 {
 	struct rte_timer_data *timer_data;
@@ -822,7 +822,7 @@ struct rte_timer_data {
 MAP_STATIC_SYMBOL(int rte_timer_manage(void), rte_timer_manage_v1905);
 BIND_DEFAULT_SYMBOL(rte_timer_manage, _v1905, 19.05);
 
-int __rte_experimental
+int
 rte_timer_alt_manage(uint32_t timer_data_id,
 		     unsigned int *poll_lcores,
 		     int nb_poll_lcores,
@@ -995,7 +995,7 @@ struct rte_timer_data {
 }
 
 /* Walk pending lists, stopping timers and calling user-specified function */
-int __rte_experimental
+int
 rte_timer_stop_all(uint32_t timer_data_id, unsigned int *walk_lcores,
 		   int nb_walk_lcores,
 		   rte_timer_stop_all_cb_t f, void *f_arg)
@@ -1074,7 +1074,7 @@ struct rte_timer_data {
 		  rte_timer_dump_stats_v1905);
 BIND_DEFAULT_SYMBOL(rte_timer_dump_stats, _v1905, 19.05);
 
-int __rte_experimental
+int
 rte_timer_alt_dump_stats(uint32_t timer_data_id __rte_unused, FILE *f)
 {
 	struct rte_timer_data *timer_data;
diff --git a/lib/librte_vhost/vdpa.c b/lib/librte_vhost/vdpa.c
index 24a6698..8e45ce9 100644
--- a/lib/librte_vhost/vdpa.c
+++ b/lib/librte_vhost/vdpa.c
@@ -126,7 +126,7 @@ struct rte_vdpa_device *
 	return vdpa_device_num;
 }
 
-int __rte_experimental
+int
 rte_vdpa_relay_vring_used(int vid, uint16_t qid, void *vring_m)
 {
 	struct virtio_net *dev = get_device(vid);
diff --git a/lib/librte_vhost/vhost_crypto.c b/lib/librte_vhost/vhost_crypto.c
index 8652a77..684fddc 100644
--- a/lib/librte_vhost/vhost_crypto.c
+++ b/lib/librte_vhost/vhost_crypto.c
@@ -1347,7 +1347,7 @@ struct vhost_crypto_data_req {
 	return processed;
 }
 
-int __rte_experimental
+int
 rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,
 		struct rte_mempool *sess_pool,
 		struct rte_mempool *sess_priv_pool,
@@ -1440,7 +1440,7 @@ struct vhost_crypto_data_req {
 	return ret;
 }
 
-int __rte_experimental
+int
 rte_vhost_crypto_free(int vid)
 {
 	struct virtio_net *dev = get_device(vid);
@@ -1469,7 +1469,7 @@ struct vhost_crypto_data_req {
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option)
 {
 	struct virtio_net *dev = get_device(vid);
@@ -1524,7 +1524,7 @@ struct vhost_crypto_data_req {
 	return 0;
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,
 		struct rte_crypto_op **ops, uint16_t nb_ops)
 {
@@ -1634,7 +1634,7 @@ struct vhost_crypto_data_req {
 	return i;
 }
 
-uint16_t __rte_experimental
+uint16_t
 rte_vhost_crypto_finalize_requests(struct rte_crypto_op **ops,
 		uint16_t nb_ops, int *callfds, uint16_t *nb_callfds)
 {
