Hi Mircea, MLX4 devices are not supported today mainly because we don’t have any device to test with.
To make it work, following changes are needed: 1. dpdk/Makefile Here you will need to add 2 lines similar to MLX5. Just search for MLX5 and duplicate matching lines so they refer to MLX4 - After this is done you will be able to compile dpdk development packages with “make dpdk-install-dev DPDK_MLX4_PMD=y” 2. when compiling VPP you need to set "vpp_uses_dpdk_mlx5_pmd=yes”, i.e. “make vpp_uses_dpdk_mlx5_pmd=yes pkg-deb” Both mlx4 and mlx5 are using same libs so using existing mlx5 know should be fine, if that bugs you you can modify build-data/packages/vpp.mk, src/configure.ac and src/plugins/dpdk.am (either remove “5” or duplicate lines so you have both “4” and “5”) 3. Finally most demanding part is to modify dpdk init code so it recognizes those NICs properly. You will likely need to search for MLX5 in following files and create simlar code for mlx4. Files are: src/plugins/dpdk/device/dpdk.h src/plugins/dpdk/device/format.c src/plugins/dpdk/device/init.c I can help with this if somebody provides access to ubuntu computer with mlx4 card installed. Hope this helps, Damjan > On 17 Apr 2017, at 18:23, Mircea Orban <mior...@hotmail.com> wrote: > > Hello, > > I am trying to build VPP for an environment with Mellanox ConnectX-3 Pro > NICs, and I encounter issues when I try to run VPP (see dpdk plugin undefined > symbol error): > > vlib_plugin_early_init:360: plugin path /usr/lib/vpp_plugins > load_one_plugin:188: Loaded plugin: acl_plugin.so (Access Control Lists) > load_one_plugin:147: /usr/lib/vpp_plugins/dpdk_plugin.so: undefined symbol: > ibv_fork_init > load_one_plugin:188: Loaded plugin: flowperpkt_plugin.so (Flow per Packet) > load_one_plugin:188: Loaded plugin: ila_plugin.so (Identifier-locator > addressing for IPv6) > load_one_plugin:188: Loaded plugin: ioam_plugin.so (Inbound OAM) > load_one_plugin:114: Plugin disabled (default): ixge_plugin.so > load_one_plugin:188: Loaded plugin: lb_plugin.so (Load Balancer) > load_one_plugin:188: Loaded plugin: libsixrd_plugin.so (IPv6 Rapid Deployment > on IPv4 Infrastructure (RFC5969)) > load_one_plugin:188: Loaded plugin: memif_plugin.so (Packet Memory Interface > (experimetal)) > load_one_plugin:188: Loaded plugin: snat_plugin.so (Network Address > Translation) > Segmentation fault (core dumped) > > I added these lines to the DPDK Makefile (and it builds with no errors): > > DPDK_MLX4_PMD ?= y > DPDK_MLX4_DEBUG ?= n > DPDK_MLX4_SGE_WR_N ?= 1 > DPDK_MLX4_MAX_INLINE ?= 0 > DPDK_MLX4_TX_MP_CACHE ?= 8 > DPDK_MLX4_SOFT_COUNTERS ?= 1 > > $(call set,RTE_LIBRTE_MLX4_PMD,$(DPDK_MLX4_PMD)) > $(call set,RTE_LIBRTE_MLX4_DEBUG,$(DPDK_MLX4_DEBUG)) > $(call set,RTE_LIBRTE_MLX4_SGE_WR_N,$(DPDK_MLX4_SGE_WR_N)) > $(call set,RTE_LIBRTE_MLX4_MAX_INLINE,$(DPDK_MLX4_MAX_INLINE)) > $(call set,RTE_LIBRTE_MLX4_TX_MP_CACHE,$(DPDK_MLX4_TX_MP_CACHE)) > $(call set,RTE_LIBRTE_MLX4_SOFT_COUNTERS,$(DPDK_MLX4_SOFT_COUNTERS)) > > > > Thanks, > Mircea > > _______________________________________________ > vpp-dev mailing list > vpp-dev@lists.fd.io > https://lists.fd.io/mailman/listinfo/vpp-dev _______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev