This series restores all the control path functionality removed in prior series "net/mlx4: trim and refactor entire PMD", including:
- Promiscuous mode. - All multicast mode. - MAC address configuration. - Support for multiple simultaneous MAC addresses. - Reception of broadcast and user-defined multicast traffic. - VLAN filters. - RSS. This rework also results in the following enhancements: - Support for multiple flow rule priorities (up to 4096). - Much more comprehensive error messages when failing to create or apply flow rules. - Flow rules with the RSS action targeting disparate queues can now overlap (as long as they take HW limitations into account). - RSS contexts can be created/destroyed on demand (they were previously fixed once and for all after applying the first flow rule). - RSS hash key can be configured per context. - Rx objects have a smaller memory footprint. Note that it should be applied directly before the following series: "new mlx4 datapath bypassing ibverbs" For which a new version based on top of this one will be submitted soon. Adrien Mazarguil (29): ethdev: expose flow API error helper net/mlx4: replace bit-field type net/mlx4: remove Rx QP initializer function net/mlx4: enhance header files comments net/mlx4: expose support for flow rule priorities net/mlx4: clarify flow objects naming scheme net/mlx4: tidy up flow rule handling code net/mlx4: compact flow rule error reporting mem: add iovec-like allocation wrappers net/mlx4: merge flow creation and validation code net/mlx4: allocate drop flow resources on demand net/mlx4: relax check on missing flow rule target net/mlx4: refactor internal flow rules net/mlx4: generalize flow rule priority support net/mlx4: simplify trigger code for flow rules net/mlx4: refactor flow item validation code net/mlx4: add MAC addresses configuration support net/mlx4: add VLAN filter configuration support net/mlx4: add flow support for multicast traffic net/mlx4: restore promisc and allmulti support net/mlx4: update Rx/Tx callbacks consistently net/mlx4: fix invalid errno value sign net/mlx4: drop live queue reconfiguration support net/mlx4: allocate queues and mbuf rings together net/mlx4: convert Rx path to work queues net/mlx4: remove unnecessary check net/mlx4: add RSS flow rule action support net/mlx4: disable UDP support in RSS flow rules net/mlx4: add RSS support outside flow API doc/guides/nics/features/mlx4.ini | 6 + doc/guides/prog_guide/rte_flow.rst | 23 +- drivers/net/mlx4/Makefile | 2 +- drivers/net/mlx4/mlx4.c | 71 +- drivers/net/mlx4/mlx4.h | 61 +- drivers/net/mlx4/mlx4_ethdev.c | 231 ++- drivers/net/mlx4/mlx4_flow.c | 1671 +++++++++++------- drivers/net/mlx4/mlx4_flow.h | 32 +- drivers/net/mlx4/mlx4_rxq.c | 697 ++++---- drivers/net/mlx4/mlx4_rxtx.c | 2 +- drivers/net/mlx4/mlx4_rxtx.h | 34 +- drivers/net/mlx4/mlx4_txq.c | 343 ++-- drivers/net/mlx4/mlx4_utils.h | 10 +- drivers/net/tap/tap_flow.c | 2 +- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 9 + lib/librte_eal/common/include/rte_malloc.h | 85 + lib/librte_eal/common/rte_malloc.c | 92 + lib/librte_eal/linuxapp/eal/rte_eal_version.map | 9 + lib/librte_ether/rte_ethdev_version.map | 1 + lib/librte_ether/rte_flow.c | 49 +- lib/librte_ether/rte_flow.h | 24 + lib/librte_ether/rte_flow_driver.h | 38 - mk/rte.app.mk | 2 +- 23 files changed, 2173 insertions(+), 1321 deletions(-) -- 2.1.4