How to build openvswitch with dpdk for ConnectX-3 NICs?

I’m looking for instructions to build the latest openvswitch w/ dpdk while using connectx-3 nics from mellanox and if possible in SR-IOV mode ?

Has anyone done this?

2.1.0 would be preferable.

Looks like this cannot be done at the moment. Compiling with OVS/DPDK has a shared library requirement which mlx4 cannot be compiled as.

dpdk - Data Plane Development Kit dpdk - Data Plane Development Kit

CentOS 7.1.

I’m trying to follow instructions from here - Features/vhost-user-ovs-dpdk - QEMU Documentation/vhost-user-ovs-dpdk - QEMU

with the mellanox pmd tarball from http://www.mellanox.com/downloads/Drivers/MLNX_DPDK-2.1_1.1.tar.gz http://www.mellanox.com/downloads/Drivers/MLNX_DPDK-2.1_1.1.tar.gz

enabling these two parameters

+CONFIG_RTE_BUILD_SHARED_LIB=y

+CONFIG_RTE_BUILD_COMBINE_LIBS=y

causes build failure like this …

`== Build drivers/net/mlx4 CC mlx4.o LD librte_pmd_mlx4.so.1.1 INSTALL-LIB librte_pmd_mlx4.so.1.1MLX4: Not supported in a combined shared librarymake[6]: *** [all] Error 1make[5]: *** [mlx4] Error 2make[4]: *** [net] Error 2make[3]: *** [drivers] Error 2make[2]: *** [all] Error 2make[1]: *** [x86_64-native-linuxapp-gcc_install] Error 2``make: *** [install] Error 2```

Hi,

What DPDK version are you using?

Thanks

Olga

Hi,

I’ve installed OVS with DPDK using ConnectX-3 successfully. we support shared library (but not shared combined). I must state that it was few months ago (DPDK 2.0) so i hope this is still the case. I’m currently re-visiting it again so hopefully will have exact instructions for you soon.

Shared library should work but without combined

We had issues with Ubuntu, that were fixed in DPDK 2.2

What OS do you have and what is not working?

Please use

+CONFIG_RTE_BUILD_SHARED_LIB=y

+CONFIG_RTE_BUILD_COMBINE_LIBS=n

I just tried that. But it fails to link with dpdk. Log here : http://pastebin.com/raw/0nXDQsgV http://pastebin.com/raw/0nXDQsgV

I’ve just installed OVS it with DPDK2.2 and ConnectX-4 and it worked fine (at least basic VM connectivity functionality, including DPDK vhost-user).

Are you still having troubles with it? you do not need shared lib, only combined lib (not sure why the post above, which is really great, requires it. there is no such requirement in the INSALL.DPDK from Openvswitch git).

CONFIG_RTE_BUILD_SHARED_LIB=n

CONFIG_RTE_BUILD_COMBINE_LIBS=y

You do need to run export LIBS=“-libverbs” before configuring OVS because our PMD depends on this library.

Let us know how it worked.

I will prepare a detailed community post, including some performance tuning but it will take some time.

Really sorry for the late reply!