patch 'net/mlx5: fix modify action with tunnel decapsulation' has been queued to stable release 20.11.7

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Nov 3 10:27:06 CET 2022


Hi,

FYI, your patch has been queued to stable release 20.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/05/22. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/eff9ad52b3c9669c682d288c9d18399f86fdbf17

Thanks.

Luca Boccassi

---
>From eff9ad52b3c9669c682d288c9d18399f86fdbf17 Mon Sep 17 00:00:00 2001
From: Jiawei Wang <jiaweiw at nvidia.com>
Date: Thu, 1 Sep 2022 05:11:56 +0300
Subject: [PATCH] net/mlx5: fix modify action with tunnel decapsulation

[ upstream commit 9f71a297da6b9d4be18e624107b8e0017e890154 ]

The driver splits the flow with sample action into two sub-flows,
sub prefix flow and sub suffix flow.

In the case of tunnel flow including a decap action, the driver should
translate the inner as outer for actions coming after the decap action.
In the case of flow splitting, the packet layers, used to detect the
attributes, are inherited from the prefix flow to the suffix flow but
the driver wrongly didn't handle the decap adjustment and the inner
layers didn't shift to the outer.

This patch adjusts the inherited layers in case of decap.

Fixes: 6e77151286b2 ("net/mlx5: fix match information in meter")

Signed-off-by: Jiawei Wang <jiaweiw at nvidia.com>
Acked-by: Matan Azrad <matan at nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index c1505b69e6..500ffaf013 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -112,6 +112,13 @@ flow_dv_attr_init(const struct rte_flow_item *item, union flow_dv_attr *attr,
 	 * have the user defined items as the flow is split.
 	 */
 	if (layers) {
+		if (tunnel_decap) {
+			/*
+			 * If decap action before modify, it means the driver
+			 * should take the inner as outer for the modify actions.
+			 */
+			layers = ((layers >> 6) & MLX5_FLOW_LAYER_OUTER);
+		}
 		if (layers & MLX5_FLOW_LAYER_OUTER_L3_IPV4)
 			attr->ipv4 = 1;
 		else if (layers & MLX5_FLOW_LAYER_OUTER_L3_IPV6)
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-11-03 09:27:28.331185806 +0000
+++ 0048-net-mlx5-fix-modify-action-with-tunnel-decapsulation.patch	2022-11-03 09:27:25.449423912 +0000
@@ -1 +1 @@
-From 9f71a297da6b9d4be18e624107b8e0017e890154 Mon Sep 17 00:00:00 2001
+From eff9ad52b3c9669c682d288c9d18399f86fdbf17 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 9f71a297da6b9d4be18e624107b8e0017e890154 ]
+
@@ -19 +20,0 @@
-Cc: stable at dpdk.org
@@ -28 +29 @@
-index 52f1361a14..535b620ed4 100644
+index c1505b69e6..500ffaf013 100644
@@ -31 +32 @@
-@@ -121,6 +121,13 @@ flow_dv_attr_init(const struct rte_flow_item *item, union flow_dv_attr *attr,
+@@ -112,6 +112,13 @@ flow_dv_attr_init(const struct rte_flow_item *item, union flow_dv_attr *attr,


More information about the stable mailing list