DPDK bonding with Mellanox ConnectX-3 supported?

Hi,

I have a ConnectX-3 Pro dual-port card to use with DPDK (version 17.11.4). For this card, both ports share the same PCI address.

The card works with DPDK on the standard setup with the two ports, as per

https://community.mellanox.com/s/article/howto-install-dpdk-1-7-1-8-with-connectx-3-adapter

Is there a way to use DPDK bonding with this device to bond the two ports? DPDK bonding requires two PCI addresses for the devices being bonded, this will not work by default as both devices have the same PCI.

I also have a Connect4-X card where DPDK bonding works fine as on that card the two ports have different PCI addresses.

Thanks

Greg O’Rawe

Hi Greg,

Thank you for posting your question on the Mellanox Community.

Based on the information provided, it is not clear how-to use DPDK bonding for the Dual-port ConnectX-3 Pro if there is only one PCIe BDF.

Currently, we are requesting the maintainer of the ConnectX-3 Pro for DPDK to provide us some more information and also an example on how-to use.

Thanks and regards,

~Mellanox Technical Support

Thanks for your reply - let me know what information and examples you can give.

Thanks

Greg

Hi Greg,

We discussed this with the mlx4 maintainer for DPDK, as another user posted the same question on the DPDK.org user forum.

He mentions the following:

"It is a design mistake (related to the bonding PMD) to use PCI address to select slave ports for bonding. It prevents using multi-port devices or non-PCI devices (like vdev)

The solution is to use another format, like the new devargs syntax, which allows to match more properties (PCI address being one property).

For ConnectX-3 Pro, it will allow to choose ports by MAC address with this string: “class=eth,mac=00:11:22:33:44:55”

Unfortunately, this solution requires a patch in the bonding PMD to use RTE_ETH_FOREACH_MATCHING_DEV().

** Note that RTE_ETH_FOREACH_MATCHING_DEV supports the old PCI-only syntax."

Based on this information, this needs to be resolved in the bonding PMD driver from DPDK, which is the responsibility of the DPDK Community.

When using “mlx5” PMD, you are not experiencing this issue, as ConnectX-4/5 and the new 6 will have their own unique PCIe BDF address per port.

With ConnectX-3 Pro, you can only resolve it by two separate adapters (their own PCIe BDF address).

Our apologies that this information does not resolve your issue, but it makes clear the limitation when using Bonding PMD with mlx4 (ConnectX-3 Pro).

Many thanks and regards,

~Mellanox Technical Support