Go to file
Lior Margalit 5e1db76dd8 net/mlx5: fix RSS flow rule with L4 mismatch
The RSS hash types defined in the API do not support setting the L4 proto
type (TCP or UDP) without setting the L3 proto. For example, ETH_RSS_TCP
is defined as
(ETH_RSS_NONFRAG_IPV4_TCP | \
 ETH_RSS_NONFRAG_IPV6_TCP | \
 ETH_RSS_IPV6_TCP_EX).

The L3 proto of the RSS hash type may be different than the one defined
in the pattern, for example:
testpmd> flow create .../ ipv4 / tcp / end actions rss types ipv6-tcp-ex
end / end

If the RSS hash type also includes L4 proto type as in the above example,
the selection flags for the RX hash are currently set with SPORT/DPORT
without setting SRC/DST IP. As this combination is not supported, it does
not match any of the pre-created TIRs of the indirect RSS action
and the flow creation fails.

The fix is to prevent setting the selection flags for the RX hash with
SPORT/DPORT without setting SRC/DST IP. It applies non-RSS processing of
the received packets. In case of indirect RSS action, it will match the
MLX5_RSS_HASH_NONE pre-created TIR.

Fixes: b1d63d8293 ("net/mlx5: support RSS on src or dst fields only")
Fixes: 4a78c88e3b ("net/mlx5: fix Verbs flow tunnel")
Cc: stable@dpdk.org

Signed-off-by: Lior Margalit <lmargalit@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
2021-07-29 18:01:20 +02:00
.ci build: update minimum required Meson version 2021-04-16 18:51:51 +02:00
.github/workflows eal: handle compressed firmware 2021-07-07 16:41:53 +02:00
app app/testpmd: send failure logs to stderr 2021-07-24 15:12:57 +02:00
buildtools build: support drivers symlink on Windows 2021-07-09 17:22:42 +02:00
config build: check for broken AVX512 compiler support 2021-07-22 20:04:24 +02:00
devtools build: use platform for generic and native builds 2021-07-09 14:50:54 +02:00
doc app/testpmd: send failure logs to stderr 2021-07-24 15:12:57 +02:00
drivers net/mlx5: fix RSS flow rule with L4 mismatch 2021-07-29 18:01:20 +02:00
examples examples/vhost: handle memory hotplug for async vhost 2021-07-23 10:58:53 +02:00
kernel kni: fix crash on userspace VA for segmented packets 2021-06-24 10:04:25 +02:00
lib vhost: fix crash on reconnect 2021-07-28 08:27:53 +02:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools raw/cnxk_bphy: add baseband PHY skeleton driver 2021-07-05 23:08:11 +02:00
.editorconfig doc: add Meson coding style to contributors guide 2021-04-21 14:04:09 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add flow API features tables 2021-05-18 19:06:56 +02:00
.travis.yml eal: handle compressed firmware 2021-07-07 16:41:53 +02:00
ABI_VERSION version: 21.08-rc0 2021-05-21 20:07:04 +02:00
MAINTAINERS maintainers: update for ena 2021-07-23 17:49:01 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt build: use platform for generic and native builds 2021-07-09 14:50:54 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.08-rc2 2021-07-24 15:22:43 +02: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