[PATCH] net/mlx5: fix wrong decap action checking in sample flow
Jiawei Wang
jiaweiw at nvidia.com
Wed Oct 11 08:36:31 CEST 2023
This patch uses the temp variable to check the current action type,
to avoid overlap the sample action following the decap.
Fixes: 7356aec64c48 ("net/mlx5: fix mirror flow split with L3 encapsulation")
Cc: stable at dpdk.org
Signed-off-by: Jiawei Wang <jiaweiw at nvidia.com>
Acked-by: Suanming Mou <suanmingm at nvidia.com>
---
drivers/net/mlx5/mlx5_flow.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 8ad85e6027..772f6afb66 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -6159,6 +6159,7 @@ flow_check_match_action(const struct rte_flow_action actions[],
{
const struct rte_flow_action_sample *sample;
const struct rte_flow_action_raw_decap *decap;
+ const struct rte_flow_action *action_cur = NULL;
int actions_n = 0;
uint32_t ratio = 0;
int sub_type = 0;
@@ -6219,12 +6220,12 @@ flow_check_match_action(const struct rte_flow_action actions[],
break;
case RTE_FLOW_ACTION_TYPE_RAW_DECAP:
decap = actions->conf;
- while ((++actions)->type == RTE_FLOW_ACTION_TYPE_VOID)
+ action_cur = actions;
+ while ((++action_cur)->type == RTE_FLOW_ACTION_TYPE_VOID)
;
- actions_n++;
- if (actions->type == RTE_FLOW_ACTION_TYPE_RAW_ENCAP) {
+ if (action_cur->type == RTE_FLOW_ACTION_TYPE_RAW_ENCAP) {
const struct rte_flow_action_raw_encap *encap =
- actions->conf;
+ action_cur->conf;
if (decap->size <=
MLX5_ENCAPSULATION_DECISION_SIZE &&
encap->size >
--
2.18.1
More information about the stable
mailing list