The traffic management API defines leaf WRED parameters as valid only
when the congestion management mode is WRED. DCF only accepts tail drop,
but still validates the WRED profile and shared contexts. A tail-drop
node with a zero-initialized, unused WRED profile is therefore rejected
unless the application supplies RTE_TM_WRED_PROFILE_ID_NONE.

Compare the mode explicitly against RTE_TM_CMAN_TAIL_DROP and reject
unsupported modes with a precise error message. Do not validate WRED
parameters for the supported tail-drop mode.

Fixes: 3a6bfc37eaf4 ("net/ice: support QoS config VF bandwidth in DCF")
Cc: [email protected]

Signed-off-by: Artem Novikov <[email protected]>
---
 drivers/net/intel/ice/ice_dcf_sched.c | 23 ++---------------------
 1 file changed, 2 insertions(+), 21 deletions(-)

diff --git a/drivers/net/intel/ice/ice_dcf_sched.c 
b/drivers/net/intel/ice/ice_dcf_sched.c
index 
795b6e683df55d447163e3f447b4e5b6f17552cd..5b5a90b37afec90619633539749c93993bc42616
 100644
--- a/drivers/net/intel/ice/ice_dcf_sched.c
+++ b/drivers/net/intel/ice/ice_dcf_sched.c
@@ -200,28 +200,9 @@ ice_dcf_node_param_check(struct ice_dcf_hw *hw, uint32_t 
node_id,
        }
 
        /* for leaf node */
-       if (params->leaf.cman) {
+       if (params->leaf.cman != RTE_TM_CMAN_TAIL_DROP) {
                error->type = RTE_TM_ERROR_TYPE_NODE_PARAMS_CMAN;
-               error->message = "Congestion management not supported";
-               return -EINVAL;
-       }
-       if (params->leaf.wred.wred_profile_id !=
-           RTE_TM_WRED_PROFILE_ID_NONE) {
-               error->type =
-                       RTE_TM_ERROR_TYPE_NODE_PARAMS_WRED_PROFILE_ID;
-               error->message = "WRED not supported";
-               return -EINVAL;
-       }
-       if (params->leaf.wred.shared_wred_context_id) {
-               error->type =
-                       RTE_TM_ERROR_TYPE_NODE_PARAMS_SHARED_WRED_CONTEXT_ID;
-               error->message = "WRED not supported";
-               return -EINVAL;
-       }
-       if (params->leaf.wred.n_shared_wred_contexts) {
-               error->type =
-                       RTE_TM_ERROR_TYPE_NODE_PARAMS_N_SHARED_WRED_CONTEXTS;
-               error->message = "WRED not supported";
+               error->message = "Only tail drop is supported";
                return -EINVAL;
        }
 
-- 
2.43.0

Reply via email to