[dpdk-dev] [PATCH v2 00/29] net/mlx4: restore PMD functionality

Adrien Mazarguil adrien.mazarguil at 6wind.com
Thu Oct 12 14:19:14 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.
- 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.

v2 changes:

- Moved new memory allocation wrappers from EAL into the mlx4 PMD.
- Re-based on latest dpdk-next-net.

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
  net/mlx4: 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.c           |  151 +++
 drivers/net/mlx4/mlx4_utils.h           |   25 +-
 drivers/net/tap/tap_flow.c              |    2 +-
 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 +-
 20 files changed, 2144 insertions(+), 1321 deletions(-)


More information about the dev mailing list