[dpdk-dev] [PATCH v1 00/29] net/mlx4: restore PMD functionality
adrien.mazarguil at 6wind.com
Wed Oct 11 16:35:02 CEST 2017
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.
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 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(-)
More information about the dev