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>
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
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%