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 <[email protected]>
---
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,
+ match.mask->flags, extack))
+ return -EOPNOTSUPP;
}
if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) {
--
2.43.0
On Wed, Apr 17, 2024 at 01:51:09PM +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 <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
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 <[email protected]>
> ---
> 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)) {
Hi Jianbo,
Thank you for the review.
On 4/22/24 6:58 AM, Jianbo Liu wrote:
> 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 <[email protected]>
>> ---
>> 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.
Sure, I can do that. I originally kept it, since the error message was
more user-friendly.
--
Best regards
Asbjørn Sloth Tønnesen
Network Engineer
Fiberby - AS42541