On 4/5/2019 10:36 AM, Ananyev, Konstantin wrote: > > >> -----Original Message----- >> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Qi Zhang >> Sent: Friday, April 5, 2019 10:06 AM >> To: Yigit, Ferruh <ferruh.yi...@intel.com>; Zhang, Qi Z >> <qi.z.zh...@intel.com>; Iremonger, Bernard <bernard.iremon...@intel.com> >> Cc: dev@dpdk.org; Yang, Qiming <qiming.y...@intel.com> >> Subject: [dpdk-dev] [PATCH v5 1/5] ethdev: add VXLAN-GPE macro >> >> From: Qiming Yang <qiming.y...@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.y...@intel.com> >> --- >> lib/librte_ethdev/rte_eth_ctrl.h | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/lib/librte_ethdev/rte_eth_ctrl.h >> b/lib/librte_ethdev/rte_eth_ctrl.h >> index 5ea8ae24c..b3416341b 100644 >> --- 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. > Konstantin > >> RTE_TUNNEL_TYPE_MAX, >> }; >> >> -- >> 2.13.6 >