From 0888c011d515b635dab58ec604244b5323282110 Mon Sep 17 00:00:00 2001 From: Rongwei Liu Date: Tue, 2 Nov 2021 09:22:40 +0200 Subject: [PATCH] net/mlx5: fix meter policy validation When a user specifies meter policy like "g_actions queue / end y_actions queue / r_action drop / end", validation logic missed to set meter policy mode and it took a random value from the stack. Define ALL policy modes for the mentioned cases. Fixes: 4b7bf3ffb473 ("net/mlx5: support yellow in meter policy validation") Cc: stable@dpdk.org Signed-off-by: Rongwei Liu Acked-by: Matan Azrad Reviewed-by: Bing Zhao --- drivers/net/mlx5/mlx5.h | 2 ++ drivers/net/mlx5/mlx5_flow_dv.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index bdadd6e024..8466531060 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -633,6 +633,8 @@ struct mlx5_dev_shared_port { #define MLX5_MTR_TABLE_ID_DROP 2 /* Priority of the meter policy matcher. */ #define MLX5_MTR_POLICY_MATCHER_PRIO 0 +/* Green & yellow color valid for now. */ +#define MLX5_MTR_POLICY_MODE_ALL 0 /* Default policy. */ #define MLX5_MTR_POLICY_MODE_DEF 1 /* Only green color valid. */ diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 75ed0156c3..fa017c5521 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -17750,6 +17750,8 @@ flow_dv_validate_mtr_policy_acts(struct rte_eth_dev *dev, *policy_mode = MLX5_MTR_POLICY_MODE_OG; } else if (def_green && !def_yellow) { *policy_mode = MLX5_MTR_POLICY_MODE_OY; + } else { + *policy_mode = MLX5_MTR_POLICY_MODE_ALL; } /* Set to empty string in case of NULL pointer access by user. */ flow_err.message = ""; -- 2.39.5