This series of patches implements the mlx4-pmd with Tx data path that directly access the device queues for transmitting packets, bypassing the ibverbs Tx data path altogether. Using this scheme allows the PMD to work with upstream rdma-core package instead of the Mellanox OFED one without sacrificing Tx functionality.
These patches should be applied in the order listed below as each depends on its predecessor to work. This implementation allows rapid deployment of new features without the need to update the underlying OFED. This work depends on http://dpdk.org/ml/archives/dev/2017-August/072281.html [dpdk-dev] [PATCH v1 00/48] net/mlx4: trim and refactor entire PMD by Adrien Mazarguil It had been built and tested using rdma-core-15-1 from https://github.com/linux-rdma/rdma-core and kernel-ml-4.12.0-1.el7.elrepo.x86_64 It had been built and tested using rdma-core-15-1 from https://github.com/linux-rdma/rdma-core and kernel-ml-4.12.0-1.el7.elrepo.x86_64 Moti Haimovsky (5): net/mlx4: add simple Tx bypassing ibverbs net/mlx4: support multi-segments Tx net/mlx4: refine setting Tx completion flag net/mlx4: add Tx checksum offloads net/mlx4: add loopback Tx from VF drivers/net/mlx4/mlx4.c | 7 + drivers/net/mlx4/mlx4.h | 2 + drivers/net/mlx4/mlx4_ethdev.c | 6 + drivers/net/mlx4/mlx4_prm.h | 249 ++++++++++++++++++++++ drivers/net/mlx4/mlx4_rxtx.c | 456 +++++++++++++++++++++++++++++++++-------- drivers/net/mlx4/mlx4_rxtx.h | 39 +++- drivers/net/mlx4/mlx4_txq.c | 66 +++++- mk/rte.app.mk | 2 +- 8 files changed, 734 insertions(+), 93 deletions(-) create mode 100644 drivers/net/mlx4/mlx4_prm.h -- 1.8.3.1