This PMD adds basic support for Mellanox ConnectX-4 (mlx5) families of 10/25/40/50/100 Gb/s adapters through the Verbs framework.
Its design is very similar to that of mlx4 from which most of its code is borrowed without the mistake of putting it all in a single huge file. It is disabled by default due to its dependency on libibverbs. Changes in v2: - Removed useless port inactive warning. - Simplified code by replacing configured MAC addresses RX queue bit-field with flow pointer checks. - Replaced allmulti/promisc status bits with request bits to fix inconsistencies when restoring these modes. - Updated comments about maximum number of MAC addresses and VLAN filters. - Improved performance with better prefetching. - Fixed deadlock in case of error during port start. - Simplified VLAN filtering configuration storage using a basic list instead of a table (with holes). Adrien Mazarguil (13): mlx5: new poll-mode driver for Mellanox ConnectX-4 adapters mlx5: add non-scattered TX and RX support mlx5: add MAC handling mlx5: add device configure/start/stop mlx5: add support for scattered RX and TX buffers mlx5: add MTU configuration support mlx5: add software counters and related callbacks mlx5: add promiscuous and allmulticast RX modes mlx5: add link update device operation mlx5: add flow control device operations mlx5: add VLAN filtering mlx5: add checksum offloading support doc: add mlx5 documentation and release notes for version 2.2 MAINTAINERS | 4 + config/common_bsdapp | 9 + config/common_linuxapp | 9 + doc/guides/nics/mlx5.rst | 308 +++++++++ doc/guides/rel_notes/release_2_2.rst | 9 + drivers/net/Makefile | 1 + drivers/net/mlx5/Makefile | 128 ++++ drivers/net/mlx5/mlx5.c | 553 +++++++++++++++ drivers/net/mlx5/mlx5.h | 212 ++++++ drivers/net/mlx5/mlx5_defs.h | 78 +++ drivers/net/mlx5/mlx5_ethdev.c | 844 +++++++++++++++++++++++ drivers/net/mlx5/mlx5_mac.c | 464 +++++++++++++ drivers/net/mlx5/mlx5_rxmode.c | 311 +++++++++ drivers/net/mlx5/mlx5_rxq.c | 1064 +++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_rxtx.c | 1009 +++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_rxtx.h | 194 ++++++ drivers/net/mlx5/mlx5_stats.c | 144 ++++ drivers/net/mlx5/mlx5_trigger.c | 154 +++++ drivers/net/mlx5/mlx5_txq.c | 513 ++++++++++++++ drivers/net/mlx5/mlx5_utils.h | 166 +++++ drivers/net/mlx5/mlx5_vlan.c | 156 +++++ drivers/net/mlx5/rte_pmd_mlx5_version.map | 3 + mk/rte.app.mk | 5 + 23 files changed, 6338 insertions(+) create mode 100644 doc/guides/nics/mlx5.rst create mode 100644 drivers/net/mlx5/Makefile create mode 100644 drivers/net/mlx5/mlx5.c create mode 100644 drivers/net/mlx5/mlx5.h create mode 100644 drivers/net/mlx5/mlx5_defs.h create mode 100644 drivers/net/mlx5/mlx5_ethdev.c create mode 100644 drivers/net/mlx5/mlx5_mac.c create mode 100644 drivers/net/mlx5/mlx5_rxmode.c create mode 100644 drivers/net/mlx5/mlx5_rxq.c create mode 100644 drivers/net/mlx5/mlx5_rxtx.c create mode 100644 drivers/net/mlx5/mlx5_rxtx.h create mode 100644 drivers/net/mlx5/mlx5_stats.c create mode 100644 drivers/net/mlx5/mlx5_trigger.c create mode 100644 drivers/net/mlx5/mlx5_txq.c create mode 100644 drivers/net/mlx5/mlx5_utils.h create mode 100644 drivers/net/mlx5/mlx5_vlan.c create mode 100644 drivers/net/mlx5/rte_pmd_mlx5_version.map -- 2.1.0