[dpdk-dev] [PATCH v5 1/5] ethdev: add VXLAN-GPE macro
Thomas Monjalon
thomas at monjalon.net
Fri Apr 5 12:37:45 CEST 2019
Hi,
Sorry for not catching it before, but I was not Cc.
Please use git send-email --to-cmd devtools/get-maintainer.sh
05/04/2019 11:42, Ferruh Yigit:
> On 4/5/2019 10:36 AM, Ananyev, Konstantin wrote:
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Qi Zhang
> >> From: Qiming Yang <qiming.yang at intel.com>
> >>
> >> This patch added VXLAN-GPE macro in rte_eth_tunnel_type.
> >> This patch will break the ABI, RTE_TUNNEL_TYPE_MAX will have
> >> problem when running with new version of the ethdev shared
> >> library.
> >>
> >> Signed-off-by: Qiming Yang <qiming.yang at intel.com>
> >> ---
[...]
> >> --- a/lib/librte_ethdev/rte_eth_ctrl.h
> >> +++ b/lib/librte_ethdev/rte_eth_ctrl.h
> >> @@ -229,6 +229,7 @@ enum rte_eth_tunnel_type {
> >> RTE_TUNNEL_TYPE_NVGRE,
> >> RTE_TUNNEL_TYPE_IP_IN_GRE,
> >> RTE_L2_TUNNEL_TYPE_E_TAG,
> >> + RTE_TUNNEL_TYPE_VXLAN_GPE,
> >
> > Not sure, why do you consider it as an ABI breakage?
>
> I think it is API breakage instead of ABI.
>
> This changes the value of the 'RTE_TUNNEL_TYPE_MAX'
> If the application is using the MAX enum item, with the new version of the
> ethdev the MAX value will be different and this can break the app.
>
> Like:
>
> app_function(..) {
> ret = lib_foo()
> if (ret == RTE_TUNNEL_TYPE_MAX)
> ret -1;
> }
>
> lib_foo(..) {
> return RTE_TUNNEL_TYPE_MAX;
> }
>
>
> When app compiled, MAX was '7' and app is comparing ret value against '7', but
> with new version of DPDK, 'lib_foo()' will return '8' instead.
I would vote for ABI because it is a value change.
Anyway, it must be noticed in the release notes.
As we are already breaking ethdev ABI in this release,
and it is a very basic change, I agree to accept it in 19.05.
In future, we should make sure that such addition is possible
without any breakage.
More information about the dev
mailing list