Jiawei Wang 255b8f86eb net/mlx5: fix E-Switch egress mirror flow validation
The stored metadata in all registers C were lost in E-Switch egress
mirroring flows due to HW limitation. The register C0 keeps the
source vport index that also was used as one of the flow matcher.

While sample action and jump action (jump to table X) was in the
E-Switch egress flow, the flow in the next table X wasn't hit since
source vport value lost.

The modify actions after sample action should be applied to the packet
on normal path, not to the sampled packet. In order to support this
mlx5 PMD splits the flow into sub flows and jump action is engaged
implicitly, causing malfunction due to registers corruption.

This patch adds the validation the for E-Switch mirroring jump egress
flow, and checks for this hidden jump as well and reject the flows with
modify actions after sampling.

Fixes: 6a951567c159 ("net/mlx5: support E-Switch mirroring and jump in one flow")
Cc: stable@dpdk.org

Signed-off-by: Jiawei Wang <jiaweiw@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
2021-02-04 18:19:37 +01:00
2021-01-29 20:59:37 +01:00
2020-11-27 01:39:54 +01:00
2021-02-04 18:19:36 +01:00
2020-11-27 17:25:24 +01:00
2020-02-22 21:05:22 +01:00
2020-11-30 10:55:22 +01:00
2021-02-03 10:53:35 +01:00
2020-09-07 23:51:57 +02:00
2021-01-29 20:59:37 +01:00
2018-01-04 22:41:38 +01:00
2021-01-30 01:35:54 +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
Description
No description provided
Readme 128 MiB
Languages
C 99.1%
Meson 0.5%
Python 0.2%
Shell 0.1%