[dpdk-stable] [PATCH v4] meter: provide experimental alias of API for old apps

Thomas Monjalon thomas at monjalon.net
Fri May 15 15:31:35 CEST 2020


14/05/2020 18:11, Ferruh Yigit:
> On v20.02 some meter APIs have been matured and symbols moved from
> EXPERIMENTAL to DPDK_20.0.1 block.
> 
> This can break the applications that were using these mentioned APIs on
> v19.11. Although there is no modification on the APIs and the action is
> positive and matures the APIs, the affect can be negative to
> applications.
> 
> Since experimental APIs can change or go away without notice as part of
> contract, to prevent this negative affect that may occur by maturing
> experimental API, a process update already suggested, which enables
> aliasing without forcing it:
> https://patches.dpdk.org/patch/65863/
> 
> This patch provides aliasing by duplicating the existing and versioned
> symbols as experimental.
> 
> Since symbols moved from DPDK_20.0.1 to DPDK_21 block in the v20.05, the
> aliasing done between EXPERIMENTAL and DPDK_21.
> 
> Also following changes done to enabling aliasing:
> 
> Created VERSION_SYMBOL_EXPERIMENTAL helper macro.
> 
> Updated the 'check-symbols.sh' buildtool, which was complaining that the
> symbol is in EXPERIMENTAL tag in .map file but it is not in the
> .experimental section (__rte_experimental tag is missing).
> Updated tool in a way it won't complain if the symbol in the
> EXPERIMENTAL tag duplicated in some other block in .map file (versioned)
> 
> Enabled function versioning for meson build for the library.
> 
> Fixes: 30512af820fe ("meter: remove experimental flag from RFC4115 trTCM API")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
> ---
> Cc: Neil Horman <nhorman at tuxdriver.com>
> Cc: Thomas Monjalon <thomas at monjalon.net>
> Cc: Luca Boccassi <bluca at debian.org>
> Cc: David Marchand <david.marchand at redhat.com>
> Cc: Bruce Richardson <bruce.richardson at intel.com>
> Cc: Ian Stokes <ian.stokes at intel.com>
> Cc: Eelco Chaudron <echaudro at redhat.com>
> Cc: Andrzej Ostruszka <amo at semihalf.com>
> Cc: Ray Kinsella <mdr at ashroe.eu>
> 
> v2:
> * Commit log updated
> 
> v3:
> * added suggested comment to VERSION_SYMBOL_EXPERIMENTAL macro
> 
> v4:
> * update script name in commit log, remove empty line
> ---
>  buildtools/check-symbols.sh                   |  3 +-
>  .../include/rte_function_versioning.h         |  9 +++
>  lib/librte_meter/meson.build                  |  1 +
>  lib/librte_meter/rte_meter.c                  | 59 ++++++++++++++++++-
>  lib/librte_meter/rte_meter_version.map        |  8 +++
>  5 files changed, 76 insertions(+), 4 deletions(-)

This patch is introducing the tooling and use it for the lib meter.
It is based on approval of the process documentation.

Ray sent a patch for the process documentation which refers to this tooling.

As raised by David, there is a circular dependency :)

I think it would be clearer to merge tooling and doc together,
and have meter changes separate.
Would it work for you?




More information about the stable mailing list