get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/55484/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 55484,
    "url": "http://patches.dpdk.org/api/patches/55484/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1561635235-22238-10-git-send-email-david.marchand@redhat.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1561635235-22238-10-git-send-email-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1561635235-22238-10-git-send-email-david.marchand@redhat.com",
    "date": "2019-06-27T11:33:55",
    "name": "[9/9] enforce __rte_experimental at the start of symbol declarations",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8d933344a2e8e007f3290a97fc5a050e87b7473c",
    "submitter": {
        "id": 1173,
        "url": "http://patches.dpdk.org/api/people/1173/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@redhat.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1561635235-22238-10-git-send-email-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 5197,
            "url": "http://patches.dpdk.org/api/series/5197/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=5197",
            "date": "2019-06-27T11:33:47",
            "name": "experimental tags fixes",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/5197/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/55484/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/55484/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0D9914C9D;\n\tThu, 27 Jun 2019 13:35:09 +0200 (CEST)",
            "from mx1.redhat.com (mx1.redhat.com [209.132.183.28])\n\tby dpdk.org (Postfix) with ESMTP id E34E75B3A\n\tfor <dev@dpdk.org>; Thu, 27 Jun 2019 13:35:01 +0200 (CEST)",
            "from smtp.corp.redhat.com\n\t(int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id D19DA308424C;\n\tThu, 27 Jun 2019 11:34:58 +0000 (UTC)",
            "from dmarchan.remote.csb (ovpn-204-76.brq.redhat.com\n\t[10.40.204.76])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 8B45319936;\n\tThu, 27 Jun 2019 11:34:49 +0000 (UTC)"
        ],
        "From": "David Marchand <david.marchand@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "nhorman@tuxdriver.com, aconole@redhat.com, thomas@monjalon.net,\n\tWenzhuo Lu <wenzhuo.lu@intel.com>,\n\tKonstantin Ananyev <konstantin.ananyev@intel.com>,\n\tJasvinder Singh <jasvinder.singh@intel.com>,\n\tCristian Dumitrescu <cristian.dumitrescu@intel.com>,\n\tAmr Mokhtar <amr.mokhtar@intel.com>,\n\tFiona Trahe <fiona.trahe@intel.com>, \n\tPablo de Lara <pablo.de.lara.guarch@intel.com>,\n\tAshish Gupta <ashish.gupta@marvell.com>,\n\tDeclan Doherty <declan.doherty@intel.com>,\n\tBruce Richardson <bruce.richardson@intel.com>,\n\tJoyce Kong <joyce.kong@arm.com>,\n\tAnatoly Burakov <anatoly.burakov@intel.com>,\n\tHarry van Haaren <harry.van.haaren@intel.com>,\n\tFerruh Yigit <ferruh.yigit@intel.com>,\n\tAndrew Rybchenko <arybchenko@solarflare.com>,\n\tAdrien Mazarguil <adrien.mazarguil@6wind.com>,\n\tNikhil Rao <nikhil.rao@intel.com>, Jerin Jacob <jerinj@marvell.com>, \n\tBernard Iremonger <bernard.iremonger@intel.com>,\n\tYipeng Wang <yipeng1.wang@intel.com>,\n\tSameh Gobriel <sameh.gobriel@intel.com>,\n\tOlivier Matz <olivier.matz@6wind.com>,\n\tDavid Hunt <david.hunt@intel.com>, \n\tHonnappa Nagarahalli <honnappa.nagarahalli@arm.com>,\n\tAkhil Goyal <akhil.goyal@nxp.com>, Gage Eads <gage.eads@intel.com>,\n\tKevin Laatz <kevin.laatz@intel.com>,\n\tRobert Sanford <rsanford@akamai.com>, \n\tErik Gabriel Carrillo <erik.g.carrillo@intel.com>,\n\tMaxime Coquelin <maxime.coquelin@redhat.com>,\n\tTiwei Bie <tiwei.bie@intel.com>, Zhihong Wang <zhihong.wang@intel.com>",
        "Date": "Thu, 27 Jun 2019 13:33:55 +0200",
        "Message-Id": "<1561635235-22238-10-git-send-email-david.marchand@redhat.com>",
        "In-Reply-To": "<1561635235-22238-1-git-send-email-david.marchand@redhat.com>",
        "References": "<1561635235-22238-1-git-send-email-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-Scanned-By": "MIMEDefang 2.84 on 10.5.11.23",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.40]); Thu, 27 Jun 2019 11:35:01 +0000 (UTC)",
        "Subject": "[dpdk-dev] [PATCH 9/9] enforce __rte_experimental at the start of\n\tsymbol declarations",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Putting a '__attribute__((deprecated))' in the middle of a function\nprototype does not result in the expected result with gcc (while clang\nis fine with this syntax).\n\n$ cat deprecated.c\nvoid * __attribute__((deprecated)) incorrect() { return 0; }\n__attribute__((deprecated)) void *correct(void) { return 0; }\nint main(int argc, char *argv[]) { incorrect(); correct(); return 0; }\n$ gcc -o deprecated.o -c deprecated.c\ndeprecated.c: In function ‘main’:\ndeprecated.c:3:1: warning: ‘correct’ is deprecated (declared at\ndeprecated.c:2) [-Wdeprecated-declarations]\n int main(int argc, char *argv[]) { incorrect(); correct(); return 0; }\n ^\n\nLet's enforce the tag is at the very start of the lines, this is not\nperfect but we will trust reviewers to catch the other not so easy to\ndetect patterns.\n\ntag=__rte_experimental\ngit grep -l [^^]$tag |grep \\\\.h$ |while read file; do\n\t[ \"$file\" != 'lib/librte_eal/common/include/rte_compat.h' ] ||\n\t\tcontinue\n\tsed -i -e 's#^\\(.*\\)  *'$tag'#'$tag' \\1#' $file\n\tsed -i -e 's#^\\(..*\\)'$tag'#'$tag' \\1#' $file\ndone\n\nSpecial mention for rte_mbuf_data_addr_default():\n\nThere is either a bug or a (not yet understood) issue with gcc.\ngcc won't drop this inline when unused and rte_mbuf_data_addr_default()\ncalls rte_mbuf_buf_addr() which itself is experimental.\nThis results in a build warning when not accepting experimental apis\nfrom sources just including rte_mbuf.h.\n\nFor this specific case, we hide the call to rte_mbuf_buf_addr() under\nthe ALLOW_EXPERIMENTAL_API flag.\n\nSigned-off-by: David Marchand <david.marchand@redhat.com>\n---\n devtools/checkpatches.sh                           |  5 +++\n drivers/net/ixgbe/rte_pmd_ixgbe.h                  | 10 ++---\n drivers/net/softnic/rte_eth_softnic.h              |  2 +-\n lib/librte_bbdev/rte_bbdev.h                       | 48 ++++++++++----------\n lib/librte_bbdev/rte_bbdev_op.h                    | 12 ++---\n lib/librte_bbdev/rte_bbdev_pmd.h                   |  8 ++--\n lib/librte_bpf/rte_bpf.h                           | 12 ++---\n lib/librte_bpf/rte_bpf_ethdev.h                    |  8 ++--\n lib/librte_compressdev/rte_comp.h                  | 12 ++---\n lib/librte_compressdev/rte_compressdev.h           | 44 +++++++++---------\n lib/librte_compressdev/rte_compressdev_pmd.h       | 12 ++---\n lib/librte_cryptodev/rte_cryptodev.h               | 28 ++++++------\n .../common/include/arch/x86/rte_atomic_64.h        |  2 +-\n lib/librte_eal/common/include/generic/rte_atomic.h |  2 +-\n lib/librte_eal/common/include/generic/rte_cycles.h |  2 +-\n lib/librte_eal/common/include/generic/rte_rwlock.h |  4 +-\n .../common/include/generic/rte_ticketlock.h        | 18 ++++----\n lib/librte_eal/common/include/rte_dev.h            | 18 ++++----\n lib/librte_eal/common/include/rte_eal.h            | 12 ++---\n lib/librte_eal/common/include/rte_fbarray.h        | 52 +++++++++++-----------\n lib/librte_eal/common/include/rte_interrupts.h     |  2 +-\n lib/librte_eal/common/include/rte_malloc.h         | 20 ++++-----\n lib/librte_eal/common/include/rte_memory.h         | 42 ++++++++---------\n lib/librte_eal/common/include/rte_service.h        |  6 +--\n lib/librte_ethdev/rte_ethdev.h                     | 24 +++++-----\n lib/librte_ethdev/rte_ethdev_driver.h              | 10 ++---\n lib/librte_ethdev/rte_flow_driver.h                |  2 +-\n lib/librte_ethdev/rte_mtr.h                        | 24 +++++-----\n lib/librte_eventdev/rte_event_eth_rx_adapter.h     |  4 +-\n lib/librte_flow_classify/rte_flow_classify.h       | 14 +++---\n lib/librte_hash/rte_hash.h                         |  2 +-\n lib/librte_ip_frag/rte_ip_frag.h                   |  2 +-\n lib/librte_ipsec/rte_ipsec.h                       |  6 +--\n lib/librte_ipsec/rte_ipsec_group.h                 |  4 +-\n lib/librte_ipsec/rte_ipsec_sa.h                    |  8 ++--\n lib/librte_kni/rte_kni.h                           |  2 +-\n lib/librte_mbuf/rte_mbuf.h                         | 15 +++++--\n lib/librte_meter/rte_meter.h                       | 12 ++---\n lib/librte_net/rte_arp.h                           |  2 +-\n lib/librte_net/rte_net.h                           |  2 +-\n lib/librte_pipeline/rte_port_in_action.h           | 16 +++----\n lib/librte_pipeline/rte_table_action.h             | 32 ++++++-------\n lib/librte_power/rte_power_empty_poll.h            | 14 +++---\n lib/librte_rcu/rte_rcu_qsbr.h                      | 26 +++++------\n lib/librte_sched/rte_sched.h                       |  2 +-\n lib/librte_security/rte_security.h                 |  6 +--\n lib/librte_stack/rte_stack.h                       | 14 +++---\n lib/librte_stack/rte_stack_lf.h                    |  4 +-\n lib/librte_stack/rte_stack_std.h                   |  6 +--\n lib/librte_table/rte_table_hash_func.h             | 18 ++++----\n lib/librte_telemetry/rte_telemetry.h               |  6 +--\n lib/librte_telemetry/rte_telemetry_parser.h        |  2 +-\n lib/librte_timer/rte_timer.h                       | 16 +++----\n lib/librte_vhost/rte_vdpa.h                        | 14 +++---\n lib/librte_vhost/rte_vhost.h                       | 22 ++++-----\n lib/librte_vhost/rte_vhost_crypto.h                | 10 ++---\n 56 files changed, 367 insertions(+), 355 deletions(-)",
    "diff": "diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh\nindex 7d61dbe..25e3cc5 100755\n--- a/devtools/checkpatches.sh\n+++ b/devtools/checkpatches.sh\n@@ -95,6 +95,11 @@ check_experimental_tags() { # <patch>\n \t\t\tprint \"Please only put __rte_experimental tags in headers (\"current_file\")\";\n \t\t\tret = 1;\n \t\t}\n+\t\tif ($1 != \"+__rte_experimental\" &&\n+\t\t    ($1 != \"+\" || $2 != \"__rte_experimental\")) {\n+\t\t\tprint \"__rte_experimental must be at the start of functions prototype.\";\n+\t\t\tret = 1;\n+\t\t}\n \t}\n \tEND {\n \t\texit ret;\ndiff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.h b/drivers/net/ixgbe/rte_pmd_ixgbe.h\nindex 84c6884..c0e91c8 100644\n--- a/drivers/net/ixgbe/rte_pmd_ixgbe.h\n+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.h\n@@ -584,7 +584,7 @@ int rte_pmd_ixgbe_bypass_event_store(uint16_t port,\n  *   - (-ENODEV) if *port* invalid.\n  *   - (IXGBE_ERR_SWFW_SYNC) If sw/fw semaphore acquisition failed\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_pmd_ixgbe_mdio_lock(uint16_t port);\n \n /**\n@@ -597,7 +597,7 @@ int rte_pmd_ixgbe_bypass_event_store(uint16_t port,\n  *   - (-ENOTSUP) if hardware doesn't support.\n  *   - (-ENODEV) if *port* invalid.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_pmd_ixgbe_mdio_unlock(uint16_t port);\n \n /**\n@@ -618,7 +618,7 @@ int rte_pmd_ixgbe_bypass_event_store(uint16_t port,\n  *   - (-ENODEV) if *port* invalid.\n  *   - (IXGBE_ERR_PHY) If PHY read command failed\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_pmd_ixgbe_mdio_unlocked_read(uint16_t port, uint32_t reg_addr,\n \t\t\t\t uint32_t dev_type, uint16_t *phy_data);\n \n@@ -641,7 +641,7 @@ int rte_pmd_ixgbe_bypass_event_store(uint16_t port,\n  *   - (-ENODEV) if *port* invalid.\n  *   - (IXGBE_ERR_PHY) If PHY read command failed\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_pmd_ixgbe_mdio_unlocked_write(uint16_t port, uint32_t reg_addr,\n \t\t\t\t  uint32_t dev_type, uint16_t phy_data);\n \n@@ -719,6 +719,6 @@ enum {\n  *   - (-ENODEV) if *port* invalid.\n  *   - (-ENOTSUP) if hardware doesn't support this feature.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_pmd_ixgbe_upd_fctrl_sbp(uint16_t port, int enable);\n #endif /* _PMD_IXGBE_H_ */\ndiff --git a/drivers/net/softnic/rte_eth_softnic.h b/drivers/net/softnic/rte_eth_softnic.h\nindex e8ba2bc..53cd48a 100644\n--- a/drivers/net/softnic/rte_eth_softnic.h\n+++ b/drivers/net/softnic/rte_eth_softnic.h\n@@ -75,7 +75,7 @@\n  * @return\n  *    Zero on success, error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_pmd_softnic_manage(uint16_t port_id);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_bbdev/rte_bbdev.h b/lib/librte_bbdev/rte_bbdev.h\nindex d131692..3775dc4 100644\n--- a/lib/librte_bbdev/rte_bbdev.h\n+++ b/lib/librte_bbdev/rte_bbdev.h\n@@ -55,7 +55,7 @@ enum rte_bbdev_state {\n  * @return\n  *   The total number of usable devices.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_bbdev_count(void);\n \n /**\n@@ -67,7 +67,7 @@ enum rte_bbdev_state {\n  * @return\n  *   true if device ID is valid and device is attached, false otherwise.\n  */\n-bool __rte_experimental\n+__rte_experimental bool\n rte_bbdev_is_valid(uint16_t dev_id);\n \n /**\n@@ -80,7 +80,7 @@ enum rte_bbdev_state {\n  *   - The next device, or\n  *   - RTE_BBDEV_MAX_DEVS if none found\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_bbdev_find_next(uint16_t dev_id);\n \n /** Iterate through all enabled devices */\n@@ -109,7 +109,7 @@ enum rte_bbdev_state {\n  *   - -EBUSY if the identified device has already started\n  *   - -ENOMEM if unable to allocate memory\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);\n \n /**\n@@ -126,7 +126,7 @@ enum rte_bbdev_state {\n  *   - -EBUSY if the identified device has already started\n  *   - -ENOTSUP if the interrupts are not supported by the device\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_intr_enable(uint16_t dev_id);\n \n /** Device queue configuration structure */\n@@ -155,7 +155,7 @@ struct rte_bbdev_queue_conf {\n  *   - EINVAL if the identified queue size or priority are invalid\n  *   - EBUSY if the identified queue or its device have already started\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,\n \t\tconst struct rte_bbdev_queue_conf *conf);\n \n@@ -170,7 +170,7 @@ struct rte_bbdev_queue_conf {\n  *   - 0 on success\n  *   - negative value on failure - as returned from PMD driver\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_start(uint16_t dev_id);\n \n /**\n@@ -183,7 +183,7 @@ struct rte_bbdev_queue_conf {\n  * @return\n  *   - 0 on success\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_stop(uint16_t dev_id);\n \n /**\n@@ -196,7 +196,7 @@ struct rte_bbdev_queue_conf {\n  * @return\n  *   - 0 on success\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_close(uint16_t dev_id);\n \n /**\n@@ -213,7 +213,7 @@ struct rte_bbdev_queue_conf {\n  *   - 0 on success\n  *   - negative value on failure - as returned from PMD driver\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);\n \n /**\n@@ -228,7 +228,7 @@ struct rte_bbdev_queue_conf {\n  *   - 0 on success\n  *   - negative value on failure - as returned from PMD driver\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id);\n \n /** Device statistics. */\n@@ -261,7 +261,7 @@ struct rte_bbdev_stats {\n  *   - 0 on success\n  *   - EINVAL if invalid parameter pointer is provided\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);\n \n /**\n@@ -272,7 +272,7 @@ struct rte_bbdev_stats {\n  * @return\n  *   - 0 on success\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_stats_reset(uint16_t dev_id);\n \n /** Device information supplied by the device's driver */\n@@ -332,7 +332,7 @@ struct rte_bbdev_info {\n  *   - 0 on success\n  *   - EINVAL if invalid parameter pointer is provided\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info);\n \n /** Queue information */\n@@ -358,7 +358,7 @@ struct rte_bbdev_queue_info {\n  *   - 0 on success\n  *   - EINVAL if invalid parameter pointer is provided\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,\n \t\tstruct rte_bbdev_queue_info *queue_info);\n \n@@ -466,7 +466,7 @@ struct __rte_cache_aligned rte_bbdev {\n  *   The number of operations actually enqueued (this is the number of processed\n  *   entries in the @p ops array).\n  */\n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id,\n \t\tstruct rte_bbdev_enc_op **ops, uint16_t num_ops)\n {\n@@ -496,7 +496,7 @@ struct __rte_cache_aligned rte_bbdev {\n  *   The number of operations actually enqueued (this is the number of processed\n  *   entries in the @p ops array).\n  */\n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id,\n \t\tstruct rte_bbdev_dec_op **ops, uint16_t num_ops)\n {\n@@ -526,7 +526,7 @@ struct __rte_cache_aligned rte_bbdev {\n  *   The number of operations actually dequeued (this is the number of entries\n  *   copied into the @p ops array).\n  */\n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id,\n \t\tstruct rte_bbdev_enc_op **ops, uint16_t num_ops)\n {\n@@ -557,7 +557,7 @@ struct __rte_cache_aligned rte_bbdev {\n  *   copied into the @p ops array).\n  */\n \n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id,\n \t\tstruct rte_bbdev_dec_op **ops, uint16_t num_ops)\n {\n@@ -608,7 +608,7 @@ typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,\n  * @return\n  *   Zero on success, negative value on failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,\n \t\trte_bbdev_cb_fn cb_fn, void *cb_arg);\n \n@@ -631,7 +631,7 @@ typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,\n  *   - EINVAL if invalid parameter pointer is provided\n  *   - EAGAIN if the provided callback pointer does not exist\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,\n \t\trte_bbdev_cb_fn cb_fn, void *cb_arg);\n \n@@ -651,7 +651,7 @@ typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,\n  *   - 0 on success\n  *   - negative value on failure - as returned from PMD driver\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);\n \n /**\n@@ -667,7 +667,7 @@ typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,\n  *   - 0 on success\n  *   - negative value on failure - as returned from PMD driver\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);\n \n /**\n@@ -694,7 +694,7 @@ typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,\n  *   - ENOTSUP if interrupts are not supported by the identified device\n  *   - negative value on failure - as returned from PMD driver\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,\n \t\tvoid *data);\n \ndiff --git a/lib/librte_bbdev/rte_bbdev_op.h b/lib/librte_bbdev/rte_bbdev_op.h\nindex 6be53f5..a36625a 100644\n--- a/lib/librte_bbdev/rte_bbdev_op.h\n+++ b/lib/librte_bbdev/rte_bbdev_op.h\n@@ -461,7 +461,7 @@ struct rte_bbdev_op_pool_private {\n  *   Operation type as string or NULL if op_type is invalid\n  *\n  */\n-const char* __rte_experimental\n+__rte_experimental const char*\n rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type);\n \n /**\n@@ -484,7 +484,7 @@ struct rte_bbdev_op_pool_private {\n  *   - Pointer to a mempool on success,\n  *   - NULL pointer on failure.\n  */\n-struct rte_mempool * __rte_experimental\n+__rte_experimental struct rte_mempool *\n rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type,\n \t\tunsigned int num_elements, unsigned int cache_size,\n \t\tint socket_id);\n@@ -503,7 +503,7 @@ struct rte_mempool * __rte_experimental\n  *   - 0 on success\n  *   - EINVAL if invalid mempool is provided\n  */\n-static inline int __rte_experimental\n+__rte_experimental static inline int\n rte_bbdev_enc_op_alloc_bulk(struct rte_mempool *mempool,\n \t\tstruct rte_bbdev_enc_op **ops, uint16_t num_ops)\n {\n@@ -538,7 +538,7 @@ struct rte_mempool * __rte_experimental\n  *   - 0 on success\n  *   - EINVAL if invalid mempool is provided\n  */\n-static inline int __rte_experimental\n+__rte_experimental static inline int\n rte_bbdev_dec_op_alloc_bulk(struct rte_mempool *mempool,\n \t\tstruct rte_bbdev_dec_op **ops, uint16_t num_ops)\n {\n@@ -569,7 +569,7 @@ struct rte_mempool * __rte_experimental\n  * @param num_ops\n  *   Number of structures\n  */\n-static inline void __rte_experimental\n+__rte_experimental static inline void\n rte_bbdev_dec_op_free_bulk(struct rte_bbdev_dec_op **ops, unsigned int num_ops)\n {\n \tif (num_ops > 0)\n@@ -586,7 +586,7 @@ struct rte_mempool * __rte_experimental\n  * @param num_ops\n  *   Number of structures\n  */\n-static inline void __rte_experimental\n+__rte_experimental static inline void\n rte_bbdev_enc_op_free_bulk(struct rte_bbdev_enc_op **ops, unsigned int num_ops)\n {\n \tif (num_ops > 0)\ndiff --git a/lib/librte_bbdev/rte_bbdev_pmd.h b/lib/librte_bbdev/rte_bbdev_pmd.h\nindex db9a04c..b5aa267 100644\n--- a/lib/librte_bbdev/rte_bbdev_pmd.h\n+++ b/lib/librte_bbdev/rte_bbdev_pmd.h\n@@ -43,7 +43,7 @@\n  * @return\n  *   - Slot in the rte_bbdev array for a new device;\n  */\n-struct rte_bbdev * __rte_experimental\n+__rte_experimental struct rte_bbdev *\n rte_bbdev_allocate(const char *name);\n \n /**\n@@ -55,7 +55,7 @@ struct rte_bbdev * __rte_experimental\n  * @return\n  *   - 0 on success, negative on error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bbdev_release(struct rte_bbdev *bbdev);\n \n /**\n@@ -69,7 +69,7 @@ struct rte_bbdev * __rte_experimental\n  *   - NULL otherwise\n  *\n  */\n-struct rte_bbdev * __rte_experimental\n+__rte_experimental struct rte_bbdev *\n rte_bbdev_get_named_dev(const char *name);\n \n /**\n@@ -187,7 +187,7 @@ struct rte_bbdev_ops {\n  * @param ret_param\n  *   To pass data back to user application.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_bbdev_pmd_callback_process(struct rte_bbdev *dev,\n \tenum rte_bbdev_event_type event, void *ret_param);\n \ndiff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h\nindex c8b9601..2f275ed 100644\n--- a/lib/librte_bpf/rte_bpf.h\n+++ b/lib/librte_bpf/rte_bpf.h\n@@ -113,7 +113,7 @@ struct rte_bpf_jit {\n  * @param bpf\n  *   BPF handle to destroy.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_bpf_destroy(struct rte_bpf *bpf);\n \n /**\n@@ -128,7 +128,7 @@ struct rte_bpf_jit {\n  *   - EINVAL - invalid parameter passed to function\n  *   - ENOMEM - can't reserve enough memory\n  */\n-struct rte_bpf * __rte_experimental\n+__rte_experimental struct rte_bpf *\n rte_bpf_load(const struct rte_bpf_prm *prm);\n \n /**\n@@ -151,7 +151,7 @@ struct rte_bpf * __rte_experimental\n  *   - EINVAL - invalid parameter passed to function\n  *   - ENOMEM - can't reserve enough memory\n  */\n-struct rte_bpf * __rte_experimental\n+__rte_experimental struct rte_bpf *\n rte_bpf_elf_load(const struct rte_bpf_prm *prm, const char *fname,\n \t\tconst char *sname);\n /**\n@@ -164,7 +164,7 @@ struct rte_bpf * __rte_experimental\n  * @return\n  *   BPF execution return value.\n  */\n-uint64_t __rte_experimental\n+__rte_experimental uint64_t\n rte_bpf_exec(const struct rte_bpf *bpf, void *ctx);\n \n /**\n@@ -181,7 +181,7 @@ struct rte_bpf * __rte_experimental\n  * @return\n  *   number of successfully processed inputs.\n  */\n-uint32_t __rte_experimental\n+__rte_experimental uint32_t\n rte_bpf_exec_burst(const struct rte_bpf *bpf, void *ctx[], uint64_t rc[],\n \t\tuint32_t num);\n \n@@ -196,7 +196,7 @@ struct rte_bpf * __rte_experimental\n  *   - -EINVAL if the parameters are invalid.\n  *   - Zero if operation completed successfully.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bpf_get_jit(const struct rte_bpf *bpf, struct rte_bpf_jit *jit);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_bpf/rte_bpf_ethdev.h b/lib/librte_bpf/rte_bpf_ethdev.h\nindex 1943372..0a63ac2 100644\n--- a/lib/librte_bpf/rte_bpf_ethdev.h\n+++ b/lib/librte_bpf/rte_bpf_ethdev.h\n@@ -45,7 +45,7 @@ enum {\n  * @param queue\n  *   The identifier of the RX queue on the given port\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_bpf_eth_rx_unload(uint16_t port, uint16_t queue);\n \n /**\n@@ -57,7 +57,7 @@ enum {\n  * @param queue\n  *   The identifier of the TX queue on the given port\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_bpf_eth_tx_unload(uint16_t port, uint16_t queue);\n \n /**\n@@ -80,7 +80,7 @@ enum {\n  * @return\n  *   Zero on successful completion or negative error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bpf_eth_rx_elf_load(uint16_t port, uint16_t queue,\n \tconst struct rte_bpf_prm *prm, const char *fname, const char *sname,\n \tuint32_t flags);\n@@ -105,7 +105,7 @@ enum {\n  * @return\n  *   Zero on successful completion or negative error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_bpf_eth_tx_elf_load(uint16_t port, uint16_t queue,\n \tconst struct rte_bpf_prm *prm, const char *fname, const char *sname,\n \tuint32_t flags);\ndiff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h\nindex 67423bd..a4f35e4 100644\n--- a/lib/librte_compressdev/rte_comp.h\n+++ b/lib/librte_compressdev/rte_comp.h\n@@ -420,7 +420,7 @@ struct rte_comp_op {\n  *  - On success pointer to mempool\n  *  - On failure NULL\n  */\n-struct rte_mempool * __rte_experimental\n+__rte_experimental struct rte_mempool *\n rte_comp_op_pool_create(const char *name,\n \t\tunsigned int nb_elts, unsigned int cache_size,\n \t\tuint16_t user_size, int socket_id);\n@@ -435,7 +435,7 @@ struct rte_mempool * __rte_experimental\n  * - On success returns a valid rte_comp_op structure\n  * - On failure returns NULL\n  */\n-struct rte_comp_op * __rte_experimental\n+__rte_experimental struct rte_comp_op *\n rte_comp_op_alloc(struct rte_mempool *mempool);\n \n /**\n@@ -451,7 +451,7 @@ struct rte_comp_op * __rte_experimental\n  *   - nb_ops: Success, the nb_ops requested was allocated\n  *   - 0: Not enough entries in the mempool; no ops are retrieved.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_comp_op_bulk_alloc(struct rte_mempool *mempool,\n \t\tstruct rte_comp_op **ops, uint16_t nb_ops);\n \n@@ -463,7 +463,7 @@ struct rte_comp_op * __rte_experimental\n  * @param op\n  *   Compress operation\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_comp_op_free(struct rte_comp_op *op);\n \n /**\n@@ -477,7 +477,7 @@ struct rte_comp_op * __rte_experimental\n  * @param nb_ops\n  *   Number of operations to free\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops);\n \n /**\n@@ -489,7 +489,7 @@ struct rte_comp_op * __rte_experimental\n  * @return\n  *   The name of this flag, or NULL if it's not a valid feature flag.\n  */\n-const char * __rte_experimental\n+__rte_experimental const char *\n rte_comp_get_feature_name(uint64_t flag);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h\nindex d3c0000..c3d7797 100644\n--- a/lib/librte_compressdev/rte_compressdev.h\n+++ b/lib/librte_compressdev/rte_compressdev.h\n@@ -50,7 +50,7 @@ struct rte_compressdev_capabilities {\n #define RTE_COMP_END_OF_CAPABILITIES_LIST() \\\n \t{ RTE_COMP_ALGO_UNSPECIFIED }\n \n-const struct rte_compressdev_capabilities * __rte_experimental\n+__rte_experimental const struct rte_compressdev_capabilities *\n rte_compressdev_capability_get(uint8_t dev_id,\n \t\t\tenum rte_comp_algorithm algo);\n \n@@ -89,7 +89,7 @@ struct rte_compressdev_capabilities {\n  * @return\n  *   The name of this flag, or NULL if it's not a valid feature flag.\n  */\n-const char * __rte_experimental\n+__rte_experimental const char *\n rte_compressdev_get_feature_name(uint64_t flag);\n \n /**  comp device information */\n@@ -127,7 +127,7 @@ struct rte_compressdev_stats {\n  *   - Returns compress device identifier on success.\n  *   - Return -1 on failure to find named compress device.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_get_dev_id(const char *name);\n \n /**\n@@ -139,7 +139,7 @@ struct rte_compressdev_stats {\n  *   - Returns compress device name.\n  *   - Returns NULL if compress device is not present.\n  */\n-const char * __rte_experimental\n+__rte_experimental const char *\n rte_compressdev_name_get(uint8_t dev_id);\n \n /**\n@@ -149,7 +149,7 @@ struct rte_compressdev_stats {\n  * @return\n  *   - The total number of usable compress devices.\n  */\n-uint8_t __rte_experimental\n+__rte_experimental uint8_t\n rte_compressdev_count(void);\n \n /**\n@@ -166,7 +166,7 @@ struct rte_compressdev_stats {\n  * @return\n  *   Returns number of attached compress devices.\n  */\n-uint8_t __rte_experimental\n+__rte_experimental uint8_t\n rte_compressdev_devices_get(const char *driver_name, uint8_t *devices,\n \t\tuint8_t nb_devices);\n \n@@ -180,7 +180,7 @@ struct rte_compressdev_stats {\n  *   a default of zero if the socket could not be determined.\n  *   -1 if returned is the dev_id value is out of range.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_socket_id(uint8_t dev_id);\n \n /** Compress device configuration structure */\n@@ -210,7 +210,7 @@ struct rte_compressdev_config {\n  *   - 0: Success, device configured.\n  *   - <0: Error code returned by the driver configuration function.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_configure(uint8_t dev_id,\n \t\t\tstruct rte_compressdev_config *config);\n \n@@ -228,7 +228,7 @@ struct rte_compressdev_config {\n  *   - 0: Success, device started.\n  *   - <0: Error code of the driver device start function.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_start(uint8_t dev_id);\n \n /**\n@@ -238,7 +238,7 @@ struct rte_compressdev_config {\n  * @param dev_id\n  *   Compress device identifier\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_compressdev_stop(uint8_t dev_id);\n \n /**\n@@ -255,7 +255,7 @@ struct rte_compressdev_config {\n  *  - 0 on successfully closing device\n  *  - <0 on failure to close device\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_close(uint8_t dev_id);\n \n /**\n@@ -281,7 +281,7 @@ struct rte_compressdev_config {\n  *   - 0: Success, queue pair correctly set up.\n  *   - <0: Queue pair configuration failed\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_queue_pair_setup(uint8_t dev_id, uint16_t queue_pair_id,\n \t\tuint32_t max_inflight_ops, int socket_id);\n \n@@ -293,7 +293,7 @@ struct rte_compressdev_config {\n  * @return\n  *   - The number of configured queue pairs.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_compressdev_queue_pair_count(uint8_t dev_id);\n \n \n@@ -310,7 +310,7 @@ struct rte_compressdev_config {\n  *   - Zero if successful.\n  *   - Non-zero otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_stats_get(uint8_t dev_id, struct rte_compressdev_stats *stats);\n \n /**\n@@ -319,7 +319,7 @@ struct rte_compressdev_config {\n  * @param dev_id\n  *   The identifier of the device.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_compressdev_stats_reset(uint8_t dev_id);\n \n /**\n@@ -336,7 +336,7 @@ struct rte_compressdev_config {\n  * The element after the last valid element has it's op field set to\n  * RTE_COMP_ALGO_LIST_END.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_compressdev_info_get(uint8_t dev_id, struct rte_compressdev_info *dev_info);\n \n /**\n@@ -393,7 +393,7 @@ struct rte_compressdev_config {\n  *   of pointers to *rte_comp_op* structures effectively supplied to the\n  *   *ops* array.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_compressdev_dequeue_burst(uint8_t dev_id, uint16_t qp_id,\n \t\tstruct rte_comp_op **ops, uint16_t nb_ops);\n \n@@ -447,7 +447,7 @@ struct rte_compressdev_config {\n  *   comp devices queue is full or if invalid parameters are specified in\n  *   a *rte_comp_op*.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_compressdev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,\n \t\tstruct rte_comp_op **ops, uint16_t nb_ops);\n \n@@ -475,7 +475,7 @@ struct rte_compressdev_config {\n  *  - Returns -ENOMEM if the private stream could not be allocated.\n  *\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_stream_create(uint8_t dev_id,\n \t\tconst struct rte_comp_xform *xform,\n \t\tvoid **stream);\n@@ -496,7 +496,7 @@ struct rte_compressdev_config {\n  *  - Returns -ENOTSUP if comp device does not support STATEFUL operations.\n  *  - Returns -EBUSY if can't free stream as there are inflight operations\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_stream_free(uint8_t dev_id, void *stream);\n \n /**\n@@ -522,7 +522,7 @@ struct rte_compressdev_config {\n  *  - Returns -ENOTSUP if comp device does not support the comp transform.\n  *  - Returns -ENOMEM if the private_xform could not be allocated.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_private_xform_create(uint8_t dev_id,\n \t\tconst struct rte_comp_xform *xform,\n \t\tvoid **private_xform);\n@@ -543,7 +543,7 @@ struct rte_compressdev_config {\n  *  - <0 in error cases\n  *  - Returns -EINVAL if input parameters are invalid.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_private_xform_free(uint8_t dev_id, void *private_xform);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_compressdev/rte_compressdev_pmd.h b/lib/librte_compressdev/rte_compressdev_pmd.h\nindex 043353c..7d947e0 100644\n--- a/lib/librte_compressdev/rte_compressdev_pmd.h\n+++ b/lib/librte_compressdev/rte_compressdev_pmd.h\n@@ -59,7 +59,7 @@ struct rte_compressdev_global {\n  * @return\n  *   - The rte_compressdev structure pointer for the given device identifier.\n  */\n-struct rte_compressdev * __rte_experimental\n+__rte_experimental struct rte_compressdev *\n rte_compressdev_pmd_get_named_dev(const char *name);\n \n /**\n@@ -299,7 +299,7 @@ struct rte_compressdev_ops {\n  * @return\n  *   - Slot in the rte_dev_devices array for a new device;\n  */\n-struct rte_compressdev * __rte_experimental\n+__rte_experimental struct rte_compressdev *\n rte_compressdev_pmd_allocate(const char *name, int socket_id);\n \n /**\n@@ -314,7 +314,7 @@ struct rte_compressdev * __rte_experimental\n  * @return\n  *   - 0 on success, negative on error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_pmd_release_device(struct rte_compressdev *dev);\n \n \n@@ -336,7 +336,7 @@ struct rte_compressdev * __rte_experimental\n  *  - 0 on success\n  *  - errno on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_pmd_parse_input_args(\n \t\tstruct rte_compressdev_pmd_init_params *params,\n \t\tconst char *args);\n@@ -357,7 +357,7 @@ struct rte_compressdev * __rte_experimental\n  *  - comp device instance on success\n  *  - NULL on creation failure\n  */\n-struct rte_compressdev * __rte_experimental\n+__rte_experimental struct rte_compressdev *\n rte_compressdev_pmd_create(const char *name,\n \t\tstruct rte_device *device,\n \t\tsize_t private_data_size,\n@@ -375,7 +375,7 @@ struct rte_compressdev * __rte_experimental\n  *  - 0 on success\n  *  - errno on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_compressdev_pmd_destroy(struct rte_compressdev *dev);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_cryptodev/rte_cryptodev.h b/lib/librte_cryptodev/rte_cryptodev.h\nindex 2d4f6d7..09a0468 100644\n--- a/lib/librte_cryptodev/rte_cryptodev.h\n+++ b/lib/librte_cryptodev/rte_cryptodev.h\n@@ -230,7 +230,7 @@ struct rte_cryptodev_asym_capability_idx {\n  *   - Return description of the asymmetric crypto capability if exist.\n  *   - Return NULL if the capability not exist.\n  */\n-const struct rte_cryptodev_asymmetric_xform_capability * __rte_experimental\n+__rte_experimental const struct rte_cryptodev_asymmetric_xform_capability *\n rte_cryptodev_asym_capability_get(uint8_t dev_id,\n \t\tconst struct rte_cryptodev_asym_capability_idx *idx);\n \n@@ -299,7 +299,7 @@ struct rte_cryptodev_asym_capability_idx {\n  *   - Return 1 if the op type is supported\n  *   - Return 0 if unsupported\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_asym_xform_capability_check_optype(\n \tconst struct rte_cryptodev_asymmetric_xform_capability *capability,\n \t\tenum rte_crypto_asym_op_type op_type);\n@@ -314,7 +314,7 @@ struct rte_cryptodev_asym_capability_idx {\n  *   - Return 0 if the parameters are in range of the capability.\n  *   - Return -1 if the parameters are out of range of the capability.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_asym_xform_capability_check_modlen(\n \tconst struct rte_cryptodev_asymmetric_xform_capability *capability,\n \t\tuint16_t modlen);\n@@ -375,7 +375,7 @@ struct rte_cryptodev_asym_capability_idx {\n  * - Return -1 if string is not valid\n  * - Return 0 if the string is valid\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum,\n \t\tconst char *xform_string);\n \n@@ -1002,7 +1002,7 @@ struct rte_cryptodev_asym_session {\n  *  - On success return size of the session\n  *  - On failure returns 0\n  */\n-struct rte_mempool * __rte_experimental\n+__rte_experimental struct rte_mempool *\n rte_cryptodev_sym_session_pool_create(const char *name, uint32_t nb_elts,\n \tuint32_t elt_size, uint32_t cache_size, uint16_t priv_size,\n \tint socket_id);\n@@ -1028,7 +1028,7 @@ struct rte_cryptodev_sym_session *\n  *  - On success return pointer to asym-session\n  *  - On failure returns NULL\n  */\n-struct rte_cryptodev_asym_session * __rte_experimental\n+__rte_experimental struct rte_cryptodev_asym_session *\n rte_cryptodev_asym_session_create(struct rte_mempool *mempool);\n \n /**\n@@ -1058,7 +1058,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *  - -EINVAL if session is NULL.\n  *  - -EBUSY if not all device private data has been freed.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_asym_session_free(struct rte_cryptodev_asym_session *sess);\n \n /**\n@@ -1098,7 +1098,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *  - -ENOTSUP if crypto device does not support the crypto transform.\n  *  - -ENOMEM if the private session could not be allocated.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_asym_session_init(uint8_t dev_id,\n \t\t\tstruct rte_cryptodev_asym_session *sess,\n \t\t\tstruct rte_crypto_asym_xform *xforms,\n@@ -1132,7 +1132,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *  - 0 if successful.\n  *  - -EINVAL if device is invalid or session is NULL.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_asym_session_clear(uint8_t dev_id,\n \t\t\tstruct rte_cryptodev_asym_session *sess);\n \n@@ -1157,7 +1157,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *   the private data size defined within sess.\n  *   - If sess is NULL, return 0.\n  */\n-unsigned int __rte_experimental\n+__rte_experimental unsigned int\n rte_cryptodev_sym_get_existing_header_session_size(\n \t\tstruct rte_cryptodev_sym_session *sess);\n \n@@ -1167,7 +1167,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  * @return\n  *   Size of the asymmetric header session.\n  */\n-unsigned int __rte_experimental\n+__rte_experimental unsigned int\n rte_cryptodev_asym_get_header_session_size(void);\n \n /**\n@@ -1194,7 +1194,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *   - Size of the asymmetric private data, if successful\n  *   - 0 if device is invalid or does not have private session\n  */\n-unsigned int __rte_experimental\n+__rte_experimental unsigned int\n rte_cryptodev_asym_get_private_session_size(uint8_t dev_id);\n \n /**\n@@ -1229,7 +1229,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *  - On success, zero.\n  *  - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_cryptodev_sym_session_set_user_data(\n \t\t\t\t\tstruct rte_cryptodev_sym_session *sess,\n \t\t\t\t\tvoid *data,\n@@ -1245,7 +1245,7 @@ struct rte_cryptodev_asym_session * __rte_experimental\n  *  - On success return pointer to user data.\n  *  - On failure returns NULL.\n  */\n-void * __rte_experimental\n+__rte_experimental void *\n rte_cryptodev_sym_session_get_user_data(\n \t\t\t\t\tstruct rte_cryptodev_sym_session *sess);\n \ndiff --git a/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h b/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h\nindex 6232c57..4943a98 100644\n--- a/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h\n+++ b/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h\n@@ -224,7 +224,7 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)\n \t};\n } __rte_aligned(16) rte_int128_t;\n \n-static inline int __rte_experimental\n+__rte_experimental static inline int\n rte_atomic128_cmp_exchange(rte_int128_t *dst,\n \t\t\t   rte_int128_t *exp,\n \t\t\t   const rte_int128_t *src,\ndiff --git a/lib/librte_eal/common/include/generic/rte_atomic.h b/lib/librte_eal/common/include/generic/rte_atomic.h\nindex 9958543..1eb55d9 100644\n--- a/lib/librte_eal/common/include/generic/rte_atomic.h\n+++ b/lib/librte_eal/common/include/generic/rte_atomic.h\n@@ -1121,7 +1121,7 @@ static inline void rte_atomic64_clear(rte_atomic64_t *v)\n  * @return\n  *   Non-zero on success; 0 on failure.\n  */\n-static inline int __rte_experimental\n+__rte_experimental static inline int\n rte_atomic128_cmp_exchange(rte_int128_t *dst,\n \t\t\t   rte_int128_t *exp,\n \t\t\t   const rte_int128_t *src,\ndiff --git a/lib/librte_eal/common/include/generic/rte_cycles.h b/lib/librte_eal/common/include/generic/rte_cycles.h\nindex d318b91..4c7e3e0 100644\n--- a/lib/librte_eal/common/include/generic/rte_cycles.h\n+++ b/lib/librte_eal/common/include/generic/rte_cycles.h\n@@ -165,7 +165,7 @@ enum timer_source {\n  * @param us\n  *   Number of microseconds to wait.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_delay_us_sleep(unsigned int us);\n \n /**\ndiff --git a/lib/librte_eal/common/include/generic/rte_rwlock.h b/lib/librte_eal/common/include/generic/rte_rwlock.h\nindex 31608fa..4139a04 100644\n--- a/lib/librte_eal/common/include/generic/rte_rwlock.h\n+++ b/lib/librte_eal/common/include/generic/rte_rwlock.h\n@@ -88,7 +88,7 @@\n  *   - -EBUSY if lock could not be acquired for reading because a\n  *     writer holds the lock\n  */\n-static inline __rte_experimental int\n+__rte_experimental static inline int\n rte_rwlock_read_trylock(rte_rwlock_t *rwl)\n {\n \tint32_t x;\n@@ -131,7 +131,7 @@\n  *   - -EBUSY if lock could not be acquired for writing because\n  *     it was already locked for reading or writing\n  */\n-static inline __rte_experimental int\n+__rte_experimental static inline int\n rte_rwlock_write_trylock(rte_rwlock_t *rwl)\n {\n \tint32_t x;\ndiff --git a/lib/librte_eal/common/include/generic/rte_ticketlock.h b/lib/librte_eal/common/include/generic/rte_ticketlock.h\nindex 191146f..d93d387 100644\n--- a/lib/librte_eal/common/include/generic/rte_ticketlock.h\n+++ b/lib/librte_eal/common/include/generic/rte_ticketlock.h\n@@ -48,7 +48,7 @@\n  * @param tl\n  *   A pointer to the ticketlock.\n  */\n-static inline __rte_experimental void\n+__rte_experimental static inline void\n rte_ticketlock_init(rte_ticketlock_t *tl)\n {\n \t__atomic_store_n(&tl->tickets, 0, __ATOMIC_RELAXED);\n@@ -60,7 +60,7 @@\n  * @param tl\n  *   A pointer to the ticketlock.\n  */\n-static inline __rte_experimental void\n+__rte_experimental static inline void\n rte_ticketlock_lock(rte_ticketlock_t *tl)\n {\n \tuint16_t me = __atomic_fetch_add(&tl->s.next, 1, __ATOMIC_RELAXED);\n@@ -74,7 +74,7 @@\n  * @param tl\n  *   A pointer to the ticketlock.\n  */\n-static inline __rte_experimental void\n+__rte_experimental static inline void\n rte_ticketlock_unlock(rte_ticketlock_t *tl)\n {\n \tuint16_t i = __atomic_load_n(&tl->s.current, __ATOMIC_RELAXED);\n@@ -89,7 +89,7 @@\n  * @return\n  *   1 if the lock is successfully taken; 0 otherwise.\n  */\n-static inline __rte_experimental int\n+__rte_experimental static inline int\n rte_ticketlock_trylock(rte_ticketlock_t *tl)\n {\n \trte_ticketlock_t old, new;\n@@ -113,7 +113,7 @@\n  * @return\n  *   1 if the lock is currently taken; 0 otherwise.\n  */\n-static inline __rte_experimental int\n+__rte_experimental static inline int\n rte_ticketlock_is_locked(rte_ticketlock_t *tl)\n {\n \trte_ticketlock_t tic;\n@@ -144,7 +144,7 @@\n  * @param tlr\n  *   A pointer to the recursive ticketlock.\n  */\n-static inline __rte_experimental void\n+__rte_experimental static inline void\n rte_ticketlock_recursive_init(rte_ticketlock_recursive_t *tlr)\n {\n \trte_ticketlock_init(&tlr->tl);\n@@ -158,7 +158,7 @@\n  * @param tlr\n  *   A pointer to the recursive ticketlock.\n  */\n-static inline __rte_experimental void\n+__rte_experimental static inline void\n rte_ticketlock_recursive_lock(rte_ticketlock_recursive_t *tlr)\n {\n \tint id = rte_gettid();\n@@ -176,7 +176,7 @@\n  * @param tlr\n  *   A pointer to the recursive ticketlock.\n  */\n-static inline __rte_experimental void\n+__rte_experimental static inline void\n rte_ticketlock_recursive_unlock(rte_ticketlock_recursive_t *tlr)\n {\n \tif (--(tlr->count) == 0) {\n@@ -194,7 +194,7 @@\n  * @return\n  *   1 if the lock is successfully taken; 0 otherwise.\n  */\n-static inline __rte_experimental int\n+__rte_experimental static inline int\n rte_ticketlock_recursive_trylock(rte_ticketlock_recursive_t *tlr)\n {\n \tint id = rte_gettid();\ndiff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h\nindex a17023d..6c3b8be 100644\n--- a/lib/librte_eal/common/include/rte_dev.h\n+++ b/lib/librte_eal/common/include/rte_dev.h\n@@ -363,7 +363,7 @@ struct rte_device *\n  *  - On success, zero.\n  *  - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_event_callback_register(const char *device_name,\n \t\t\t\trte_dev_event_cb_fn cb_fn,\n \t\t\t\tvoid *cb_arg);\n@@ -387,7 +387,7 @@ struct rte_device *\n  *  - On success, return the number of callback entities removed.\n  *  - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_event_callback_unregister(const char *device_name,\n \t\t\t\t  rte_dev_event_cb_fn cb_fn,\n \t\t\t\t  void *cb_arg);\n@@ -404,7 +404,7 @@ struct rte_device *\n  * @param event\n  *  the device event type.\n  */\n-void  __rte_experimental\n+__rte_experimental void\n rte_dev_event_callback_process(const char *device_name,\n \t\t\t       enum rte_dev_event_type event);\n \n@@ -418,7 +418,7 @@ struct rte_device *\n  *   - On success, zero.\n  *   - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_event_monitor_start(void);\n \n /**\n@@ -431,7 +431,7 @@ struct rte_device *\n  *   - On success, zero.\n  *   - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_event_monitor_stop(void);\n \n /**\n@@ -444,7 +444,7 @@ struct rte_device *\n  *   - On success, zero.\n  *   - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_hotplug_handle_enable(void);\n \n /**\n@@ -457,7 +457,7 @@ struct rte_device *\n  *   - On success, zero.\n  *   - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_hotplug_handle_disable(void);\n \n /**\n@@ -480,7 +480,7 @@ struct rte_device *\n  *\t0 if mapping was successful.\n  *\tNegative value and rte_errno is set otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_dma_map(struct rte_device *dev, void *addr, uint64_t iova, size_t len);\n \n /**\n@@ -503,7 +503,7 @@ struct rte_device *\n  *\t0 if un-mapping was successful.\n  *\tNegative value and rte_errno is set otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova,\n \t\t  size_t len);\n \ndiff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h\nindex 27808a3..1500ded 100644\n--- a/lib/librte_eal/common/include/rte_eal.h\n+++ b/lib/librte_eal/common/include/rte_eal.h\n@@ -275,7 +275,7 @@ typedef int (*rte_mp_async_reply_t)(const struct rte_mp_msg *request,\n  *  - 0 on success.\n  *  - (<0) on failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mp_action_register(const char *name, rte_mp_t action);\n \n /**\n@@ -295,7 +295,7 @@ typedef int (*rte_mp_async_reply_t)(const struct rte_mp_msg *request,\n  *   The name argument plays as the nonredundant key to find the action.\n  *\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_mp_action_unregister(const char *name);\n \n /**\n@@ -314,7 +314,7 @@ typedef int (*rte_mp_async_reply_t)(const struct rte_mp_msg *request,\n  *  - On success, return 0.\n  *  - On failure, return -1, and the reason will be stored in rte_errno.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mp_sendmsg(struct rte_mp_msg *msg);\n \n /**\n@@ -348,7 +348,7 @@ typedef int (*rte_mp_async_reply_t)(const struct rte_mp_msg *request,\n  *  - On success, return 0.\n  *  - On failure, return -1, and the reason will be stored in rte_errno.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,\n \t       const struct timespec *ts);\n \n@@ -377,7 +377,7 @@ typedef int (*rte_mp_async_reply_t)(const struct rte_mp_msg *request,\n  *  - On success, return 0.\n  *  - On failure, return -1, and the reason will be stored in rte_errno.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mp_request_async(struct rte_mp_msg *req, const struct timespec *ts,\n \t\trte_mp_async_reply_t clb);\n \n@@ -405,7 +405,7 @@ typedef int (*rte_mp_async_reply_t)(const struct rte_mp_msg *request,\n  *  - On success, return 0.\n  *  - On failure, return -1, and the reason will be stored in rte_errno.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mp_reply(struct rte_mp_msg *msg, const char *peer);\n \n /**\ndiff --git a/lib/librte_eal/common/include/rte_fbarray.h b/lib/librte_eal/common/include/rte_fbarray.h\nindex 33841ca..57fb204 100644\n--- a/lib/librte_eal/common/include/rte_fbarray.h\n+++ b/lib/librte_eal/common/include/rte_fbarray.h\n@@ -75,7 +75,7 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,\n \t\tunsigned int elt_sz);\n \n@@ -97,7 +97,7 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_attach(struct rte_fbarray *arr);\n \n \n@@ -118,7 +118,7 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_destroy(struct rte_fbarray *arr);\n \n \n@@ -136,7 +136,7 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_detach(struct rte_fbarray *arr);\n \n \n@@ -153,7 +153,7 @@ struct rte_fbarray {\n  *  - non-NULL pointer on success.\n  *  - NULL on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-void * __rte_experimental\n+__rte_experimental void *\n rte_fbarray_get(const struct rte_fbarray *arr, unsigned int idx);\n \n \n@@ -170,7 +170,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_idx(const struct rte_fbarray *arr, const void *elt);\n \n \n@@ -187,7 +187,7 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_set_used(struct rte_fbarray *arr, unsigned int idx);\n \n \n@@ -204,7 +204,7 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_set_free(struct rte_fbarray *arr, unsigned int idx);\n \n \n@@ -222,7 +222,7 @@ struct rte_fbarray {\n  *  - 0 if element is unused.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_is_used(struct rte_fbarray *arr, unsigned int idx);\n \n \n@@ -239,7 +239,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_next_free(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -256,7 +256,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_next_used(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -276,7 +276,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_next_n_free(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n \n@@ -297,7 +297,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_next_n_used(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n \n@@ -315,7 +315,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_contig_free(struct rte_fbarray *arr,\n \t\tunsigned int start);\n \n@@ -333,7 +333,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_contig_used(struct rte_fbarray *arr, unsigned int start);\n \n /**\n@@ -349,7 +349,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_prev_free(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -366,7 +366,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_prev_used(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -387,7 +387,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_prev_n_free(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n \n@@ -409,7 +409,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_prev_n_used(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n \n@@ -428,7 +428,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_rev_contig_free(struct rte_fbarray *arr,\n \t\tunsigned int start);\n \n@@ -447,7 +447,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_rev_contig_used(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -464,7 +464,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_biggest_free(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -481,7 +481,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_biggest_used(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -499,7 +499,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_rev_biggest_free(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -517,7 +517,7 @@ struct rte_fbarray {\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_fbarray_find_rev_biggest_used(struct rte_fbarray *arr, unsigned int start);\n \n \n@@ -530,7 +530,7 @@ struct rte_fbarray {\n  * @param f\n  *   File object to dump information into.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_fbarray_dump_metadata(struct rte_fbarray *arr, FILE *f);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_eal/common/include/rte_interrupts.h b/lib/librte_eal/common/include/rte_interrupts.h\nindex 225dae2..109e5a3 100644\n--- a/lib/librte_eal/common/include/rte_interrupts.h\n+++ b/lib/librte_eal/common/include/rte_interrupts.h\n@@ -88,7 +88,7 @@ int rte_intr_callback_unregister(const struct rte_intr_handle *intr_handle,\n  *  - On success, return the number of callback entities marked for remove.\n  *  - On failure, a negative value.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_intr_callback_unregister_pending(const struct rte_intr_handle *intr_handle,\n \t\t\t\trte_intr_callback_fn cb_fn, void *cb_arg,\n \t\t\t\trte_intr_unregister_callback_fn ucb_fn);\ndiff --git a/lib/librte_eal/common/include/rte_malloc.h b/lib/librte_eal/common/include/rte_malloc.h\nindex 5ff1a39..429f7f8 100644\n--- a/lib/librte_eal/common/include/rte_malloc.h\n+++ b/lib/librte_eal/common/include/rte_malloc.h\n@@ -153,7 +153,7 @@ struct rte_malloc_socket_stats {\n  *     align is not a power of two).\n  *   - Otherwise, the pointer to the reallocated memory.\n  */\n-void * __rte_experimental\n+__rte_experimental void *\n rte_realloc_socket(void *ptr, size_t size, unsigned int align, int socket);\n \n /**\n@@ -330,7 +330,7 @@ struct rte_malloc_socket_stats {\n  *     EPERM  - attempted to add memory to a reserved heap\n  *     ENOSPC - no more space in internal config to store a new memory chunk\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_memory_add(const char *heap_name, void *va_addr, size_t len,\n \t\trte_iova_t iova_addrs[], unsigned int n_pages, size_t page_sz);\n \n@@ -361,7 +361,7 @@ struct rte_malloc_socket_stats {\n  *     ENOENT - heap or memory chunk was not found\n  *     EBUSY  - memory chunk still contains data\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_memory_remove(const char *heap_name, void *va_addr, size_t len);\n \n /**\n@@ -385,7 +385,7 @@ struct rte_malloc_socket_stats {\n  *     EPERM  - attempted to attach memory to a reserved heap\n  *     ENOENT - heap or memory chunk was not found\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_memory_attach(const char *heap_name, void *va_addr, size_t len);\n \n /**\n@@ -409,7 +409,7 @@ struct rte_malloc_socket_stats {\n  *     EPERM  - attempted to detach memory from a reserved heap\n  *     ENOENT - heap or memory chunk was not found\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_memory_detach(const char *heap_name, void *va_addr, size_t len);\n \n /**\n@@ -428,7 +428,7 @@ struct rte_malloc_socket_stats {\n  *     EEXIST - heap by name of ``heap_name`` already exists\n  *     ENOSPC - no more space in internal config to store a new heap\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_create(const char *heap_name);\n \n /**\n@@ -451,7 +451,7 @@ struct rte_malloc_socket_stats {\n  *     EPERM  - attempting to destroy reserved heap\n  *     EBUSY  - heap still contains data\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_destroy(const char *heap_name);\n \n /**\n@@ -465,7 +465,7 @@ struct rte_malloc_socket_stats {\n  *     EINVAL - ``name`` was NULL\n  *     ENOENT - heap identified by the name ``name`` was not found\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_get_socket(const char *name);\n \n /**\n@@ -480,7 +480,7 @@ struct rte_malloc_socket_stats {\n  *   0 if socket ID refers to internal DPDK memory\n  *   -1 if socket ID is invalid\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_malloc_heap_socket_is_external(int socket_id);\n \n /**\n@@ -510,7 +510,7 @@ struct rte_malloc_socket_stats {\n  * @param f\n  *   A pointer to a file for output\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_malloc_dump_heaps(FILE *f);\n \n /**\ndiff --git a/lib/librte_eal/common/include/rte_memory.h b/lib/librte_eal/common/include/rte_memory.h\nindex 7ca703b..3f159f8 100644\n--- a/lib/librte_eal/common/include/rte_memory.h\n+++ b/lib/librte_eal/common/include/rte_memory.h\n@@ -227,7 +227,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *   1 if stopped by the user\n  *   -1 if user function reported error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_walk(rte_memseg_walk_t func, void *arg);\n \n /**\n@@ -248,7 +248,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *   1 if stopped by the user\n  *   -1 if user function reported error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_contig_walk(rte_memseg_contig_walk_t func, void *arg);\n \n /**\n@@ -269,7 +269,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *   1 if stopped by the user\n  *   -1 if user function reported error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_list_walk(rte_memseg_list_walk_t func, void *arg);\n \n /**\n@@ -287,7 +287,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *   1 if stopped by the user\n  *   -1 if user function reported error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_walk_thread_unsafe(rte_memseg_walk_t func, void *arg);\n \n /**\n@@ -305,7 +305,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *   1 if stopped by the user\n  *   -1 if user function reported error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_contig_walk_thread_unsafe(rte_memseg_contig_walk_t func, void *arg);\n \n /**\n@@ -323,7 +323,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *   1 if stopped by the user\n  *   -1 if user function reported error\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_list_walk_thread_unsafe(rte_memseg_list_walk_t func, void *arg);\n \n /**\n@@ -347,7 +347,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     - ENOENT  - ``ms`` is an unused segment\n  *     - ENOTSUP - segment fd's are not supported\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_get_fd(const struct rte_memseg *ms);\n \n /**\n@@ -371,7 +371,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     - ENOENT  - ``ms`` is an unused segment\n  *     - ENOTSUP - segment fd's are not supported\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_get_fd_thread_unsafe(const struct rte_memseg *ms);\n \n /**\n@@ -395,7 +395,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     - ENOENT  - ``ms`` is an unused segment\n  *     - ENOTSUP - segment fd's are not supported\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_get_fd_offset(const struct rte_memseg *ms, size_t *offset);\n \n /**\n@@ -419,7 +419,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     - ENOENT  - ``ms`` is an unused segment\n  *     - ENOTSUP - segment fd's are not supported\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_memseg_get_fd_offset_thread_unsafe(const struct rte_memseg *ms,\n \t\tsize_t *offset);\n \n@@ -460,7 +460,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     EEXIST - memory chunk is already registered\n  *     ENOSPC - no more space in internal config to store a new memory chunk\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_extmem_register(void *va_addr, size_t len, rte_iova_t iova_addrs[],\n \t\tunsigned int n_pages, size_t page_sz);\n \n@@ -490,7 +490,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     EINVAL - one of the parameters was invalid\n  *     ENOENT - memory chunk was not found\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_extmem_unregister(void *va_addr, size_t len);\n \n /**\n@@ -516,7 +516,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     EINVAL - one of the parameters was invalid\n  *     ENOENT - memory chunk was not found\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_extmem_attach(void *va_addr, size_t len);\n \n /**\n@@ -542,7 +542,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *     EINVAL - one of the parameters was invalid\n  *     ENOENT - memory chunk was not found\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_extmem_detach(void *va_addr, size_t len);\n \n /**\n@@ -595,7 +595,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *  @param maskbits\n  *    Address width to check against.\n  */\n-int __rte_experimental rte_mem_check_dma_mask(uint8_t maskbits);\n+__rte_experimental int rte_mem_check_dma_mask(uint8_t maskbits);\n \n /**\n  * @warning\n@@ -613,7 +613,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *  @param maskbits\n  *    Address width to check against.\n  */\n-int __rte_experimental rte_mem_check_dma_mask_thread_unsafe(uint8_t maskbits);\n+__rte_experimental int rte_mem_check_dma_mask_thread_unsafe(uint8_t maskbits);\n \n /**\n  * @warning\n@@ -623,7 +623,7 @@ typedef int (*rte_memseg_list_walk_t)(const struct rte_memseg_list *msl,\n  *  rte_mem_check_dma_mask and rte_mem_check_dma_mask_thread_unsafe can not be\n  *  used safely until memory has been initialized.\n  */\n-void __rte_experimental rte_mem_set_dma_mask(uint8_t maskbits);\n+__rte_experimental void rte_mem_set_dma_mask(uint8_t maskbits);\n \n /**\n  * Drivers based on uio will not load unless physical\n@@ -679,7 +679,7 @@ typedef void (*rte_mem_event_callback_t)(enum rte_mem_event event_type,\n  *   -1 on unsuccessful callback register, with rte_errno value indicating\n  *   reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mem_event_callback_register(const char *name, rte_mem_event_callback_t clb,\n \t\tvoid *arg);\n \n@@ -697,7 +697,7 @@ typedef void (*rte_mem_event_callback_t)(enum rte_mem_event event_type,\n  *   -1 on unsuccessful callback unregister, with rte_errno value indicating\n  *   reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mem_event_callback_unregister(const char *name, void *arg);\n \n \n@@ -746,7 +746,7 @@ typedef int (*rte_mem_alloc_validator_t)(int socket_id,\n  *   -1 on unsuccessful callback register, with rte_errno value indicating\n  *   reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mem_alloc_validator_register(const char *name,\n \t\trte_mem_alloc_validator_t clb, int socket_id, size_t limit);\n \n@@ -764,7 +764,7 @@ typedef int (*rte_mem_alloc_validator_t)(int socket_id,\n  *   -1 on unsuccessful callback unregister, with rte_errno value indicating\n  *   reason for failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mem_alloc_validator_unregister(const char *name, int socket_id);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_eal/common/include/rte_service.h b/lib/librte_eal/common/include/rte_service.h\nindex bf25aec..e54ec50 100644\n--- a/lib/librte_eal/common/include/rte_service.h\n+++ b/lib/librte_eal/common/include/rte_service.h\n@@ -178,7 +178,7 @@ int32_t rte_service_map_lcore_set(uint32_t service_id, uint32_t lcore,\n  * @retval 0 Service is not running on any lcore\n  * @retval -EINVAL Invalid service id\n  */\n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_service_may_be_active(uint32_t id);\n \n /**\n@@ -401,7 +401,7 @@ int32_t rte_service_attr_get(uint32_t id, uint32_t attr_id,\n  *         -EINVAL Invalid lcore, attr_id or attr_value was NULL.\n  *         -ENOTSUP lcore is not a service core.\n  */\n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_service_lcore_attr_get(uint32_t lcore, uint32_t attr_id,\n \t\t\t   uint64_t *attr_value);\n \n@@ -416,7 +416,7 @@ int32_t rte_service_attr_get(uint32_t id, uint32_t attr_id,\n  *         -EINVAL Invalid service id provided\n  *         -ENOTSUP lcore is not a service core.\n  */\n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_service_lcore_attr_reset_all(uint32_t lcore);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h\nindex 50c6936..2a0c0b2 100644\n--- a/lib/librte_ethdev/rte_ethdev.h\n+++ b/lib/librte_ethdev/rte_ethdev.h\n@@ -1453,7 +1453,7 @@ uint64_t rte_eth_find_next_owned_by(uint16_t port_id,\n  *   Next port id of the device, possibly port_id_start,\n  *   RTE_MAX_ETHPORTS if there is none.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_eth_find_next_of(uint16_t port_id_start,\n \t\tconst struct rte_device *parent);\n \n@@ -1484,7 +1484,7 @@ uint64_t rte_eth_find_next_owned_by(uint16_t port_id,\n  *   Next sibling port id, possibly port_id_start or ref_port_id itself,\n  *   RTE_MAX_ETHPORTS if there is none.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_eth_find_next_sibling(uint16_t port_id_start,\n \t\tuint16_t ref_port_id);\n \n@@ -1516,7 +1516,7 @@ uint64_t rte_eth_find_next_owned_by(uint16_t port_id,\n  * @return\n  *   Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental rte_eth_dev_owner_new(uint64_t *owner_id);\n+__rte_experimental int rte_eth_dev_owner_new(uint64_t *owner_id);\n \n /**\n  * @warning\n@@ -1531,7 +1531,7 @@ uint64_t rte_eth_find_next_owned_by(uint16_t port_id,\n  * @return\n  *  Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental rte_eth_dev_owner_set(const uint16_t port_id,\n+__rte_experimental int rte_eth_dev_owner_set(const uint16_t port_id,\n \t\tconst struct rte_eth_dev_owner *owner);\n \n /**\n@@ -1547,7 +1547,7 @@ int __rte_experimental rte_eth_dev_owner_set(const uint16_t port_id,\n  * @return\n  *  0 on success, negative errno value on error.\n  */\n-int __rte_experimental rte_eth_dev_owner_unset(const uint16_t port_id,\n+__rte_experimental int rte_eth_dev_owner_unset(const uint16_t port_id,\n \t\tconst uint64_t owner_id);\n \n /**\n@@ -1559,7 +1559,7 @@ int __rte_experimental rte_eth_dev_owner_unset(const uint16_t port_id,\n  * @param\towner_id\n  *  The owner identifier.\n  */\n-void __rte_experimental rte_eth_dev_owner_delete(const uint64_t owner_id);\n+__rte_experimental void rte_eth_dev_owner_delete(const uint64_t owner_id);\n \n /**\n  * @warning\n@@ -1574,7 +1574,7 @@ int __rte_experimental rte_eth_dev_owner_unset(const uint16_t port_id,\n  * @return\n  *  0 on success, negative errno value on error..\n  */\n-int __rte_experimental rte_eth_dev_owner_get(const uint16_t port_id,\n+__rte_experimental int rte_eth_dev_owner_get(const uint16_t port_id,\n \t\tstruct rte_eth_dev_owner *owner);\n \n /**\n@@ -1700,7 +1700,7 @@ int rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_queue,\n  * @return\n  *   1 when the Ethernet device is removed, otherwise 0.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_dev_is_removed(uint16_t port_id);\n \n /**\n@@ -2928,7 +2928,7 @@ int rte_eth_dev_rx_intr_ctl_q(uint16_t port_id, uint16_t queue_id,\n  *           successful.\n  *   - (-1) on error.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_dev_rx_intr_ctl_q_get_fd(uint16_t port_id, uint16_t queue_id);\n \n /**\n@@ -3626,7 +3626,7 @@ int rte_eth_tx_queue_info_get(uint16_t port_id, uint16_t queue_id,\n  *   - (-EIO) if device is removed.\n  *   - others depends on the specific operations implementation.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_dev_get_module_info(uint16_t port_id,\n \t\t\t    struct rte_eth_dev_module_info *modinfo);\n \n@@ -3648,7 +3648,7 @@ int rte_eth_tx_queue_info_get(uint16_t port_id, uint16_t queue_id,\n  *   - (-EIO) if device is removed.\n  *   - others depends on the specific operations implementation.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_dev_get_module_eeprom(uint16_t port_id,\n \t\t\t      struct rte_dev_eeprom_info *info);\n \n@@ -3840,7 +3840,7 @@ int rte_eth_timesync_read_tx_timestamp(uint16_t port_id,\n  *   - -ENODEV: The port ID is invalid.\n  *   - -ENOTSUP: The function is not supported by the Ethernet driver.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_read_clock(uint16_t port_id, uint64_t *clock);\n \n /**\ndiff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h\nindex f227480..217a02b 100644\n--- a/lib/librte_ethdev/rte_ethdev_driver.h\n+++ b/lib/librte_ethdev/rte_ethdev_driver.h\n@@ -225,7 +225,7 @@ int _rte_eth_dev_callback_process(struct rte_eth_dev *dev,\n  * @return\n  *   Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_switch_domain_alloc(uint16_t *domain_id);\n \n /**\n@@ -243,7 +243,7 @@ int _rte_eth_dev_callback_process(struct rte_eth_dev *dev,\n  * @return\n  *   Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_switch_domain_free(uint16_t domain_id);\n \n /** Generic Ethernet device arguments  */\n@@ -272,7 +272,7 @@ struct rte_eth_devargs {\n  * @return\n  *   Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_devargs_parse(const char *devargs, struct rte_eth_devargs *eth_devargs);\n \n \n@@ -304,7 +304,7 @@ typedef int (*ethdev_bus_specific_init)(struct rte_eth_dev *ethdev,\n  * @return\n  *   Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_dev_create(struct rte_device *device, const char *name,\n \tsize_t priv_data_size,\n \tethdev_bus_specific_init bus_specific_init, void *bus_init_params,\n@@ -328,7 +328,7 @@ typedef int (*ethdev_bus_specific_init)(struct rte_eth_dev *ethdev,\n  * @return\n  *   Negative errno value on error, 0 on success.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_eth_dev_destroy(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_ethdev/rte_flow_driver.h b/lib/librte_ethdev/rte_flow_driver.h\nindex 688f723..e41b815 100644\n--- a/lib/librte_ethdev/rte_flow_driver.h\n+++ b/lib/librte_ethdev/rte_flow_driver.h\n@@ -171,7 +171,7 @@ struct rte_flow_expand_rss {\n  *\n  *   -E2BIG: graph-depth @p graph is too deep.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_flow_expand_rss(struct rte_flow_expand_rss *buf, size_t size,\n \t\t    const struct rte_flow_item *pattern, uint64_t types,\n \t\t    const struct rte_flow_expand_node graph[],\ndiff --git a/lib/librte_ethdev/rte_mtr.h b/lib/librte_ethdev/rte_mtr.h\nindex 88f1301..49be06b 100644\n--- a/lib/librte_ethdev/rte_mtr.h\n+++ b/lib/librte_ethdev/rte_mtr.h\n@@ -438,7 +438,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_capabilities_get(uint16_t port_id,\n \tstruct rte_mtr_capabilities *cap,\n \tstruct rte_mtr_error *error);\n@@ -461,7 +461,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_meter_profile_add(uint16_t port_id,\n \tuint32_t meter_profile_id,\n \tstruct rte_mtr_meter_profile *profile,\n@@ -482,7 +482,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_meter_profile_delete(uint16_t port_id,\n \tuint32_t meter_profile_id,\n \tstruct rte_mtr_error *error);\n@@ -510,7 +510,7 @@ struct rte_mtr_error {\n  *\n  * @see enum rte_flow_action_type::RTE_FLOW_ACTION_TYPE_METER\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_create(uint16_t port_id,\n \tuint32_t mtr_id,\n \tstruct rte_mtr_params *params,\n@@ -533,7 +533,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_destroy(uint16_t port_id,\n \tuint32_t mtr_id,\n \tstruct rte_mtr_error *error);\n@@ -560,7 +560,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_meter_disable(uint16_t port_id,\n \tuint32_t mtr_id,\n \tstruct rte_mtr_error *error);\n@@ -581,7 +581,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_meter_enable(uint16_t port_id,\n \tuint32_t mtr_id,\n \tstruct rte_mtr_error *error);\n@@ -600,7 +600,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_meter_profile_update(uint16_t port_id,\n \tuint32_t mtr_id,\n \tuint32_t meter_profile_id,\n@@ -624,7 +624,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_meter_dscp_table_update(uint16_t port_id,\n \tuint32_t mtr_id,\n \tenum rte_color *dscp_table,\n@@ -650,7 +650,7 @@ struct rte_mtr_error {\n  * @return\n  *   0 on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_policer_actions_update(uint16_t port_id,\n \tuint32_t mtr_id,\n \tuint32_t action_mask,\n@@ -675,7 +675,7 @@ struct rte_mtr_error {\n  *\n  * @see enum rte_mtr_stats_type\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_stats_update(uint16_t port_id,\n \tuint32_t mtr_id,\n \tuint64_t stats_mask,\n@@ -706,7 +706,7 @@ struct rte_mtr_error {\n  *\n  * @see enum rte_mtr_stats_type\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_mtr_stats_read(uint16_t port_id,\n \tuint32_t mtr_id,\n \tstruct rte_mtr_stats *stats,\ndiff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.h b/lib/librte_eventdev/rte_event_eth_rx_adapter.h\nindex beab870..0423c08 100644\n--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.h\n+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.h\n@@ -413,7 +413,7 @@ int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,\n  *  - 0: Success, retrieved successfully.\n  *  - <0: Error code on failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_event_eth_rx_adapter_stats_get(uint8_t id,\n \t\t\t\tstruct rte_event_eth_rx_adapter_stats *stats);\n \n@@ -466,7 +466,7 @@ int rte_event_eth_rx_adapter_queue_del(uint8_t id, uint16_t eth_dev_id,\n  *  - 0: Success\n  *  - <0: Error code on failure.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_event_eth_rx_adapter_cb_register(uint8_t id,\n \t\t\t\tuint16_t eth_dev_id,\n \t\t\t\trte_event_eth_rx_adapter_cb_fn cb_fn,\ndiff --git a/lib/librte_flow_classify/rte_flow_classify.h b/lib/librte_flow_classify/rte_flow_classify.h\nindex 01e88e5..eefadfc 100644\n--- a/lib/librte_flow_classify/rte_flow_classify.h\n+++ b/lib/librte_flow_classify/rte_flow_classify.h\n@@ -155,7 +155,7 @@ struct rte_flow_classify_ipv4_5tuple_stats {\n  * @return\n  *   Handle to flow classifier instance on success or NULL otherwise\n  */\n-struct rte_flow_classifier * __rte_experimental\n+__rte_experimental struct rte_flow_classifier *\n rte_flow_classifier_create(struct rte_flow_classifier_params *params);\n \n /**\n@@ -166,7 +166,7 @@ struct rte_flow_classifier * __rte_experimental\n  * @return\n  *   0 on success, error code otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_flow_classifier_free(struct rte_flow_classifier *cls);\n \n /**\n@@ -179,7 +179,7 @@ struct rte_flow_classifier * __rte_experimental\n  * @return\n  *   0 on success, error code otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_flow_classify_table_create(struct rte_flow_classifier *cls,\n \t\tstruct rte_flow_classify_table_params *params);\n \n@@ -200,7 +200,7 @@ struct rte_flow_classifier * __rte_experimental\n  * @return\n  *   0 on success, error code otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_flow_classify_validate(struct rte_flow_classifier *cls,\n \t\tconst struct rte_flow_attr *attr,\n \t\tconst struct rte_flow_item pattern[],\n@@ -226,7 +226,7 @@ struct rte_flow_classifier * __rte_experimental\n  * @return\n  *   A valid handle in case of success, NULL otherwise.\n  */\n-struct rte_flow_classify_rule * __rte_experimental\n+__rte_experimental struct rte_flow_classify_rule *\n rte_flow_classify_table_entry_add(struct rte_flow_classifier *cls,\n \t\tconst struct rte_flow_attr *attr,\n \t\tconst struct rte_flow_item pattern[],\n@@ -244,7 +244,7 @@ struct rte_flow_classify_rule * __rte_experimental\n  * @return\n  *   0 on success, error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,\n \t\tstruct rte_flow_classify_rule *rule);\n \n@@ -265,7 +265,7 @@ struct rte_flow_classify_rule * __rte_experimental\n  * @return\n  *   0 on success, error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_flow_classifier_query(struct rte_flow_classifier *cls,\n \t\tstruct rte_mbuf **pkts,\n \t\tconst uint16_t nb_pkts,\ndiff --git a/lib/librte_hash/rte_hash.h b/lib/librte_hash/rte_hash.h\nindex 4432aef..20ca990 100644\n--- a/lib/librte_hash/rte_hash.h\n+++ b/lib/librte_hash/rte_hash.h\n@@ -366,7 +366,7 @@ struct rte_hash *\n  *   - 0 if freed successfully\n  *   - -EINVAL if the parameters are invalid.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_hash_free_key_with_position(const struct rte_hash *h,\n \t\t\t\tconst int32_t position);\n \ndiff --git a/lib/librte_ip_frag/rte_ip_frag.h b/lib/librte_ip_frag/rte_ip_frag.h\nindex 2273f38..1c2a7e2 100644\n--- a/lib/librte_ip_frag/rte_ip_frag.h\n+++ b/lib/librte_ip_frag/rte_ip_frag.h\n@@ -348,7 +348,7 @@ void rte_ip_frag_free_death_row(struct rte_ip_frag_death_row *dr,\n  * @param tms\n  *   Current timestamp\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_frag_table_del_expired_entries(struct rte_ip_frag_tbl *tbl,\n \tstruct rte_ip_frag_death_row *dr, uint64_t tms);\n \ndiff --git a/lib/librte_ipsec/rte_ipsec.h b/lib/librte_ipsec/rte_ipsec.h\nindex ff1ec80..b7dfc37 100644\n--- a/lib/librte_ipsec/rte_ipsec.h\n+++ b/lib/librte_ipsec/rte_ipsec.h\n@@ -84,7 +84,7 @@ struct rte_ipsec_session {\n  *   - Zero if operation completed successfully.\n  *   - -EINVAL if the parameters are invalid.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_ipsec_session_prepare(struct rte_ipsec_session *ss);\n \n /**\n@@ -108,7 +108,7 @@ struct rte_ipsec_session {\n  * @return\n  *   Number of successfully processed packets, with error code set in rte_errno.\n  */\n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_ipsec_pkt_crypto_prepare(const struct rte_ipsec_session *ss,\n \tstruct rte_mbuf *mb[], struct rte_crypto_op *cop[], uint16_t num)\n {\n@@ -138,7 +138,7 @@ struct rte_ipsec_session {\n  * @return\n  *   Number of successfully processed packets, with error code set in rte_errno.\n  */\n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_ipsec_pkt_process(const struct rte_ipsec_session *ss, struct rte_mbuf *mb[],\n \tuint16_t num)\n {\ndiff --git a/lib/librte_ipsec/rte_ipsec_group.h b/lib/librte_ipsec/rte_ipsec_group.h\nindex 740fa7c..1de96d4 100644\n--- a/lib/librte_ipsec/rte_ipsec_group.h\n+++ b/lib/librte_ipsec/rte_ipsec_group.h\n@@ -42,7 +42,7 @@ struct rte_ipsec_group {\n  * @return\n  *   The pointer to the related *rte_ipsec_session* structure.\n  */\n-static inline __rte_experimental struct rte_ipsec_session *\n+__rte_experimental static inline struct rte_ipsec_session *\n rte_ipsec_ses_from_crypto(const struct rte_crypto_op *cop)\n {\n \tconst struct rte_security_session *ss;\n@@ -78,7 +78,7 @@ struct rte_ipsec_group {\n  * @return\n  *   Number of filled elements in *grp* array.\n  */\n-static inline uint16_t __rte_experimental\n+__rte_experimental static inline uint16_t\n rte_ipsec_pkt_crypto_group(const struct rte_crypto_op *cop[],\n \tstruct rte_mbuf *mb[], struct rte_ipsec_group grp[], uint16_t num)\n {\ndiff --git a/lib/librte_ipsec/rte_ipsec_sa.h b/lib/librte_ipsec/rte_ipsec_sa.h\nindex fd9b3ed..5070701 100644\n--- a/lib/librte_ipsec/rte_ipsec_sa.h\n+++ b/lib/librte_ipsec/rte_ipsec_sa.h\n@@ -128,7 +128,7 @@ enum {\n  * @return\n  *   SA type value.\n  */\n-uint64_t __rte_experimental\n+__rte_experimental uint64_t\n rte_ipsec_sa_type(const struct rte_ipsec_sa *sa);\n \n /**\n@@ -139,7 +139,7 @@ enum {\n  *   - Actual size required for SA with given parameters.\n  *   - -EINVAL if the parameters are invalid.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_ipsec_sa_size(const struct rte_ipsec_sa_prm *prm);\n \n /**\n@@ -155,7 +155,7 @@ enum {\n  *   - -EINVAL if the parameters are invalid.\n  *   - -ENOSPC if the size of the provided buffer is not big enough.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_ipsec_sa_init(struct rte_ipsec_sa *sa, const struct rte_ipsec_sa_prm *prm,\n \tuint32_t size);\n \n@@ -164,7 +164,7 @@ enum {\n  * @param sa\n  *   Pointer to SA object to de-initialize.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_ipsec_sa_fini(struct rte_ipsec_sa *sa);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_kni/rte_kni.h b/lib/librte_kni/rte_kni.h\nindex e11a32b..dda7de6 100644\n--- a/lib/librte_kni/rte_kni.h\n+++ b/lib/librte_kni/rte_kni.h\n@@ -249,7 +249,7 @@ unsigned rte_kni_tx_burst(struct rte_kni *kni, struct rte_mbuf **mbufs,\n  *  Previous link state == linkdown: 0\n  *  Previous link state == linkup: 1\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_kni_update_link(struct rte_kni *kni, unsigned int linkup);\n \n /**\ndiff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h\nindex 0d9fef0..21a8870 100644\n--- a/lib/librte_mbuf/rte_mbuf.h\n+++ b/lib/librte_mbuf/rte_mbuf.h\n@@ -866,7 +866,7 @@ struct rte_mbuf_ext_shared_info {\n  * @return\n  *   The pointer of the mbuf buffer.\n  */\n-static inline char * __rte_experimental\n+__rte_experimental static inline char *\n rte_mbuf_buf_addr(struct rte_mbuf *mb, struct rte_mempool *mp)\n {\n \treturn (char *)mb + sizeof(*mb) + rte_pktmbuf_priv_size(mp);\n@@ -883,10 +883,17 @@ struct rte_mbuf_ext_shared_info {\n  * @return\n  *   The pointer of the beginning of the mbuf data.\n  */\n-static inline char * __rte_experimental\n-rte_mbuf_data_addr_default(struct rte_mbuf *mb)\n+__rte_experimental static inline char *\n+rte_mbuf_data_addr_default(struct rte_mbuf *mb __rte_unused)\n {\n+\t/* gcc complains about calling this experimental function even\n+\t * when not using it. Hide it with ALLOW_EXPERIMENTAL_API.\n+\t */\n+#ifdef ALLOW_EXPERIMENTAL_API\n \treturn rte_mbuf_buf_addr(mb, mb->pool) + RTE_PKTMBUF_HEADROOM;\n+#else\n+\treturn NULL;\n+#endif\n }\n \n /**\n@@ -926,7 +933,7 @@ struct rte_mbuf_ext_shared_info {\n  * @return\n  *   The starting address of the private data area of the given mbuf.\n  */\n-static inline void * __rte_experimental\n+__rte_experimental static inline void *\n rte_mbuf_to_priv(struct rte_mbuf *m)\n {\n \treturn RTE_PTR_ADD(m, sizeof(struct rte_mbuf));\ndiff --git a/lib/librte_meter/rte_meter.h b/lib/librte_meter/rte_meter.h\nindex 3e383d2..59f7b90 100644\n--- a/lib/librte_meter/rte_meter.h\n+++ b/lib/librte_meter/rte_meter.h\n@@ -140,7 +140,7 @@ struct rte_meter_trtcm_rfc4115_params {\n  * @return\n  *    0 upon success, error code otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_meter_trtcm_rfc4115_profile_config(\n \tstruct rte_meter_trtcm_rfc4115_profile *p,\n \tstruct rte_meter_trtcm_rfc4115_params *params);\n@@ -186,7 +186,7 @@ struct rte_meter_trtcm_rfc4115_params {\n  * @return\n  *    0 upon success, error code otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_meter_trtcm_rfc4115_config(struct rte_meter_trtcm_rfc4115 *m,\n \tstruct rte_meter_trtcm_rfc4115_profile *p);\n \n@@ -293,7 +293,7 @@ struct rte_meter_trtcm_rfc4115_params {\n  * @return\n  *    Color assigned to the current IP packet\n  */\n-static inline enum rte_color __rte_experimental\n+__rte_experimental static inline enum rte_color\n rte_meter_trtcm_rfc4115_color_blind_check(\n \tstruct rte_meter_trtcm_rfc4115 *m,\n \tstruct rte_meter_trtcm_rfc4115_profile *p,\n@@ -319,7 +319,7 @@ struct rte_meter_trtcm_rfc4115_params {\n  * @return\n  *    Color assigned to the current IP packet\n  */\n-static inline enum rte_color __rte_experimental\n+__rte_experimental static inline enum rte_color\n rte_meter_trtcm_rfc4115_color_aware_check(\n \tstruct rte_meter_trtcm_rfc4115 *m,\n \tstruct rte_meter_trtcm_rfc4115_profile *p,\n@@ -578,7 +578,7 @@ struct rte_meter_trtcm_rfc4115 {\n \treturn RTE_COLOR_GREEN;\n }\n \n-static inline enum rte_color __rte_experimental\n+__rte_experimental static inline enum rte_color\n rte_meter_trtcm_rfc4115_color_blind_check(\n \tstruct rte_meter_trtcm_rfc4115 *m,\n \tstruct rte_meter_trtcm_rfc4115_profile *p,\n@@ -621,7 +621,7 @@ struct rte_meter_trtcm_rfc4115 {\n \treturn RTE_COLOR_RED;\n }\n \n-static inline enum rte_color __rte_experimental\n+__rte_experimental static inline enum rte_color\n rte_meter_trtcm_rfc4115_color_aware_check(\n \tstruct rte_meter_trtcm_rfc4115 *m,\n \tstruct rte_meter_trtcm_rfc4115_profile *p,\ndiff --git a/lib/librte_net/rte_arp.h b/lib/librte_net/rte_arp.h\nindex f17c529..6db6dfa 100644\n--- a/lib/librte_net/rte_arp.h\n+++ b/lib/librte_net/rte_arp.h\n@@ -63,7 +63,7 @@ struct rte_arp_hdr {\n  * @return\n  *   - RARP packet pointer on success, or NULL on error\n  */\n-struct rte_mbuf * __rte_experimental\n+__rte_experimental struct rte_mbuf *\n rte_net_make_rarp_packet(struct rte_mempool *mpool,\n \t\tconst struct rte_ether_addr *mac);\n \ndiff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h\nindex 7088584..f219621 100644\n--- a/lib/librte_net/rte_net.h\n+++ b/lib/librte_net/rte_net.h\n@@ -51,7 +51,7 @@ struct rte_net_hdr_lens {\n  *   Protocol that follows IPv6 header.\n  *   -1 if an error occurs during mbuf parsing.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_net_skip_ip6_ext(uint16_t proto, const struct rte_mbuf *m, uint32_t *off,\n \tint *frag);\n \ndiff --git a/lib/librte_pipeline/rte_port_in_action.h b/lib/librte_pipeline/rte_port_in_action.h\nindex 0a85e4e..3e0d4a6 100644\n--- a/lib/librte_pipeline/rte_port_in_action.h\n+++ b/lib/librte_pipeline/rte_port_in_action.h\n@@ -172,7 +172,7 @@ struct rte_port_in_action_lb_params {\n  * @return\n  *   Input port action profile handle on success, NULL otherwise.\n  */\n-struct rte_port_in_action_profile * __rte_experimental\n+__rte_experimental struct rte_port_in_action_profile *\n rte_port_in_action_profile_create(uint32_t socket_id);\n \n /**\n@@ -183,7 +183,7 @@ struct rte_port_in_action_profile * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_port_in_action_profile_free(struct rte_port_in_action_profile *profile);\n \n /**\n@@ -201,7 +201,7 @@ struct rte_port_in_action_profile * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_port_in_action_profile_action_register(\n \tstruct rte_port_in_action_profile *profile,\n \tenum rte_port_in_action_type type,\n@@ -223,7 +223,7 @@ struct rte_port_in_action_profile * __rte_experimental\n  *\n  * @see rte_port_in_action_create()\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_port_in_action_profile_freeze(struct rte_port_in_action_profile *profile);\n \n /**\n@@ -245,7 +245,7 @@ struct rte_port_in_action_profile * __rte_experimental\n  * @return\n  *   Handle to input port action object on success, NULL on error.\n  */\n-struct rte_port_in_action * __rte_experimental\n+__rte_experimental struct rte_port_in_action *\n rte_port_in_action_create(struct rte_port_in_action_profile *profile,\n \tuint32_t socket_id);\n \n@@ -257,7 +257,7 @@ struct rte_port_in_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_port_in_action_free(struct rte_port_in_action *action);\n \n /**\n@@ -270,7 +270,7 @@ struct rte_port_in_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_port_in_action_params_get(struct rte_port_in_action *action,\n \tstruct rte_pipeline_port_in_params *params);\n \n@@ -289,7 +289,7 @@ struct rte_port_in_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_port_in_action_apply(struct rte_port_in_action *action,\n \tenum rte_port_in_action_type type,\n \tvoid *action_params);\ndiff --git a/lib/librte_pipeline/rte_table_action.h b/lib/librte_pipeline/rte_table_action.h\nindex ef45a30..da4ec42 100644\n--- a/lib/librte_pipeline/rte_table_action.h\n+++ b/lib/librte_pipeline/rte_table_action.h\n@@ -823,7 +823,7 @@ struct rte_table_action_decap_params {\n  * @return\n  *   Table action profile handle on success, NULL otherwise.\n  */\n-struct rte_table_action_profile * __rte_experimental\n+__rte_experimental struct rte_table_action_profile *\n rte_table_action_profile_create(struct rte_table_action_common_config *common);\n \n /**\n@@ -834,7 +834,7 @@ struct rte_table_action_profile * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_profile_free(struct rte_table_action_profile *profile);\n \n /**\n@@ -852,7 +852,7 @@ struct rte_table_action_profile * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_profile_action_register(struct rte_table_action_profile *profile,\n \tenum rte_table_action_type type,\n \tvoid *action_config);\n@@ -872,7 +872,7 @@ struct rte_table_action_profile * __rte_experimental\n  *\n  * @see rte_table_action_create()\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_profile_freeze(struct rte_table_action_profile *profile);\n \n /**\n@@ -895,7 +895,7 @@ struct rte_table_action_profile * __rte_experimental\n  *\n  * @see rte_table_action_create()\n  */\n-struct rte_table_action * __rte_experimental\n+__rte_experimental struct rte_table_action *\n rte_table_action_create(struct rte_table_action_profile *profile,\n \tuint32_t socket_id);\n \n@@ -907,7 +907,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_free(struct rte_table_action *action);\n \n /**\n@@ -920,7 +920,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_table_params_get(struct rte_table_action *action,\n \tstruct rte_pipeline_table_params *params);\n \n@@ -942,7 +942,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_apply(struct rte_table_action *action,\n \tvoid *data,\n \tenum rte_table_action_type type,\n@@ -961,7 +961,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_dscp_table_update(struct rte_table_action *action,\n \tuint64_t dscp_mask,\n \tstruct rte_table_action_dscp_table *table);\n@@ -980,7 +980,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_meter_profile_add(struct rte_table_action *action,\n \tuint32_t meter_profile_id,\n \tstruct rte_table_action_meter_profile *profile);\n@@ -996,7 +996,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_meter_profile_delete(struct rte_table_action *action,\n \tuint32_t meter_profile_id);\n \n@@ -1027,7 +1027,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_meter_read(struct rte_table_action *action,\n \tvoid *data,\n \tuint32_t tc_mask,\n@@ -1053,7 +1053,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_ttl_read(struct rte_table_action *action,\n \tvoid *data,\n \tstruct rte_table_action_ttl_counters *stats,\n@@ -1078,7 +1078,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_stats_read(struct rte_table_action *action,\n \tvoid *data,\n \tstruct rte_table_action_stats_counters *stats,\n@@ -1098,7 +1098,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   Zero on success, non-zero error code otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_table_action_time_read(struct rte_table_action *action,\n \tvoid *data,\n \tuint64_t *timestamp);\n@@ -1113,7 +1113,7 @@ struct rte_table_action * __rte_experimental\n  * @return\n  *   The pointer to the session on success, NULL otherwise.\n  */\n-struct rte_cryptodev_sym_session *__rte_experimental\n+__rte_experimental struct rte_cryptodev_sym_session *\n rte_table_action_crypto_sym_session_get(struct rte_table_action *action,\n \tvoid *data);\n \ndiff --git a/lib/librte_power/rte_power_empty_poll.h b/lib/librte_power/rte_power_empty_poll.h\nindex 33f24e0..e246a09 100644\n--- a/lib/librte_power/rte_power_empty_poll.h\n+++ b/lib/librte_power/rte_power_empty_poll.h\n@@ -142,14 +142,14 @@ struct ep_policy {\n  *  - 0 on success.\n  *  - Negative on error.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_power_empty_poll_stat_init(struct ep_params **eptr, uint8_t *freq_tlb,\n \t\tstruct ep_policy *policy);\n \n /**\n  * Free the resource hold by power management system.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_power_empty_poll_stat_free(void);\n \n /**\n@@ -163,7 +163,7 @@ struct ep_policy {\n  *  - 0 on success.\n  *  - Negative on error.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_power_empty_poll_stat_update(unsigned int lcore_id);\n \n /**\n@@ -178,7 +178,7 @@ struct ep_policy {\n  *  - 0 on success.\n  *  - Negative on error.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_power_poll_stat_update(unsigned int lcore_id, uint8_t nb_pkt);\n \n /**\n@@ -190,7 +190,7 @@ struct ep_policy {\n  * @return\n  *  Current lcore empty poll counter value.\n  */\n-uint64_t __rte_experimental\n+__rte_experimental uint64_t\n rte_power_empty_poll_stat_fetch(unsigned int lcore_id);\n \n /**\n@@ -202,7 +202,7 @@ struct ep_policy {\n  * @return\n  *  Current lcore valid poll counter value.\n  */\n-uint64_t __rte_experimental\n+__rte_experimental uint64_t\n rte_power_poll_stat_fetch(unsigned int lcore_id);\n \n /**\n@@ -213,7 +213,7 @@ struct ep_policy {\n  * @param  arg\n  *  The customized parameter\n  */\n-void  __rte_experimental\n+__rte_experimental void\n rte_empty_poll_detection(struct rte_timer *tim, void *arg);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h\nindex 9727f49..b48ed47 100644\n--- a/lib/librte_rcu/rte_rcu_qsbr.h\n+++ b/lib/librte_rcu/rte_rcu_qsbr.h\n@@ -122,7 +122,7 @@ struct rte_rcu_qsbr {\n  *   Possible rte_errno codes are:\n  *   - EINVAL - max_threads is 0\n  */\n-size_t __rte_experimental\n+__rte_experimental size_t\n rte_rcu_qsbr_get_memsize(uint32_t max_threads);\n \n /**\n@@ -143,7 +143,7 @@ struct rte_rcu_qsbr {\n  *   - EINVAL - max_threads is 0 or 'v' is NULL.\n  *\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_rcu_qsbr_init(struct rte_rcu_qsbr *v, uint32_t max_threads);\n \n /**\n@@ -169,7 +169,7 @@ struct rte_rcu_qsbr {\n  *   the QS variable. thread_id is a value between 0 and (max_threads - 1).\n  *   'max_threads' is the parameter passed in 'rte_rcu_qsbr_init' API.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_rcu_qsbr_thread_register(struct rte_rcu_qsbr *v, unsigned int thread_id);\n \n /**\n@@ -190,7 +190,7 @@ struct rte_rcu_qsbr {\n  *   Reader thread with this thread ID will stop reporting its quiescent\n  *   state on the QS variable.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_rcu_qsbr_thread_unregister(struct rte_rcu_qsbr *v, unsigned int thread_id);\n \n /**\n@@ -221,7 +221,7 @@ struct rte_rcu_qsbr {\n  *   Reader thread with this thread ID will report its quiescent state on\n  *   the QS variable.\n  */\n-static __rte_always_inline void __rte_experimental\n+__rte_experimental static __rte_always_inline void\n rte_rcu_qsbr_thread_online(struct rte_rcu_qsbr *v, unsigned int thread_id)\n {\n \tuint64_t t;\n@@ -282,7 +282,7 @@ struct rte_rcu_qsbr {\n  *   rte_rcu_qsbr_check API will not wait for the reader thread with\n  *   this thread ID to report its quiescent state on the QS variable.\n  */\n-static __rte_always_inline void __rte_experimental\n+__rte_experimental static __rte_always_inline void\n rte_rcu_qsbr_thread_offline(struct rte_rcu_qsbr *v, unsigned int thread_id)\n {\n \tRTE_ASSERT(v != NULL && thread_id < v->max_threads);\n@@ -322,7 +322,7 @@ struct rte_rcu_qsbr {\n  * @param thread_id\n  *   Reader thread id\n  */\n-static __rte_always_inline void __rte_experimental\n+__rte_experimental static __rte_always_inline void\n rte_rcu_qsbr_lock(__rte_unused struct rte_rcu_qsbr *v,\n \t\t\t__rte_unused unsigned int thread_id)\n {\n@@ -358,7 +358,7 @@ struct rte_rcu_qsbr {\n  * @param thread_id\n  *   Reader thread id\n  */\n-static __rte_always_inline void __rte_experimental\n+__rte_experimental static __rte_always_inline void\n rte_rcu_qsbr_unlock(__rte_unused struct rte_rcu_qsbr *v,\n \t\t\t__rte_unused unsigned int thread_id)\n {\n@@ -391,7 +391,7 @@ struct rte_rcu_qsbr {\n  *   - This is the token for this call of the API. This should be\n  *     passed to rte_rcu_qsbr_check API.\n  */\n-static __rte_always_inline uint64_t __rte_experimental\n+__rte_experimental static __rte_always_inline uint64_t\n rte_rcu_qsbr_start(struct rte_rcu_qsbr *v)\n {\n \tuint64_t t;\n@@ -423,7 +423,7 @@ struct rte_rcu_qsbr {\n  * @param thread_id\n  *   Update the quiescent state for the reader with this thread ID.\n  */\n-static __rte_always_inline void __rte_experimental\n+__rte_experimental static __rte_always_inline void\n rte_rcu_qsbr_quiescent(struct rte_rcu_qsbr *v, unsigned int thread_id)\n {\n \tuint64_t t;\n@@ -578,7 +578,7 @@ struct rte_rcu_qsbr {\n  *   - 1 if all reader threads have passed through specified number\n  *     of quiescent states.\n  */\n-static __rte_always_inline int __rte_experimental\n+__rte_experimental static __rte_always_inline int\n rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait)\n {\n \tRTE_ASSERT(v != NULL);\n@@ -610,7 +610,7 @@ struct rte_rcu_qsbr {\n  *   on this QS variable (i.e. the calling thread is also part of the\n  *   readside critical section). If not, pass RTE_QSBR_THRID_INVALID.\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_rcu_qsbr_synchronize(struct rte_rcu_qsbr *v, unsigned int thread_id);\n \n /**\n@@ -631,7 +631,7 @@ struct rte_rcu_qsbr {\n  *   Possible rte_errno codes are:\n  *   - EINVAL - NULL parameters are passed\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_sched/rte_sched.h b/lib/librte_sched/rte_sched.h\nindex 9c55a78..a6ef9ee 100644\n--- a/lib/librte_sched/rte_sched.h\n+++ b/lib/librte_sched/rte_sched.h\n@@ -249,7 +249,7 @@ struct rte_sched_port *\n  * @return\n  *   0 upon success, error code otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_sched_port_pipe_profile_add(struct rte_sched_port *port,\n \tstruct rte_sched_pipe_params *params,\n \tuint32_t *pipe_profile_id);\ndiff --git a/lib/librte_security/rte_security.h b/lib/librte_security/rte_security.h\nindex 76f54e0..0292d93 100644\n--- a/lib/librte_security/rte_security.h\n+++ b/lib/librte_security/rte_security.h\n@@ -346,7 +346,7 @@ struct rte_security_session *\n  *  - On success returns 0\n  *  - On failure return errno\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_security_session_update(struct rte_security_ctx *instance,\n \t\t\t    struct rte_security_session *sess,\n \t\t\t    struct rte_security_session_conf *conf);\n@@ -414,7 +414,7 @@ struct rte_security_session *\n  *  - On success, userdata\n  *  - On failure, NULL\n  */\n-void * __rte_experimental\n+__rte_experimental void *\n rte_security_get_userdata(struct rte_security_ctx *instance, uint64_t md);\n \n /**\n@@ -501,7 +501,7 @@ struct rte_security_stats {\n  *  - On success return 0\n  *  - On failure errno\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_security_session_stats_get(struct rte_security_ctx *instance,\n \t\t\t       struct rte_security_session *sess,\n \t\t\t       struct rte_security_stats *stats);\ndiff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h\nindex fe048f0..cc0898c 100644\n--- a/lib/librte_stack/rte_stack.h\n+++ b/lib/librte_stack/rte_stack.h\n@@ -112,7 +112,7 @@ struct rte_stack {\n  * @return\n  *   Actual number of objects pushed (either 0 or *n*).\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n rte_stack_push(struct rte_stack *s, void * const *obj_table, unsigned int n)\n {\n \tRTE_ASSERT(s != NULL);\n@@ -139,7 +139,7 @@ struct rte_stack {\n  * @return\n  *   Actual number of objects popped (either 0 or *n*).\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n rte_stack_pop(struct rte_stack *s, void **obj_table, unsigned int n)\n {\n \tRTE_ASSERT(s != NULL);\n@@ -162,7 +162,7 @@ struct rte_stack {\n  * @return\n  *   The number of used entries in the stack.\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n rte_stack_count(struct rte_stack *s)\n {\n \tRTE_ASSERT(s != NULL);\n@@ -184,7 +184,7 @@ struct rte_stack {\n  * @return\n  *   The number of free entries in the stack.\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n rte_stack_free_count(struct rte_stack *s)\n {\n \tRTE_ASSERT(s != NULL);\n@@ -222,7 +222,7 @@ struct rte_stack {\n  *    - ENOMEM - insufficient memory to create the stack\n  *    - ENAMETOOLONG - name size exceeds RTE_STACK_NAMESIZE\n  */\n-struct rte_stack *__rte_experimental\n+__rte_experimental struct rte_stack *\n rte_stack_create(const char *name, unsigned int count, int socket_id,\n \t\t uint32_t flags);\n \n@@ -235,7 +235,7 @@ struct rte_stack *__rte_experimental\n  * @param s\n  *   Stack to free\n  */\n-void __rte_experimental\n+__rte_experimental void\n rte_stack_free(struct rte_stack *s);\n \n /**\n@@ -252,7 +252,7 @@ struct rte_stack *__rte_experimental\n  *    - ENOENT - Stack with name *name* not found.\n  *    - EINVAL - *name* pointer is NULL.\n  */\n-struct rte_stack * __rte_experimental\n+__rte_experimental struct rte_stack *\n rte_stack_lookup(const char *name);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_stack/rte_stack_lf.h b/lib/librte_stack/rte_stack_lf.h\nindex 518889a..28702b2 100644\n--- a/lib/librte_stack/rte_stack_lf.h\n+++ b/lib/librte_stack/rte_stack_lf.h\n@@ -23,7 +23,7 @@\n  * @return\n  *   Actual number of objects enqueued.\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n __rte_stack_lf_push(struct rte_stack *s,\n \t\t    void * const *obj_table,\n \t\t    unsigned int n)\n@@ -61,7 +61,7 @@\n  * @return\n  *   - Actual number of objects popped.\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n __rte_stack_lf_pop(struct rte_stack *s, void **obj_table, unsigned int n)\n {\n \tstruct rte_stack_lf_elem *first, *last = NULL;\ndiff --git a/lib/librte_stack/rte_stack_std.h b/lib/librte_stack/rte_stack_std.h\nindex 5dc9409..1306ea3 100644\n--- a/lib/librte_stack/rte_stack_std.h\n+++ b/lib/librte_stack/rte_stack_std.h\n@@ -19,7 +19,7 @@\n  * @return\n  *   Actual number of objects pushed (either 0 or *n*).\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n __rte_stack_std_push(struct rte_stack *s, void * const *obj_table,\n \t\t     unsigned int n)\n {\n@@ -58,7 +58,7 @@\n  * @return\n  *   Actual number of objects popped (either 0 or *n*).\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n __rte_stack_std_pop(struct rte_stack *s, void **obj_table, unsigned int n)\n {\n \tstruct rte_stack_std *stack = &s->stack_std;\n@@ -92,7 +92,7 @@\n  * @return\n  *   The number of used entries in the stack.\n  */\n-static __rte_always_inline unsigned int __rte_experimental\n+__rte_experimental static __rte_always_inline unsigned int\n __rte_stack_std_count(struct rte_stack *s)\n {\n \treturn (unsigned int)s->stack_std.len;\ndiff --git a/lib/librte_table/rte_table_hash_func.h b/lib/librte_table/rte_table_hash_func.h\nindex 11ea5a9..6c7db1c 100644\n--- a/lib/librte_table/rte_table_hash_func.h\n+++ b/lib/librte_table/rte_table_hash_func.h\n@@ -14,7 +14,7 @@\n #include <rte_compat.h>\n #include <rte_common.h>\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_crc32_u64_generic(uint64_t crc, uint64_t value)\n {\n \tint i;\n@@ -52,7 +52,7 @@\n \n #endif\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key8(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -65,7 +65,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key16(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -83,7 +83,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key24(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -104,7 +104,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key32(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -129,7 +129,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key40(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -154,7 +154,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key48(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -180,7 +180,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key56(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\n@@ -209,7 +209,7 @@\n \treturn crc0;\n }\n \n-static inline uint64_t __rte_experimental\n+__rte_experimental static inline uint64_t\n rte_table_hash_crc_key64(void *key, void *mask, __rte_unused uint32_t key_size,\n \tuint64_t seed)\n {\ndiff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h\nindex 119db16..0c54ca4 100644\n--- a/lib/librte_telemetry/rte_telemetry.h\n+++ b/lib/librte_telemetry/rte_telemetry.h\n@@ -31,7 +31,7 @@\n  * @return\n  *  -EALREADY if Telemetry is already initialised.\n  */\n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_telemetry_init(void);\n \n /**\n@@ -45,7 +45,7 @@\n  * @return\n  *  -EPERM on failure\n  */\n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_telemetry_cleanup(void);\n \n /**\n@@ -60,7 +60,7 @@\n  * @return\n  *  -1 on failure when the test has failed\n  */\n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_telemetry_selftest(void);\n \n #endif\ndiff --git a/lib/librte_telemetry/rte_telemetry_parser.h b/lib/librte_telemetry/rte_telemetry_parser.h\nindex b705194..85040b8 100644\n--- a/lib/librte_telemetry/rte_telemetry_parser.h\n+++ b/lib/librte_telemetry/rte_telemetry_parser.h\n@@ -8,7 +8,7 @@\n #ifndef _RTE_TELEMETRY_PARSER_H_\n #define _RTE_TELEMETRY_PARSER_H_\n \n-int32_t __rte_experimental\n+__rte_experimental int32_t\n rte_telemetry_parse(struct telemetry_impl *telemetry, char *socket_rx_data);\n \n #endif\ndiff --git a/lib/librte_timer/rte_timer.h b/lib/librte_timer/rte_timer.h\nindex 2196934..39fc1d5 100644\n--- a/lib/librte_timer/rte_timer.h\n+++ b/lib/librte_timer/rte_timer.h\n@@ -147,7 +147,7 @@ struct rte_timer\n  *   - 0: Success\n  *   - -ENOSPC: maximum number of timer data instances already allocated\n  */\n-int __rte_experimental rte_timer_data_alloc(uint32_t *id_ptr);\n+__rte_experimental int rte_timer_data_alloc(uint32_t *id_ptr);\n \n /**\n  * @warning\n@@ -162,7 +162,7 @@ struct rte_timer\n  *   - 0: Success\n  *   - -EINVAL: invalid timer data instance identifier\n  */\n-int __rte_experimental rte_timer_data_dealloc(uint32_t id);\n+__rte_experimental int rte_timer_data_dealloc(uint32_t id);\n \n /**\n  * Initialize the timer library.\n@@ -187,7 +187,7 @@ struct rte_timer\n  *\n  * Free timer subsystem resources.\n  */\n-void __rte_experimental rte_timer_subsystem_finalize(void);\n+__rte_experimental void rte_timer_subsystem_finalize(void);\n \n /**\n  * Initialize a timer handle.\n@@ -408,7 +408,7 @@ int rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks,\n  *   - (-1): Timer is in the RUNNING or CONFIG state.\n  *   - -EINVAL: invalid timer_data_id\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_timer_alt_reset(uint32_t timer_data_id, struct rte_timer *tim,\n \t\t    uint64_t ticks, enum rte_timer_type type,\n \t\t    unsigned int tim_lcore, rte_timer_cb_t fct, void *arg);\n@@ -433,7 +433,7 @@ int rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks,\n  *   - (-1): The timer is in the RUNNING or CONFIG state.\n  *   - -EINVAL: invalid timer_data_id\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_timer_alt_stop(uint32_t timer_data_id, struct rte_timer *tim);\n \n /**\n@@ -469,7 +469,7 @@ int rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks,\n  *   - 0: success\n  *   - -EINVAL: invalid timer_data_id\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_timer_alt_manage(uint32_t timer_data_id, unsigned int *poll_lcores,\n \t\t     int n_poll_lcores, rte_timer_alt_manage_cb_t f);\n \n@@ -501,7 +501,7 @@ int rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks,\n  *   - 0: success\n  *   - EINVAL: invalid timer_data_id\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_timer_stop_all(uint32_t timer_data_id, unsigned int *walk_lcores,\n \t\t   int nb_walk_lcores, rte_timer_stop_all_cb_t f, void *f_arg);\n \n@@ -523,7 +523,7 @@ int rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks,\n  *   - 0: success\n  *   - -EINVAL: invalid timer_data_id\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_timer_alt_dump_stats(uint32_t timer_data_id, FILE *f);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_vhost/rte_vdpa.h b/lib/librte_vhost/rte_vdpa.h\nindex 51a9a7b..f3a51a8 100644\n--- a/lib/librte_vhost/rte_vdpa.h\n+++ b/lib/librte_vhost/rte_vdpa.h\n@@ -100,7 +100,7 @@ struct rte_vdpa_device {\n  * @return\n  *  device id on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vdpa_register_device(struct rte_vdpa_dev_addr *addr,\n \t\tstruct rte_vdpa_dev_ops *ops);\n \n@@ -115,7 +115,7 @@ struct rte_vdpa_device {\n  * @return\n  *  device id on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vdpa_unregister_device(int did);\n \n /**\n@@ -129,7 +129,7 @@ struct rte_vdpa_device {\n  * @return\n  *  device id on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vdpa_find_device_id(struct rte_vdpa_dev_addr *addr);\n \n /**\n@@ -143,7 +143,7 @@ struct rte_vdpa_device {\n  * @return\n  *  rte_vdpa_device on success, NULL on failure\n  */\n-struct rte_vdpa_device * __rte_experimental\n+__rte_experimental struct rte_vdpa_device *\n rte_vdpa_get_device(int did);\n \n /**\n@@ -155,7 +155,7 @@ struct rte_vdpa_device * __rte_experimental\n  * @return\n  *  available vdpa device number\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vdpa_get_device_num(void);\n \n /**\n@@ -171,7 +171,7 @@ struct rte_vdpa_device * __rte_experimental\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_host_notifier_ctrl(int vid, bool enable);\n \n /**\n@@ -191,6 +191,6 @@ struct rte_vdpa_device * __rte_experimental\n  * @return\n  *  number of synced used entries on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vdpa_relay_vring_used(int vid, uint16_t qid, void *vring_m);\n #endif /* _RTE_VDPA_H_ */\ndiff --git a/lib/librte_vhost/rte_vhost.h b/lib/librte_vhost/rte_vhost.h\nindex 338e47c..66bdbf4 100644\n--- a/lib/librte_vhost/rte_vhost.h\n+++ b/lib/librte_vhost/rte_vhost.h\n@@ -313,7 +313,7 @@ void rte_vhost_log_used_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_driver_attach_vdpa_device(const char *path, int did);\n \n /**\n@@ -324,7 +324,7 @@ void rte_vhost_log_used_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_driver_detach_vdpa_device(const char *path);\n \n /**\n@@ -335,7 +335,7 @@ void rte_vhost_log_used_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  Device id, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_driver_get_vdpa_device_id(const char *path);\n \n /**\n@@ -403,7 +403,7 @@ void rte_vhost_log_used_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_driver_set_protocol_features(const char *path,\n \t\tuint64_t protocol_features);\n \n@@ -417,7 +417,7 @@ void rte_vhost_log_used_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_driver_get_protocol_features(const char *path,\n \t\tuint64_t *protocol_features);\n \n@@ -431,7 +431,7 @@ void rte_vhost_log_used_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_driver_get_queue_num(const char *path, uint32_t *queue_num);\n \n /**\n@@ -656,7 +656,7 @@ int rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_get_log_base(int vid, uint64_t *log_base, uint64_t *log_size);\n \n /**\n@@ -673,7 +673,7 @@ int rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_get_vring_base(int vid, uint16_t queue_id,\n \t\tuint16_t *last_avail_idx, uint16_t *last_used_idx);\n \n@@ -691,7 +691,7 @@ int rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_set_vring_base(int vid, uint16_t queue_id,\n \t\tuint16_t last_avail_idx, uint16_t last_used_idx);\n \n@@ -707,7 +707,7 @@ int rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  0 on success, -1 on failure\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_extern_callback_register(int vid,\n \t\tstruct rte_vhost_user_extern_ops const * const ops, void *ctx);\n \n@@ -719,7 +719,7 @@ int rte_vhost_get_vhost_vring(int vid, uint16_t vring_idx,\n  * @return\n  *  device id\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_get_vdpa_device_id(int vid);\n \n #ifdef __cplusplus\ndiff --git a/lib/librte_vhost/rte_vhost_crypto.h b/lib/librte_vhost/rte_vhost_crypto.h\nindex d08e0ff..5014295 100644\n--- a/lib/librte_vhost/rte_vhost_crypto.h\n+++ b/lib/librte_vhost/rte_vhost_crypto.h\n@@ -35,7 +35,7 @@ enum rte_vhost_crypto_zero_copy {\n  *  0 if the Vhost Crypto Instance is created successfully.\n  *  Negative integer if otherwise\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_crypto_create(int vid, uint8_t cryptodev_id,\n \t\tstruct rte_mempool *sess_pool,\n \t\tstruct rte_mempool *sess_priv_pool,\n@@ -50,7 +50,7 @@ enum rte_vhost_crypto_zero_copy {\n  *  0 if the Vhost Crypto Instance is created successfully.\n  *  Negative integer if otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_crypto_free(int vid);\n \n /**\n@@ -64,7 +64,7 @@ enum rte_vhost_crypto_zero_copy {\n  *  0 if completed successfully.\n  *  Negative integer if otherwise.\n  */\n-int __rte_experimental\n+__rte_experimental int\n rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option);\n \n /**\n@@ -84,7 +84,7 @@ enum rte_vhost_crypto_zero_copy {\n  * @return\n  *  The number of fetched and processed vhost crypto request operations.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_vhost_crypto_fetch_requests(int vid, uint32_t qid,\n \t\tstruct rte_crypto_op **ops, uint16_t nb_ops);\n /**\n@@ -105,7 +105,7 @@ enum rte_vhost_crypto_zero_copy {\n  * @return\n  *  The number of ops processed.\n  */\n-uint16_t __rte_experimental\n+__rte_experimental uint16_t\n rte_vhost_crypto_finalize_requests(struct rte_crypto_op **ops,\n \t\tuint16_t nb_ops, int *callfds, uint16_t *nb_callfds);\n \n",
    "prefixes": [
        "9/9"
    ]
}