Go to file
Viacheslav Ovsiienko da845ae9d7 net/mlx5: fix drop action for Direct Rules/Verbs
There are multiple branches in rdma-core library backing
the rte flows:
  - Verbs
  - Direct Verbs (DV)
  - Direct Rules (DR)

The Verbs API always requires the specifying the queue even
if there is the drop action in the flow, though the kernel
optimizes out the actual queue usage for the flows containing
the drop action. The PMD handles the dedicated Rx queue to
provide Verbs API compatibility.

The DV/DR API does not require explicit specifying the queue
at the flow creation, but PMD still specified the dedicated
drop queue as action. It performed the packet forwarding to
the dummy queue (that was not polled at all) causing the
steering pipeline resources usage and degrading the overall
packet processing rate. For example, with inserted flow to
drop all the ingress packets the statistics reported only
15Mpps of 64B packets were received over 100Gbps line.

Since the Direct Rule API for E-Switch was introduced the
rdma-core supports the dedicated drop action, that is recognized
both for DV and DR and can be used for the entire device in
unified fashion, regardless of steering domain. The similar drop
action was introduced for E-Switch, the usage of this one can be
extended for other steering domains, not for E-Switch's one only.

This patch:
  - renames esw_drop_action to dr_drop_action to emphasize
    the global nature of the variable (not only E-Switch domain)
  - specifies this global drop action instead of dedicated
    drop queue for the DR/DV flows

Fixes: 34fa7c0268 ("net/mlx5: add drop action to Direct Verbs E-Switch")
Fixes: 65b3cd0dc3 ("net/mlx5: create global drop action")
Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
2021-04-07 10:25:32 +02:00
.ci build: alias default build as generic 2021-04-09 19:11:26 +02:00
.github/workflows ci: catch coredumps 2021-03-03 10:05:23 +01:00
app app/testpmd: fix usage text 2021-04-09 14:31:43 +02:00
buildtools build: remove Windows export symbol list 2021-04-08 17:57:33 +02:00
config build: alias default build as generic 2021-04-09 19:11:26 +02:00
devtools build: alias default build as generic 2021-04-09 19:11:26 +02:00
doc doc: update recommended versions for i40e 2021-04-01 10:02:57 +02:00
drivers net/mlx5: fix drop action for Direct Rules/Verbs 2021-04-07 10:25:32 +02:00
examples examples/vhost_crypto: remove unused short option 2021-03-31 10:02:18 +02:00
kernel build: support KNI cross-compilation 2021-03-15 23:43:40 +01:00
lib ethdev: refine debug build option 2021-04-01 16:10:20 +02:00
license license: remove pmdinfogen from exceptions 2021-02-05 18:13:19 +01:00
usertools usertools: show hugepages requested/set on failure 2021-03-25 18:07:47 +01:00
.editorconfig
.gitattributes
.gitignore regex/mlx5: introduce driver for BlueField 2 2020-07-21 19:04:05 +02:00
.travis.yml ci: update arm64 Travis jobs to Graviton2 2021-03-02 13:43:38 +01:00
ABI_VERSION version: 21.05-rc0 2021-02-15 11:08:19 +01:00
MAINTAINERS mempool/cnxk: add build infra and doc 2021-04-09 08:32:24 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt build: alias default build as generic 2021-04-09 19:11:26 +02:00
meson.build build: enable a developer mode setting 2021-04-09 19:07:25 +02:00
README
VERSION version: 21.05-rc0 2021-02-15 11:08:19 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org