This is a new feature in ethdev with tests and mlx5 implementation. Selective Rx allows to receive partial data, saving some hardware bandwidth.
Note 1: mlx5 support patch is not correctly indented to make review easier. An indent patch follows to be squashed. Note 2: DTS patch is an attempt to test the feature on day 1, it is not mandatory if it is blocking the merge. Gregory Etelson (4): ethdev: introduce selective Rx app/testpmd: support selective Rx common/mlx5: add null MR functions net/mlx5: support selective Rx Thomas Monjalon (6): app/testpmd: print Rx split capabilities net/mlx5: fix Rx split segment counter type net/mlx5: reindent previous changes common/mlx5: remove callbacks for MR registration dts: fix topology capability comparison dts: add selective Rx tests app/test-pmd/config.c | 17 ++ app/test-pmd/testpmd.c | 69 ++++- devtools/libabigail.abignore | 7 + doc/guides/nics/features.rst | 14 + doc/guides/nics/features/default.ini | 1 + doc/guides/nics/features/mlx5.ini | 1 + doc/guides/nics/mlx5.rst | 86 ++++-- doc/guides/rel_notes/release_26_07.rst | 11 + doc/guides/testpmd_app_ug/run_app.rst | 20 ++ drivers/common/mlx5/linux/mlx5_common_verbs.c | 53 ++-- drivers/common/mlx5/mlx5_common.c | 6 +- drivers/common/mlx5/mlx5_common_mr.c | 37 ++- drivers/common/mlx5/mlx5_common_mr.h | 29 +- drivers/common/mlx5/windows/mlx5_common_os.c | 31 ++- drivers/compress/mlx5/mlx5_compress.c | 4 +- drivers/crypto/mlx5/mlx5_crypto.h | 2 - drivers/crypto/mlx5/mlx5_crypto_gcm.c | 6 +- drivers/net/mlx5/mlx5.c | 7 + drivers/net/mlx5/mlx5.h | 4 +- drivers/net/mlx5/mlx5_ethdev.c | 25 ++ drivers/net/mlx5/mlx5_flow_aso.c | 21 +- drivers/net/mlx5/mlx5_flow_hw.c | 11 +- drivers/net/mlx5/mlx5_flow_quota.c | 6 +- drivers/net/mlx5/mlx5_hws_cnt.c | 19 +- drivers/net/mlx5/mlx5_rx.c | 162 ++++++----- drivers/net/mlx5/mlx5_rx.h | 5 +- drivers/net/mlx5/mlx5_rxq.c | 75 +++-- drivers/net/mlx5/mlx5_trigger.c | 64 ++++- dts/api/capabilities.py | 2 + dts/api/testpmd/__init__.py | 17 ++ dts/api/testpmd/types.py | 6 + dts/framework/testbed_model/capability.py | 10 +- dts/tests/TestSuite_rx_split.py | 262 ++++++++++++++++++ lib/ethdev/rte_ethdev.c | 24 +- lib/ethdev/rte_ethdev.h | 14 +- 35 files changed, 857 insertions(+), 271 deletions(-) create mode 100644 dts/tests/TestSuite_rx_split.py -- 2.54.0

