Re: [PATCH net-next] net/mlx5e: flower: check for unsupported control flags

From: Jianbo Liu
Date: Mon Apr 22 2024 - 02:58:20 EST


On Wed, 2024-04-17 at 13:51 +0000, Asbjørn Sloth Tønnesen wrote:
> Use flow_rule_is_supp_control_flags() to reject filters with
> unsupported control flags.
>
> In case any unsupported control flags are masked,
> flow_rule_is_supp_control_flags() sets a NL extended
> error message, and we return -EOPNOTSUPP.
>
> Only compile-tested.
>
> Signed-off-by: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
> ---
>  drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> index aeb32cb27182..5019280cfcdd 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> @@ -2819,6 +2819,11 @@ static int __parse_cls_flower(struct
> mlx5e_priv *priv,
>                         else
>                                 *match_level = MLX5_MATCH_L3;
>                 }
> +
> +               if
> (!flow_rule_is_supp_control_flags(FLOW_DIS_IS_FRAGMENT |
> +                                                   
> FLOW_DIS_FIRST_FRAG,

We reject FLOW_DIS_FIRST_FRAG at several lines above. I think you can
remove those lines and add FLOW_DIS_IS_FRAGMENT as the only supported
flag here.

Thanks!
Jianbo

> +                                                    match.mask-
> >flags, extack))
> +                       return -EOPNOTSUPP;
>         }
>  
>         if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) {