From patchwork Thu Jun 25 07:21:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 72166 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 99832A0350; Thu, 25 Jun 2020 09:21:46 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 719ED1BDFD; Thu, 25 Jun 2020 09:21:40 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by dpdk.org (Postfix) with ESMTP id 8AA8B1B75C for ; Thu, 25 Jun 2020 09:21:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593069697; 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=jA/HXjyPolrL2TLYxZ3269/TGTv5R3P7XqB/OIrW0B4=; b=Skprp2cnSD32j4SjJxTeSgP8CjMwPTsmWdYrkwluJWEySBpr1Fzi6GsyRAIA68Hwdh1mj/ AvR2BEswOVIwVTAdPMn6EjJm8CnAZLnGCbRMj+MXidO41IDCQg3Qn07Y27TqswCCk78ISn 5uCa5eEs6SwuwfZvnRh/qucb7tYndDQ= 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-105-px-7L2tjOzC3ymuc688-5Q-1; Thu, 25 Jun 2020 03:21:29 -0400 X-MC-Unique: px-7L2tjOzC3ymuc688-5Q-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B33A718FE863; Thu, 25 Jun 2020 07:21:26 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id AAB3B5C1D4; Thu, 25 Jun 2020 07:21:23 +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: Thu, 25 Jun 2020 09:21:10 +0200 Message-Id: <20200625072112.22351-2-david.marchand@redhat.com> In-Reply-To: <20200625072112.22351-1-david.marchand@redhat.com> References: <20200522065855.31056-1-david.marchand@redhat.com> <20200625072112.22351-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v2 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 --- 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 | 25 ++++++++++++++++++++-- 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, 33 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 Thu Jun 25 07:21:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 72165 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 2F6AFA0350; Thu, 25 Jun 2020 09:21:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 060A71B6B4; Thu, 25 Jun 2020 09:21:39 +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 53C432B8B for ; Thu, 25 Jun 2020 09:21:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593069696; 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=WYmvnsneiTn5IfgdIWOeAiaT/8fj0rkPrdWuYn8STODylB//t7T3mj5l30Riud/t5c9j3A /3k6O8uzywoYZwLjVl115Fxzw0wDa4+k37uqa5EOCPhOFhllH4SCrofFLBRkMiRo/Gwuq+ 2h/xg8c5/xoft4f9laPDf//P+mX87us= 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-281-ASMFUu87OOGBQy1Yn6CGwg-1; Thu, 25 Jun 2020 03:21:33 -0400 X-MC-Unique: ASMFUu87OOGBQy1Yn6CGwg-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F2E7518FE861; Thu, 25 Jun 2020 07:21:30 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 29EF55C1D4; Thu, 25 Jun 2020 07:21:27 +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: Thu, 25 Jun 2020 09:21:11 +0200 Message-Id: <20200625072112.22351-3-david.marchand@redhat.com> In-Reply-To: <20200625072112.22351-1-david.marchand@redhat.com> References: <20200522065855.31056-1-david.marchand@redhat.com> <20200625072112.22351-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v2 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 Thu Jun 25 07:21:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 72167 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 A7446A0350; Thu, 25 Jun 2020 09:21:55 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BCBA81BC25; Thu, 25 Jun 2020 09:21:42 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by dpdk.org (Postfix) with ESMTP id 8A40A1BC25 for ; Thu, 25 Jun 2020 09:21:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1593069701; 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=5MtA9+aDmXbfmNNUV5JOxUAUevkUNp9Hyi5eb7dEkEE=; b=g+8X216+qWQYq/YEWKyAYeRvKVzLC5KPC7cNNMYGneHPaZNyh96NyvNI54BbuO21NZTCip IUSx5vGkVsFm4m/RNO9BoJ/RfHz7aYXKXEqlMt56vHgr/PD0C1lugwDIIKuHqSrL64P1P7 bCFJ8qk5O+RAqzRbUr3kVvLk5lSvV+Y= 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-511-zx9TLgqFPIGFgwnqX_5-7A-1; Thu, 25 Jun 2020 03:21:39 -0400 X-MC-Unique: zx9TLgqFPIGFgwnqX_5-7A-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AA11BEC1A7; Thu, 25 Jun 2020 07:21:36 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6E1FC5C1D4; Thu, 25 Jun 2020 07:21:32 +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 , Gage Eads , Olivier Matz , Kevin Laatz Date: Thu, 25 Jun 2020 09:21:12 +0200 Message-Id: <20200625072112.22351-4-david.marchand@redhat.com> In-Reply-To: <20200625072112.22351-1-david.marchand@redhat.com> References: <20200522065855.31056-1-david.marchand@redhat.com> <20200625072112.22351-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v2 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_ipsec - 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 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_ipsec/rte_ipsec.h | 6 +++++- 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 ++++++---- 13 files changed, 71 insertions(+), 16 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_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_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