dpdk: link DPDK with MLX4/MLX5 libraries again 00/37800/1
authorVladimir Ratnikov <vratnikov@netgate.com>
Mon, 19 Dec 2022 08:45:35 +0000 (08:45 +0000)
committerMatthew Smith <mgsmith@netgate.com>
Wed, 21 Dec 2022 19:55:00 +0000 (19:55 +0000)
 Previously it was linked and worker properly. While rdma build
was simplified, link was lost so all encrypted data won't pass
via Mellanox interfaces(ipsec, ipip, ssh etc) and NetVSC taps
won't created the right way.

 Errors:
mlx5_common: Verbs device not found: 21a5:00:02.0
mlx5_common: Failed to initialize device context.
EAL: Requested device 21a5:00:02.0 cannot be used
 Tested on Azure. Same errors appears on physical machine with
Mellanox connect adapter

Type: fix

Signed-off-by: Vladimir Ratnikov <vratnikov@netgate.com>
Change-Id: Ib68976282e0ed91c016a7318db6b5eddf5510c47
(cherry picked from commit 413447451e3f842815f45bae5d3cd3f87a0876e5)

src/plugins/dpdk/CMakeLists.txt

index a9d4f3e..a6dda26 100644 (file)
@@ -104,7 +104,9 @@ else()
       else()
         message(WARNING "EXPERIMENTAL: DPDK plugin without dlopen mode")
        vpp_plugin_find_library(dpdk IBVERBS_LIB "libibverbs.a")
-       string_append(DPDK_LINK_FLAGS "${IBVERBS_LIB} -Wl,--exclude-libs,ALL")
+       vpp_plugin_find_library(dpdk MLX5_LIB "libmlx5.a")
+       vpp_plugin_find_library(dpdk MLX4_LIB "libmlx4.a")
+       string_append(DPDK_LINK_FLAGS "-Wl,--whole-archive,${IBVERBS_LIB},${MLX5_LIB},${MLX4_LIB} -Wl,--no-whole-archive,--exclude-libs,ALL")
       endif()
     endif()
 endif()