From patchwork Fri Jun 26 08:16:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 72223 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7FE6DA0350; Fri, 26 Jun 2020 10:16:59 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E0E001B952; Fri, 26 Jun 2020 10:16:57 +0200 (CEST) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by dpdk.org (Postfix) with ESMTP id D4AD61B94F for ; Fri, 26 Jun 2020 10:16:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593159416; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YHoxOF1dcmOOmyX/OUGnppgNDllGsTzCMSU0xNQ+VOE=; b=E27p10SNHkORtLZ5SzyOmJ46nlfs99tbTejVFpBousgpvRQ/LH1qpPzxHU85ciklkwLkuP ZBi941pF4+s3QTmoa8UY6/YlKbRjvjp5W9xel6dkf1sx1jnrJRMqMA4tTI9os87L1pjxT2 HT3E1YMyc4bkgSNNmgPDFhc/zHKSDfE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-271-Q7_mgSu7M3Sv-Efk_7Q40w-1; Fri, 26 Jun 2020 04:16:52 -0400 X-MC-Unique: Q7_mgSu7M3Sv-Efk_7Q40w-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C7359107ACCA; Fri, 26 Jun 2020 08:16:50 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id C38311DB; Fri, 26 Jun 2020 08:16:46 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, honnappa.nagarahalli@arm.com, techboard@dpdk.org, Ray Kinsella , Neil Horman , John McNamara , Marko Kovacevic Date: Fri, 26 Jun 2020 10:16:36 +0200 Message-Id: <20200626081638.29890-2-david.marchand@redhat.com> In-Reply-To: <20200626081638.29890-1-david.marchand@redhat.com> References: <20200522065855.31056-1-david.marchand@redhat.com> <20200626081638.29890-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v3 1/3] build: remove special versioning for non stable libraries X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Having a special versioning for experimental/internal libraries put a additional maintenance cost while this status is already announced in MAINTAINERS and the library headers/documentation. Following discussions and vote at 05/20 TB meeting [1], use a single versioning for all libraries in DPDK. Note: for the ABI check, an exception [2] had been added when tweaking this special versioning [3]. Prefer explicit libabigail rules (which will be dropped in 20.11). 1: https://mails.dpdk.org/archives/dev/2020-May/168450.html 2: https://git.dpdk.org/dpdk/commit/?id=23d7ad5db41c 3: https://git.dpdk.org/dpdk/commit/?id=ec2b8cd7ed69 Signed-off-by: David Marchand Acked-by: Ray Kinsella --- Changes since v2: - added exceptions for librte_graph and librte_node missed post 20.05, Changes since v1: - removed mention of special handling in ABI docs, --- buildtools/meson.build | 3 --- config/meson.build | 16 +++++------- devtools/check-abi.sh | 5 ---- devtools/libabigail.abignore | 29 ++++++++++++++++++++-- doc/guides/contributing/abi_policy.rst | 6 +---- doc/guides/contributing/abi_versioning.rst | 3 +-- drivers/meson.build | 17 +------------ lib/meson.build | 16 +----------- mk/rte.lib.mk | 5 ---- 9 files changed, 37 insertions(+), 63 deletions(-) diff --git a/buildtools/meson.build b/buildtools/meson.build index d5f8291beb..79703b6f93 100644 --- a/buildtools/meson.build +++ b/buildtools/meson.build @@ -18,6 +18,3 @@ else endif map_to_def_cmd = py3 + files('map_to_def.py') sphinx_wrapper = py3 + files('call-sphinx-build.py') - -# stable ABI always starts with "DPDK_" -is_stable_cmd = [find_program('grep', 'findstr'), '^DPDK_'] diff --git a/config/meson.build b/config/meson.build index 351e268c1f..d6d3f5271d 100644 --- a/config/meson.build +++ b/config/meson.build @@ -25,18 +25,14 @@ major_version = '@0@.@1@'.format(pver.get(0), pver.get(1)) abi_version = run_command(find_program('cat', 'more'), abi_version_file).stdout().strip() -# Regular libraries have the abi_version as the filename extension +# Libraries have the abi_version as the filename extension # and have the soname be all but the final part of the abi_version. -# Experimental libraries have soname with '0.major' -# and the filename suffix as 0.majorminor versions, -# e.g. v20.1 => librte_stable.so.20.1, librte_experimental.so.0.201 -# sonames => librte_stable.so.20, librte_experimental.so.0.20 -# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.2001 -# sonames => librte_stable.so.20.0, librte_experimental.so.0.200 +# e.g. v20.1 => librte_foo.so.20.1 +# sonames => librte_foo.so.20 +# e.g. v20.0.1 => librte_foo.so.20.0.1 +# sonames => librte_foo.so.20.0 abi_va = abi_version.split('.') -stable_so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] -experimental_abi_version = '0.' + abi_va[0] + abi_va[1] + '.' + abi_va[2] -experimental_so_version = experimental_abi_version +so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] # extract all version information into the build configuration dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int()) diff --git a/devtools/check-abi.sh b/devtools/check-abi.sh index dd9120e69e..e17fedbd9f 100755 --- a/devtools/check-abi.sh +++ b/devtools/check-abi.sh @@ -44,11 +44,6 @@ for dump in $(find $refdir -name "*.dump"); do echo "Skipped glue library $name." continue fi - # skip experimental libraries, with a sover starting with 0. - if grep -qE "\` may change without constraint, as they are not considered part of an ABI version. - Experimental libraries have the major ABI version ``0``. #. Updates to the :ref:`minimum hardware requirements `, which drop support for hardware which was previously supported, should be treated as an ABI change. @@ -331,7 +330,4 @@ Libraries ~~~~~~~~~ Libraries marked as ``experimental`` are entirely not considered part of an ABI -version, and may change without warning at any time. Experimental libraries -always have a major ABI version of ``0`` to indicate they exist outside of -:ref:`abi_versioning` , with the minor version incremented with each ABI change -to library. +version, and may change without warning at any time. diff --git a/doc/guides/contributing/abi_versioning.rst b/doc/guides/contributing/abi_versioning.rst index e96fde340f..31a9205572 100644 --- a/doc/guides/contributing/abi_versioning.rst +++ b/doc/guides/contributing/abi_versioning.rst @@ -112,8 +112,7 @@ how this may be done. At the same time, the major ABI version is changed atomically across all libraries by incrementing the major version in the ABI_VERSION file. This is -done globally for all libraries that declare a stable ABI. For libraries marked -as EXPERIMENTAL, their major ABI version is always set to 0. +done globally for all libraries. Minor ABI versions ~~~~~~~~~~~~~~~~~~ diff --git a/drivers/meson.build b/drivers/meson.build index cfb6a833c9..d1b59a4bac 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -124,21 +124,6 @@ foreach class:dpdk_driver_classes output: out_filename, depends: [pmdinfogen, tmp_lib]) - version_map = '@0@/@1@/@2@_version.map'.format( - meson.current_source_dir(), - drv_path, lib_name) - - is_stable = run_command(is_stable_cmd, - files(version_map)).returncode() == 0 - - if is_stable - lib_version = abi_version - so_version = stable_so_version - else - lib_version = experimental_abi_version - so_version = experimental_so_version - endif - # now build the static driver static_lib = static_library(lib_name, sources, @@ -183,7 +168,7 @@ foreach class:dpdk_driver_classes c_args: cflags, link_args: lk_args, link_depends: lk_deps, - version: lib_version, + version: abi_version, soversion: so_version, install: true, install_dir: driver_install_path) diff --git a/lib/meson.build b/lib/meson.build index d190d84eff..d646f33e07 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -107,20 +107,6 @@ foreach l:libraries cflags += '-DRTE_USE_FUNCTION_VERSIONING' endif - version_map = '@0@/@1@/rte_@2@_version.map'.format( - meson.current_source_dir(), dir_name, name) - - is_stable = run_command(is_stable_cmd, - files(version_map)).returncode() == 0 - - if is_stable - lib_version = abi_version - so_version = stable_so_version - else - lib_version = experimental_abi_version - so_version = experimental_so_version - endif - # first build static lib static_lib = static_library(libname, sources, @@ -179,7 +165,7 @@ foreach l:libraries include_directories: includes, link_args: lk_args, link_depends: lk_deps, - version: lib_version, + version: abi_version, soversion: so_version, install: true) shared_dep = declare_dependency(link_with: shared_lib, diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index 682b590dba..229ae16814 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -13,11 +13,6 @@ VPATH += $(SRCDIR) LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION) SOVER := $(basename $(LIBABIVER)) -ifeq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),) -# EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI -LIBABIVER := 0.$(shell echo $(LIBABIVER) | awk 'BEGIN { FS="." }; { print $$1$$2"."$$3 }') -SOVER := $(LIBABIVER) -endif ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) SONAME := $(patsubst %.a,%.so.$(SOVER),$(LIB)) From patchwork Fri Jun 26 08:16:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 72224 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A0F23A0350; Fri, 26 Jun 2020 10:17:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2DB541BE3D; Fri, 26 Jun 2020 10:17:05 +0200 (CEST) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by dpdk.org (Postfix) with ESMTP id 9B23E1BDF8 for ; Fri, 26 Jun 2020 10:17:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593159422; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k6A6KgcTZqwdFw9MH2cBbkjcQ2zXN0/2cxB+wcWCMKo=; b=eQ402VkGEivZbDBRk7CK79n0yOrG85IAqxqjv8MzAxIOK0/Usx4a25MKLwUMFzFkzmcEqd +LxZaJCY6qJnzlxWwv0XW4V00dqNa5/qAJFccD2DtT6hrCd2/eYM1omQF8cCAsLUz0Gjjn X4QYDaqyTSgdWDyGgWtH7XpaRRo7bpI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-234-hQ0cQIsgPT60iBrDmY3isA-1; Fri, 26 Jun 2020 04:16:59 -0400 X-MC-Unique: hQ0cQIsgPT60iBrDmY3isA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9FB26107ACF2; Fri, 26 Jun 2020 08:16:56 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id AEEE55D9D3; Fri, 26 Jun 2020 08:16:51 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, honnappa.nagarahalli@arm.com, techboard@dpdk.org, Ray Kinsella , Neil Horman , Hemant Agrawal , Sachin Saxena , Jerin Jacob , Nithin Dabilpuram , Akhil Goyal Date: Fri, 26 Jun 2020 10:16:37 +0200 Message-Id: <20200626081638.29890-3-david.marchand@redhat.com> In-Reply-To: <20200626081638.29890-1-david.marchand@redhat.com> References: <20200522065855.31056-1-david.marchand@redhat.com> <20200626081638.29890-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v3 2/3] drivers: drop workaround for internal libraries X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Now that all libraries have a single version, we can drop the empty stable blocks that had been added when moving symbols from stable to internal ABI. Signed-off-by: David Marchand --- drivers/bus/dpaa/rte_bus_dpaa_version.map | 6 ++---- drivers/bus/fslmc/rte_bus_fslmc_version.map | 6 ++---- drivers/common/dpaax/rte_common_dpaax_version.map | 6 ++---- drivers/common/octeontx2/rte_common_octeontx2_version.map | 6 ++---- drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 6 ++---- drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map | 6 ++---- drivers/mempool/dpaa/rte_mempool_dpaa_version.map | 6 ++---- drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map | 6 ++---- drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 6 ++---- 9 files changed, 18 insertions(+), 36 deletions(-) diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map index 46d42f7d64..491c507119 100644 --- a/drivers/bus/dpaa/rte_bus_dpaa_version.map +++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map @@ -1,7 +1,3 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: @@ -90,4 +86,6 @@ INTERNAL { rte_dpaa_portal_fq_close; rte_dpaa_portal_fq_init; rte_dpaa_portal_init; + + local: *; }; diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map index 69e7dc6ad9..0a9947a454 100644 --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map @@ -1,7 +1,3 @@ -DPDK_20.0 { - local: *; -}; - EXPERIMENTAL { global: @@ -111,4 +107,6 @@ INTERNAL { rte_fslmc_get_device_count; rte_fslmc_object_register; rte_global_active_dqs_list; + + local: *; }; diff --git a/drivers/common/dpaax/rte_common_dpaax_version.map b/drivers/common/dpaax/rte_common_dpaax_version.map index 49c775c072..ee1ca6801c 100644 --- a/drivers/common/dpaax/rte_common_dpaax_version.map +++ b/drivers/common/dpaax/rte_common_dpaax_version.map @@ -1,7 +1,3 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: @@ -23,4 +19,6 @@ INTERNAL { of_n_addr_cells; of_translate_address; rta_sec_era; + + local: *; }; diff --git a/drivers/common/octeontx2/rte_common_octeontx2_version.map b/drivers/common/octeontx2/rte_common_octeontx2_version.map index d26bd71172..9a9969613b 100644 --- a/drivers/common/octeontx2/rte_common_octeontx2_version.map +++ b/drivers/common/octeontx2/rte_common_octeontx2_version.map @@ -1,7 +1,3 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: @@ -42,4 +38,6 @@ INTERNAL { otx2_sso_pf_func_get; otx2_sso_pf_func_set; otx2_unregister_irq; + + local: *; }; diff --git a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map index 3d863aff4d..1352f576e5 100644 --- a/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map +++ b/drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map @@ -1,10 +1,8 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: dpaa2_sec_eventq_attach; dpaa2_sec_eventq_detach; + + local: *; }; diff --git a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map index 023e120516..731ea593ad 100644 --- a/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map +++ b/drivers/crypto/dpaa_sec/rte_pmd_dpaa_sec_version.map @@ -1,10 +1,8 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: dpaa_sec_eventq_attach; dpaa_sec_eventq_detach; + + local: *; }; diff --git a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map index 89d7cf4957..142547ee38 100644 --- a/drivers/mempool/dpaa/rte_mempool_dpaa_version.map +++ b/drivers/mempool/dpaa/rte_mempool_dpaa_version.map @@ -1,10 +1,8 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: rte_dpaa_bpid_info; rte_dpaa_memsegs; + + local: *; }; diff --git a/drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map b/drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map index 8691efdfd8..e6887ceb8f 100644 --- a/drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map +++ b/drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map @@ -1,10 +1,8 @@ -DPDK_20.0 { - local: *; -}; - INTERNAL { global: otx2_npa_lf_fini; otx2_npa_lf_init; + + local: *; }; diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map index b633fdc2a8..c3a457d2b9 100644 --- a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map +++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map @@ -1,7 +1,3 @@ -DPDK_20.0 { - local: *; -}; - EXPERIMENTAL { global: @@ -15,4 +11,6 @@ INTERNAL { dpaa2_eth_eventq_attach; dpaa2_eth_eventq_detach; + + local: *; }; From patchwork Fri Jun 26 08:16:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 72225 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3E9A6A0350; Fri, 26 Jun 2020 10:17:20 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 755CC1BE85; Fri, 26 Jun 2020 10:17:13 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by dpdk.org (Postfix) with ESMTP id 616421BE85 for ; Fri, 26 Jun 2020 10:17:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593159430; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gjMm1x0SLxXneGriJo3+iRAFCS3bvBUuzwFBxjWtN6E=; b=POkVTCGTy1LjoNycqv7xiOtXz7yuuXcF9YNBFzKoTp6arQ8hKZs0kRlCeLw6lpMt/IHEGS 58rugmE3bPUZaKbYmuqrfExivknxNg92+pKXk5Eg7SBRZ1n+vhJMNZmWxF9nrtB7AQrddB gSdce5QpnwGYGVfbCMgbJdkW5E1Ou2Y= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-238-p9a-nsK-ONq-yxyxO_Ln2Q-1; Fri, 26 Jun 2020 04:17:06 -0400 X-MC-Unique: p9a-nsK-ONq-yxyxO_Ln2Q-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7C33B800D5C; Fri, 26 Jun 2020 08:17:03 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 872225D9C5; Fri, 26 Jun 2020 08:16:57 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, honnappa.nagarahalli@arm.com, techboard@dpdk.org, stable@dpdk.org, Ray Kinsella , Neil Horman , John McNamara , Marko Kovacevic , Nicolas Chautru , Konstantin Ananyev , Fiona Trahe , Ashish Gupta , Vladimir Medvedkin , Bernard Iremonger , Jerin Jacob , Kiran Kumar K , Nithin Dabilpuram , Pavan Nikhilesh , Gage Eads , Olivier Matz , Kevin Laatz Date: Fri, 26 Jun 2020 10:16:38 +0200 Message-Id: <20200626081638.29890-4-david.marchand@redhat.com> In-Reply-To: <20200626081638.29890-1-david.marchand@redhat.com> References: <20200522065855.31056-1-david.marchand@redhat.com> <20200626081638.29890-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v3 3/3] lib: remind experimental status in library headers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The following libraries are experimental, all of their functions can be changed or removed: - librte_bbdev - librte_bpf - librte_compressdev - librte_fib - librte_flow_classify - librte_graph - librte_ipsec - librte_node - librte_rcu - librte_rib - librte_stack - librte_telemetry Their status is properly announced in MAINTAINERS. Remind this status in their headers in a common fashion (aligned to ABI docs). Cc: stable@dpdk.org Signed-off-by: David Marchand --- Changes since v2: - updated librte_graph and librte_node Changes since v1: - updated wording following Honnappa comment --- doc/guides/contributing/abi_policy.rst | 8 +++++--- lib/librte_bbdev/rte_bbdev.h | 3 ++- lib/librte_bpf/rte_bpf.h | 6 +++++- lib/librte_compressdev/rte_compressdev.h | 6 +++++- lib/librte_fib/rte_fib.h | 7 +++++++ lib/librte_fib/rte_fib6.h | 7 +++++++ lib/librte_flow_classify/rte_flow_classify.h | 6 ++++-- lib/librte_graph/rte_graph.h | 3 ++- lib/librte_graph/rte_graph_worker.h | 3 ++- lib/librte_ipsec/rte_ipsec.h | 6 +++++- lib/librte_node/rte_node_eth_api.h | 3 ++- lib/librte_node/rte_node_ip4_api.h | 3 ++- lib/librte_rcu/rte_rcu_qsbr.h | 7 ++++++- lib/librte_rib/rte_rib.h | 7 +++++++ lib/librte_rib/rte_rib6.h | 7 +++++++ lib/librte_stack/rte_stack.h | 7 +++++-- lib/librte_telemetry/rte_telemetry.h | 10 ++++++---- 17 files changed, 79 insertions(+), 20 deletions(-) diff --git a/doc/guides/contributing/abi_policy.rst b/doc/guides/contributing/abi_policy.rst index 1b2fa27865..d0affa9e60 100644 --- a/doc/guides/contributing/abi_policy.rst +++ b/doc/guides/contributing/abi_policy.rst @@ -27,7 +27,8 @@ General Guidelines #. The removal of symbols is considered an :ref:`ABI breakage `, once approved these will form part of the next ABI version. #. Libraries or APIs marked as :ref:`experimental ` may - change without constraint, as they are not considered part of an ABI version. + be changed or removed without prior notice, as they are not considered part + of an ABI version. #. Updates to the :ref:`minimum hardware requirements `, which drop support for hardware which was previously supported, should be treated as an ABI change. @@ -294,7 +295,7 @@ APIs ~~~~ APIs marked as ``experimental`` are not considered part of an ABI version and -may change without warning at any time. Since changes to APIs are most likely +may be changed or removed without prior notice. Since changes to APIs are most likely immediately after their introduction, as users begin to take advantage of those new APIs and start finding issues with them, new DPDK APIs will be automatically marked as ``experimental`` to allow for a period of stabilization before they @@ -330,4 +331,5 @@ Libraries ~~~~~~~~~ Libraries marked as ``experimental`` are entirely not considered part of an ABI -version, and may change without warning at any time. +version. +All functions in such libraries may be changed or removed without prior notice. diff --git a/lib/librte_bbdev/rte_bbdev.h b/lib/librte_bbdev/rte_bbdev.h index ecd95a823d..57291373fa 100644 --- a/lib/librte_bbdev/rte_bbdev.h +++ b/lib/librte_bbdev/rte_bbdev.h @@ -11,7 +11,8 @@ * Wireless base band device abstraction APIs. * * @warning - * @b EXPERIMENTAL: this API may change without prior notice + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * This API allows an application to discover, configure and use a device to * process operations. An asynchronous API (enqueue, followed by later dequeue) diff --git a/lib/librte_bpf/rte_bpf.h b/lib/librte_bpf/rte_bpf.h index cbf1cddaca..e2d419b4ef 100644 --- a/lib/librte_bpf/rte_bpf.h +++ b/lib/librte_bpf/rte_bpf.h @@ -7,9 +7,13 @@ /** * @file rte_bpf.h - * @b EXPERIMENTAL: this API may change without prior notice * * RTE BPF support. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. + * * librte_bpf provides a framework to load and execute eBPF bytecode * inside user-space dpdk based applications. * It supports basic set of features from eBPF spec diff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h index 8052efe675..2840c27c6c 100644 --- a/lib/librte_compressdev/rte_compressdev.h +++ b/lib/librte_compressdev/rte_compressdev.h @@ -8,7 +8,11 @@ /** * @file rte_compressdev.h * - * RTE Compression Device APIs + * RTE Compression Device APIs. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * Defines comp device APIs for the provisioning of compression operations. */ diff --git a/lib/librte_fib/rte_fib.h b/lib/librte_fib/rte_fib.h index af3bbf07ee..84ee774d2d 100644 --- a/lib/librte_fib/rte_fib.h +++ b/lib/librte_fib/rte_fib.h @@ -8,6 +8,13 @@ /** * @file + * + * RTE FIB library. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. + * * FIB (Forwarding information base) implementation * for IPv4 Longest Prefix Match */ diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h index 66c71c84c9..bbfcf23a85 100644 --- a/lib/librte_fib/rte_fib6.h +++ b/lib/librte_fib/rte_fib6.h @@ -8,6 +8,13 @@ /** * @file + * + * RTE FIB6 library. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. + * * FIB (Forwarding information base) implementation * for IPv6 Longest Prefix Match */ diff --git a/lib/librte_flow_classify/rte_flow_classify.h b/lib/librte_flow_classify/rte_flow_classify.h index 74d1ecaf50..82ea92b6a6 100644 --- a/lib/librte_flow_classify/rte_flow_classify.h +++ b/lib/librte_flow_classify/rte_flow_classify.h @@ -8,9 +8,11 @@ /** * @file * - * RTE Flow Classify Library + * RTE Flow Classify Library. * - * @b EXPERIMENTAL: this API may change without prior notice + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * This library provides flow record information with some measured properties. * diff --git a/lib/librte_graph/rte_graph.h b/lib/librte_graph/rte_graph.h index 9a26ffc185..b32c4bc217 100644 --- a/lib/librte_graph/rte_graph.h +++ b/lib/librte_graph/rte_graph.h @@ -9,7 +9,8 @@ * @file rte_graph.h * * @warning - * @b EXPERIMENTAL: this API may change without prior notice + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * Graph architecture abstracts the data processing functions as * "node" and "link" them together to create a complex "graph" to enable diff --git a/lib/librte_graph/rte_graph_worker.h b/lib/librte_graph/rte_graph_worker.h index 4c3ddcbdeb..eef77f732a 100644 --- a/lib/librte_graph/rte_graph_worker.h +++ b/lib/librte_graph/rte_graph_worker.h @@ -9,7 +9,8 @@ * @file rte_graph_worker.h * * @warning - * @b EXPERIMENTAL: this API may change without prior notice + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * This API allows a worker thread to walk over a graph and nodes to create, * process, enqueue and move streams of objects to the next nodes. diff --git a/lib/librte_ipsec/rte_ipsec.h b/lib/librte_ipsec/rte_ipsec.h index 6666cf7619..de05f4e932 100644 --- a/lib/librte_ipsec/rte_ipsec.h +++ b/lib/librte_ipsec/rte_ipsec.h @@ -7,9 +7,13 @@ /** * @file rte_ipsec.h - * @b EXPERIMENTAL: this API may change without prior notice * * RTE IPsec support. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. + * * librte_ipsec provides a framework for data-path IPsec protocol * processing (ESP/AH). */ diff --git a/lib/librte_node/rte_node_eth_api.h b/lib/librte_node/rte_node_eth_api.h index e9a53afe5d..4e28f86d77 100644 --- a/lib/librte_node/rte_node_eth_api.h +++ b/lib/librte_node/rte_node_eth_api.h @@ -9,7 +9,8 @@ * @file rte_node_eth_api.h * * @warning - * @b EXPERIMENTAL: this API may change without prior notice + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * This API allows to setup ethdev_rx and ethdev_tx nodes * and its queue associations. diff --git a/lib/librte_node/rte_node_ip4_api.h b/lib/librte_node/rte_node_ip4_api.h index 31a752b00b..eb9ebd5f89 100644 --- a/lib/librte_node/rte_node_ip4_api.h +++ b/lib/librte_node/rte_node_ip4_api.h @@ -9,7 +9,8 @@ * @file rte_node_ip4_api.h * * @warning - * @b EXPERIMENTAL: this API may change without prior notice + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * This API allows to do control path functions of ip4_* nodes * like ip4_lookup, ip4_rewrite. diff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h index fd4eb52b7f..a98e8f0f82 100644 --- a/lib/librte_rcu/rte_rcu_qsbr.h +++ b/lib/librte_rcu/rte_rcu_qsbr.h @@ -7,7 +7,12 @@ /** * @file - * RTE Quiescent State Based Reclamation (QSBR) + * + * RTE Quiescent State Based Reclamation (QSBR). + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * Quiescent State (QS) is any point in the thread execution * where the thread does not hold a reference to a data structure diff --git a/lib/librte_rib/rte_rib.h b/lib/librte_rib/rte_rib.h index 6b70de980a..da558c417e 100644 --- a/lib/librte_rib/rte_rib.h +++ b/lib/librte_rib/rte_rib.h @@ -8,6 +8,13 @@ /** * @file + * + * RTE RIB library. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. + * * Level compressed tree implementation for IPv4 Longest Prefix Match */ diff --git a/lib/librte_rib/rte_rib6.h b/lib/librte_rib/rte_rib6.h index 871457138d..4b284c913c 100644 --- a/lib/librte_rib/rte_rib6.h +++ b/lib/librte_rib/rte_rib6.h @@ -8,6 +8,13 @@ /** * @file + * + * RTE rib6 library. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. + * * Level compressed tree implementation for IPv6 Longest Prefix Match */ diff --git a/lib/librte_stack/rte_stack.h b/lib/librte_stack/rte_stack.h index 27ddb199e5..abf6420766 100644 --- a/lib/librte_stack/rte_stack.h +++ b/lib/librte_stack/rte_stack.h @@ -4,9 +4,12 @@ /** * @file rte_stack.h - * @b EXPERIMENTAL: this API may change without prior notice * - * RTE Stack + * RTE Stack. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * librte_stack provides an API for configuration and use of a bounded stack of * pointers. Push and pop operations are MT-safe, allowing concurrent access, diff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h index eb7f2c917c..d13010b8fb 100644 --- a/lib/librte_telemetry/rte_telemetry.h +++ b/lib/librte_telemetry/rte_telemetry.h @@ -20,11 +20,13 @@ #define RTE_TEL_MAX_ARRAY_ENTRIES 512 /** - * @warning - * @b EXPERIMENTAL: all functions in this file may change without prior notice - * * @file - * RTE Telemetry + * + * RTE Telemetry. + * + * @warning + * @b EXPERIMENTAL: + * All functions in this file may be changed or removed without prior notice. * * The telemetry library provides a method to retrieve statistics from * DPDK by sending a request message over a socket. DPDK will send