From f8c42c53ce744180e1fb4203b2cf976054726360 Mon Sep 17 00:00:00 2001 From: Bing Zhao Date: Thu, 29 Jul 2021 19:04:05 +0300 Subject: [PATCH] net/mlx5: fix meter hierarchy validation with yellow In mlx5 PMD, the meter hierarchy only supports the green color. It means that a meter action can only be in the green action list. In the meanwhile, the yellow action list should be empty now. Any action for the yellow color policy will be considered invalid if the green color policy is a hierarchy. Also, the error message printing of meter hierarchy validation is fixed by removing an incorrect checking. Fixes: 4b7bf3ffb473 ("net/mlx5: support yellow in meter policy validation") Fixes: a3b7af90baba ("net/mlx5: validate meter action in policy") Signed-off-by: Bing Zhao Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow_dv.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 2de6b4f9e2..059bd25efc 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -17691,9 +17691,14 @@ flow_dv_validate_mtr_policy_acts(struct rte_eth_dev *dev, return -rte_mtr_error_set(error, ENOTSUP, RTE_MTR_ERROR_TYPE_METER_POLICY, - NULL, flow_err.message ? - flow_err.message : - "Meter hierarchy only supports GREEN color."); + NULL, + "Meter hierarchy only supports GREEN color."); + if (*policy_mode != MLX5_MTR_POLICY_MODE_OG) + return -rte_mtr_error_set(error, + ENOTSUP, + RTE_MTR_ERROR_TYPE_METER_POLICY, + NULL, + "No yellow policy should be provided in meter hierarchy."); mtr = act->conf; ret = flow_dv_validate_policy_mtr_hierarchy(dev, mtr->mtr_id, -- 2.39.5