Mellanox OFED 3.1 [1] comes with improved APIs that Mellanox ConnectX-4 (mlx5) adapters can take advantage of, such as:
- Separate post and doorbell operations on all queues. - Lightweight RX queues called Work Queues (WQs). - Low-level RSS indirection table and hash key configuration. This patchset enhances mlx5 with all of these for better performance and flexibility. Documentation is updated accordingly. [1] http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers Changes in v2: - Fixed compilation errors due to a missing libibverbs callback in the first two commits. - Improved clean up in device stop function. - Added flows clean up when going promiscuous to save HW resources. - Removed VF check in promiscuous mode. - Added RSS support for IPv6 flows. - Renamed flow specification generator function. - Modified allmulticast code to use enhanced flow specifications. - Remaining changes are caused by rebase on v2 of the initial patchset ("Mellanox ConnectX-4 PMD (mlx5)"). Adrien Mazarguil (7): mlx5: use fast Verbs interface for scattered RX operation mlx5: get rid of the WR structure in RX queue elements mlx5: refactor RX code for the new Verbs RSS API app/testpmd: fix missing initialization in the RSS hash show command mlx5: add IPv6 RSS support using experimental flows mlx5: enable multi packet send WR in TX CQ doc: update mlx5 documentation Nelio Laranjeiro (5): mlx5: adapt indirection table size depending on RX queues number mlx5: add RSS hash update/get mlx5: use one RSS hash key per flow type app/testpmd: add missing type to RSS hash commands mlx5: disable useless flows in promiscuous mode Olga Shern (3): mlx5: use separate indirection table for default hash RX queue mlx5: define specific flow steering rules for each hash RX QP mlx5: use alternate method to configure promisc and allmulti modes Yaacov Hazan (1): mlx5: fix compilation error with GCC < 4.6 app/test-pmd/cmdline.c | 45 +- app/test-pmd/config.c | 69 +- app/test-pmd/testpmd.h | 6 +- doc/guides/nics/mlx5.rst | 26 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 2 +- drivers/net/mlx5/Makefile | 14 +- drivers/net/mlx5/mlx5.c | 67 +- drivers/net/mlx5/mlx5.h | 54 +- drivers/net/mlx5/mlx5_defs.h | 3 + drivers/net/mlx5/mlx5_ethdev.c | 54 +- drivers/net/mlx5/mlx5_mac.c | 212 +++--- drivers/net/mlx5/mlx5_rss.c | 213 ++++++ drivers/net/mlx5/mlx5_rxmode.c | 313 +++++---- drivers/net/mlx5/mlx5_rxq.c | 1012 ++++++++++++++++++--------- drivers/net/mlx5/mlx5_rxtx.c | 68 +- drivers/net/mlx5/mlx5_rxtx.h | 97 ++- drivers/net/mlx5/mlx5_trigger.c | 87 +-- drivers/net/mlx5/mlx5_txq.c | 7 + drivers/net/mlx5/mlx5_utils.h | 2 - drivers/net/mlx5/mlx5_vlan.c | 33 +- 20 files changed, 1532 insertions(+), 852 deletions(-) create mode 100644 drivers/net/mlx5/mlx5_rss.c -- 2.1.0