dpdk: rebase cryptodev engine for dpdk 20.11
[vpp.git] / src / plugins / dpdk / CMakeLists.txt
index e662dc9..d63f116 100644 (file)
@@ -86,12 +86,18 @@ list(APPEND DPDK_LINK_LIBRARIES ${NUMA_LIB})
 # Mellanox libraries
 ##############################################################################
 if(DPDK_RTE_LIBRTE_MLX4_PMD OR DPDK_RTE_LIBRTE_MLX5_PMD)
-  vpp_plugin_find_library(dpdk MNL_LIB "mnl")
-  list(APPEND DPDK_LINK_LIBRARIES "${MNL_LIB}")
   if (DPDK_RTE_IBVERBS_LINK_DLOPEN)
     message(STATUS "DPDK depends on libmnl (Mellanox PMD requirement)")
+    vpp_plugin_find_library(dpdk MNL_LIB "mnl")
+    list(APPEND DPDK_LINK_LIBRARIES "${MNL_LIB}")
   else()
-    message(WARNING "unsupported DPDK configuration: DPDK Mellanox PMD requires RTE_IBVERBS_LINK_DLOPEN")
+    message(WARNING "EXPERIMENTAL: DPDK plugin without dlopen mode")
+    vpp_plugin_find_library(dpdk IBVERBS_LIB "libibverbs.a")
+    vpp_plugin_find_library(dpdk MLX5_LIB "libmlx5.a")
+    vpp_plugin_find_library(dpdk MLX4_LIB "libmlx4.a")
+    vpp_plugin_find_library(dpdk CCAN_LIB "libccan.a")
+    vpp_plugin_find_library(dpdk RDMA_UTIL_LIB "rdma_util")
+    string_append(DPDK_LINK_FLAGS "-Wl,--whole-archive,${IBVERBS_LIB},${MLX5_LIB},${MLX4_LIB},${CCAN_LIB},${RDMA_UTIL_LIB},--no-whole-archive")
   endif()
 endif()
 
@@ -99,7 +105,7 @@ endif()
 # DPDK plugin
 ##############################################################################
 
-if (${DPDK_VERSION} VERSION_EQUAL "20.8.0")
+if (${DPDK_VERSION} VERSION_GREATER_EQUAL "20.8.0")
   set(DPDK_CRYPTODEV_SOURCE cryptodev_dp_api)
 else ()
   set(DPDK_CRYPTODEV_SOURCE cryptodev)