patch 'net/mlx5: fix validation for conntrack indirect action' has been queued to stable release 22.11.3
Xueming Li
xuemingl at nvidia.com
Thu Aug 10 02:10:32 CEST 2023
Hi,
FYI, your patch has been queued to stable release 22.11.3
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/11/23. 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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=0495e8506e9682fe63ec77b3b294a00c9611b19f
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From 0495e8506e9682fe63ec77b3b294a00c9611b19f Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz at nvidia.com>
Date: Tue, 18 Jul 2023 16:32:12 +0300
Subject: [PATCH] net/mlx5: fix validation for conntrack indirect action
Cc: Xueming Li <xuemingl at nvidia.com>
[ upstream commit a9156d685fa1b8927f68606c69521c5eae3184a2 ]
After rte_flow_shared_action_* API was replaced with
rte_flow_action_handle_* API, one input parameter of the update
interface was also changed. A generic pointer was used instead of the
"const struct rte_flow_action *" pointer.
In the entrance of mlx5 PMD callback for update, the validation is
called for all indirect actions. But for conntrack type, the pointer
is no longer with rte_flow_action pointer type and it will cause an
incorrect casting and error.
The content for updating should only be validated when needed. It
should skip the validation in the entrance. Right now, the content
was already added before updating the hardware by WQE. So the type
of the indirect action should be checked before calling the action
validate function.
When creating a new conntrack object, the validation is still needed
since all the content will be used to update the hardware context.
Fixes: 4b61b8774be9 ("ethdev: introduce indirect flow action")
Signed-off-by: Bing Zhao <bingz at nvidia.com>
Acked-by: Ori Kam <orika at nvidia.com>
---
drivers/net/mlx5/mlx5_flow.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index b98dc9ffb2..e3ca7b6093 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -10132,9 +10132,18 @@ mlx5_action_handle_update(struct rte_eth_dev *dev,
const struct mlx5_flow_driver_ops *fops =
flow_get_drv_ops(flow_get_drv_type(dev, &attr));
int ret;
+ uint32_t act_idx = (uint32_t)(uintptr_t)handle;
+ uint32_t type = act_idx >> MLX5_INDIRECT_ACTION_TYPE_OFFSET;
- ret = flow_drv_action_validate(dev, NULL,
- (const struct rte_flow_action *)update, fops, error);
+ switch (type) {
+ case MLX5_INDIRECT_ACTION_TYPE_CT:
+ ret = 0;
+ break;
+ default:
+ ret = flow_drv_action_validate(dev, NULL,
+ (const struct rte_flow_action *)update,
+ fops, error);
+ }
if (ret)
return ret;
return flow_drv_action_update(dev, handle, update, fops,
--
2.25.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2023-08-09 21:51:21.084133500 +0800
+++ 0115-net-mlx5-fix-validation-for-conntrack-indirect-actio.patch 2023-08-09 21:51:18.284352000 +0800
@@ -1 +1 @@
-From a9156d685fa1b8927f68606c69521c5eae3184a2 Mon Sep 17 00:00:00 2001
+From 0495e8506e9682fe63ec77b3b294a00c9611b19f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit a9156d685fa1b8927f68606c69521c5eae3184a2 ]
@@ -26 +28,0 @@
-Cc: stable at dpdk.org
@@ -35 +37 @@
-index 4b567f61dd..9bd92f28fd 100644
+index b98dc9ffb2..e3ca7b6093 100644
@@ -38 +40 @@
-@@ -10753,9 +10753,18 @@ mlx5_action_handle_update(struct rte_eth_dev *dev,
+@@ -10132,9 +10132,18 @@ mlx5_action_handle_update(struct rte_eth_dev *dev,
More information about the stable
mailing list