rdma: fix DPDK MLX driver conflict
VPP rdma driver relies on an internal rdma-core not compatible with DPDK MLX driver. Force the use of external rdma-core through RTE_IBVERBS_LINK_DLOPEN DPDK build option and make sure internal rdma-core symbols are not leaked outside of the rdma plugin. Change-Id: I5b2281259f517c4e109d388d172b72eadd69986f Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:
Benoît Ganne
committed by
Dave Wallace
parent
7f6bd24f72
commit
f3262a2dd0
3
build/external/packages/dpdk.mk
vendored
3
build/external/packages/dpdk.mk
vendored
@ -17,7 +17,6 @@ DPDK_DOWNLOAD_DIR ?= $(DL_CACHE_DIR)
|
||||
DPDK_DEBUG ?= n
|
||||
DPDK_MLX4_PMD ?= n
|
||||
DPDK_MLX5_PMD ?= n
|
||||
DPDK_MLX_IBVERBS_DLOPEN ?= n
|
||||
DPDK_TAP_PMD ?= n
|
||||
DPDK_FAILSAFE_PMD ?= n
|
||||
|
||||
@ -189,7 +188,7 @@ $(B)/custom-config: $(B)/.dpdk-patch.ok Makefile
|
||||
$(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD))
|
||||
$(call set,RTE_LIBRTE_MLX5_PMD,$(DPDK_MLX5_PMD))
|
||||
$(call set,RTE_LIBRTE_PMD_SOFTNIC,n)
|
||||
$(call set,RTE_IBVERBS_LINK_DLOPEN,$(DPDK_MLX_IBVERBS_DLOPEN))
|
||||
$(call set,RTE_IBVERBS_LINK_DLOPEN,y)
|
||||
$(call set,RTE_LIBRTE_PMD_TAP,$(DPDK_TAP_PMD))
|
||||
$(call set,RTE_LIBRTE_GSO,$(DPDK_TAP_PMD))
|
||||
$(call set,RTE_LIBRTE_PMD_FAILSAFE,$(DPDK_FAILSAFE_PMD))
|
||||
|
2
build/external/packages/rdma-core.mk
vendored
2
build/external/packages/rdma-core.mk
vendored
@ -31,7 +31,7 @@ define rdma-core_config_cmds
|
||||
$(CMAKE) -G Ninja $(rdma-core_src_dir) \
|
||||
-DENABLE_STATIC=1 -DENABLE_RESOLVE_NEIGH=0 -DNO_PYVERBS=1 -DENABLE_VALGRIND=0 \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_C_FLAGS=-fPIC > $(rdma-core_config_log)
|
||||
-DCMAKE_C_FLAGS='-fPIC -fvisibility=hidden' > $(rdma-core_config_log)
|
||||
endef
|
||||
|
||||
define rdma-core_build_cmds
|
||||
|
@ -106,11 +106,7 @@ if(DPDK_RTE_LIBRTE_MLX4_PMD OR DPDK_RTE_LIBRTE_MLX5_PMD)
|
||||
if (DPDK_RTE_IBVERBS_LINK_DLOPEN)
|
||||
message(STATUS "DPDK depends on libmnl (Mellanox PMD requirement)")
|
||||
else()
|
||||
vpp_plugin_find_library(dpdk IBVERBS_LIB "ibverbs")
|
||||
list(APPEND DPDK_LINK_LIBRARIES "${IBVERBS_LIB}")
|
||||
vpp_plugin_find_library(dpdk MLX5_LIB "mlx5")
|
||||
list(APPEND DPDK_LINK_LIBRARIES "${MLX5_LIB}")
|
||||
message(STATUS "DPDK depends on libmnl, libibverbs, libmlx5 (Mellanox PMD requirement)")
|
||||
message(WARNING "unsupported DPDK configuration: DPDK Mellanox PMD requires RTE_IBVERBS_LINK_DLOPEN")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
Reference in New Issue
Block a user