##############################################################################
# Find lib and include files
##############################################################################
-find_path(DPDK_INCLUDE_DIR PATH_SUFFIXES dpdk NAMES rte_config.h HINTS
- ${DPDK_INCLUDE_DIR_HINT})
-find_library(DPDK_LIB NAMES libdpdk.a HINTS ${DPDK_LIB_DIR_HINT})
+find_path(DPDK_INCLUDE_DIR PATH_SUFFIXES dpdk NAMES rte_config.h)
+find_library(DPDK_LIB NAMES libdpdk.a)
+
+if (NOT DPDK_INCLUDE_DIR)
+ message(WARNING "-- DPDK not found - dpdk_plugin disabled")
+ return()
+endif()
##############################################################################
# Find DPDK Version
#endif
#ifdef RTE_LIBRTE_PMD_AESNI_GCM
printf(\"RTE_LIBRTE_PMD_AESNI_GCM=%u\\n\", RTE_LIBRTE_PMD_AESNI_GCM);
+#endif
+#ifdef RTE_LIBRTE_MLX4_PMD
+ printf(\"RTE_LIBRTE_MLX4_PMD=%u\\n\", RTE_LIBRTE_MLX4_PMD);
+#endif
+#ifdef RTE_LIBRTE_MLX5_PMD
+ printf(\"RTE_LIBRTE_MLX5_PMD=%u\\n\", RTE_LIBRTE_MLX5_PMD);
+#ifdef RTE_LIBRTE_MLX5_DLOPEN_DEPS
+ printf(\"RTE_LIBRTE_MLX5_DLOPEN_DEPS=%u\\n\", RTE_LIBRTE_MLX5_DLOPEN_DEPS);
+#endif
#endif
return 0;
}
set(DPDK_LINK_FLAGS "${DPDK_LINK_FLAGS} -Wl,--exclude-libs,libIPSec_MB.a,-l:libIPSec_MB.a")
message(STATUS "DPDK depends on IPSec MB library")
endif()
+ if(DPDK_RTE_LIBRTE_MLX4_PMD OR DPDK_RTE_LIBRTE_MLX5_PMD)
+ if (DPDK_RTE_LIBRTE_MLX5_DLOPEN_DEPS)
+ set(DPDK_LINK_FLAGS "${DPDK_LINK_FLAGS} -Wl,-lmnl")
+ message(STATUS "DPDK depends on libmnl (Mellanox PMD requirement)")
+ else()
+ set(DPDK_LINK_FLAGS "${DPDK_LINK_FLAGS} -Wl,-lmnl,-libverbs,-lmlx5")
+ message(STATUS "DPDK depends on libmnl, libibverbs, libmlx5 (Mellanox PMD requirement)")
+ endif()
+ endif()
set(DPDK_LINK_FLAGS "${DPDK_LINK_FLAGS} -Wl,-lnuma")
add_vpp_plugin(dpdk
SOURCES
buffer.c
device/device.c
device/node.c
+ ipsec/crypto_node.c
+ ipsec/esp_decrypt.c
+ ipsec/esp_encrypt.c
API_FILES
api/dpdk.api
+ API_TEST_SOURCES
+ api/dpdk_test.c
+
+ INSTALL_HEADERS
+ device/dpdk.h
+ api/dpdk_all_api_h.h
+ ipsec/ipsec.h
+
LINK_FLAGS
${DPDK_LINK_FLAGS}
+
+ COMPONENT
+ vpp-plugin-dpdk
)
else()
message(WARNING "DPDK not found - dpdk disabled")