net/mlx4: restore PMD functionality
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest29 patches 1 replyIn review
- v129 patches 3 repliesSuperseded
Changes in v2 from the cover letter
- Moved new memory allocation wrappers from EAL into the mlx4 PMD.
- Re-based on latest dpdk-next-net.
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/29 | ethdev: expose flow API error helperdoc/ drivers/ drivers/ +4 more | +83 | 0 replies | |
| 2/29 | net/mlx4: replace bit-field typedrivers/ | +4 | 0 replies | |
| 3/29 | net/mlx4: remove Rx QP initializer functiondrivers/ | +18 | 0 replies | |
| 4/29 | net/mlx4: enhance header files commentsdrivers/ drivers/ drivers/ +1 more | +29 | 0 replies | |
| 5/29 | net/mlx4: expose support for flow rule prioritiesdrivers/ drivers/ drivers/ | +26 | 0 replies | |
| 6/29 | net/mlx4: clarify flow objects naming schemedrivers/ drivers/ | +81 | 0 replies | |
| 7/29 | net/mlx4: tidy up flow rule handling codedrivers/ | +53 | 0 replies | |
| 8/29 | net/mlx4: compact flow rule error reportingdrivers/ | +42 | 0 replies | |
| 9/29 | net/mlx4: add iovec-like allocation wrappersdrivers/ drivers/ | +166 | 0 replies | |
| 10/29 | net/mlx4: merge flow creation and validation codedrivers/ drivers/ | +148 | 0 replies | |
| 11/29 | net/mlx4: allocate drop flow resources on demanddrivers/ drivers/ | +74 | 0 replies | |
| 12/29 | net/mlx4: relax check on missing flow rule targetdrivers/ | +17 | 0 replies | |
| 13/29 | net/mlx4: refactor internal flow rulesdrivers/ drivers/ drivers/ +3 more | +172 | 0 replies | |
| 14/29 | net/mlx4: generalize flow rule priority supportdrivers/ | +18 | 0 replies | |
| 15/29 | net/mlx4: simplify trigger code for flow rulesdrivers/ drivers/ drivers/ +1 more | +46 | 0 replies | |
| 16/29 | net/mlx4: refactor flow item validation codedrivers/ drivers/ | +288 | 0 replies | |
| 17/29 | net/mlx4: add MAC addresses configuration supportdoc/ drivers/ drivers/ +3 more | +177 | 0 replies | |
| 18/29 | net/mlx4: add VLAN filter configuration supportdoc/ drivers/ drivers/ +2 more | +112 | 0 replies | |
| 19/29 | net/mlx4: add flow support for multicast trafficdoc/ drivers/ drivers/ | +17 | 0 replies | |
| 20/29 | net/mlx4: restore promisc and allmulti supportdoc/ drivers/ drivers/ +2 more | +162 | 0 replies | |
| 21/29 | net/mlx4: update Rx/Tx callbacks consistentlydrivers/ drivers/ drivers/ +1 more | +8 | 0 replies | |
| 22/29 | net/mlx4: fix invalid errno value signdrivers/ | +0 | 0 replies | |
| 23/29 | net/mlx4: drop live queue reconfiguration supportdrivers/ drivers/ drivers/ | +184 | 0 replies | |
| 24/29 | net/mlx4: allocate queues and mbuf rings togetherdrivers/ drivers/ drivers/ | +65 | 0 replies | |
| 25/29 | net/mlx4: convert Rx path to work queuesdrivers/ drivers/ drivers/ +1 more | +68 | 0 replies | |
| 26/29 | net/mlx4: remove unnecessary checkdrivers/ | +0 | 0 replies | |
| 27/29 | net/mlx4: add RSS flow rule action supportdoc/ drivers/ drivers/ +7 more | +445 | 0 replies | |
| 28/29 | net/mlx4: disable UDP support in RSS flow rulesdrivers/ | +5 | 0 replies | |
| 29/29 | net/mlx4: add RSS support outside flow APIdrivers/ | +20 | 0 replies |
Reviews trailers per patch
All 29 patches have a Reviewed-by or Acked-by.
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v2 00/29] net/mlx4: restore PMD functionality
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(-)
Signature · 1 line
2.1.4