5b637a8481
For using a DPDK application, such as OVS, which is dynamically linked, the DPDK version in use should always report the actual version, not the version used at build time. This incorrect behaviour can be seen by building OVS against one version of DPDK and running it against a later one. Using "ovs-vsctl list Open_vSwitch" to query basic info, the dpdk_version returned will be the build version not the currently running one - which can be verified using the DPDK telemetry library client. $ sudo ovs-vsctl list Open_vSwitch | grep dpdk_version dpdk_version : "DPDK 20.11.0-rc4" $ echo quit | sudo dpdk-telemetry.py Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2 {"version": "DPDK 21.02.0-rc2", "pid": 405659, "max_output_len": 16384} --> To fix this, we need to convert the rte_version() function, and any other necessary parts of the rte_version.h, to be actual functions in EAL, not just inlines/macros. The only complication in doing so is that telemetry library cannot call rte_version() directly, and instead needs the version string passed in on init. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>