[dpdk-dev] [PATCH] net/mlx5: fix flow META item validation

Matan Azrad matan at mellanox.com
Wed Jul 1 21:33:53 CEST 2020


Done

Get Outlook for Android<https://aka.ms/ghei36>

________________________________
From: Asaf Penso <asafp at mellanox.com>
Sent: Wednesday, July 1, 2020 2:19:10 PM
To: Matan Azrad <matan at mellanox.com>
Cc: Shy Shyman <shys at mellanox.com>; Raslan Darawsheh <rasland at mellanox.com>
Subject: FW: [dpdk-dev] [PATCH] net/mlx5: fix flow META item validation

Matan, can you please ACK in ML as well?
Shy didn't add your ACK from the GitHub.

Regards,
Asaf Penso

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Shy Shyman
> Sent: Sunday, June 28, 2020 12:37 PM
> To: dev at dpdk.org
> Cc: Matan Azrad <matan at mellanox.com>; Slava Ovsiienko
> <viacheslavo at mellanox.com>; stable at dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix flow META item validation
>
> When flow is inserted with meta match item it requires a certain
> register support.
> As part of the flow validation of such flows, the validation
> function is missing a check that the mlx5 driver is not in
> legacy mode in terms of extended meta data support
> (MLX5_XMETA_MODE_LEGACY flag).
> If the driver is in legacy mode it will cause downstream
> function that allocates needed register for meta data.
>
> The fix checks explicitly the conditions for support of
> meta data in FDB mode. if the conditions are not met
> an error message will be issued.
>
> Fixes: 9bf26e1318 ("ethdev: move egress metadata to dynamic field")
> Cc: viacheslavo at mellanox.com
> Cc: stable at dpdk.org
>
> Signed-off-by: Shy Shyman <shys at mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_flow_dv.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c
> index 6318bd99cd..e037643c98 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -1479,6 +1479,13 @@ flow_dv_validate_item_meta(struct rte_eth_dev
> *dev __rte_unused,
>                                          "isn't supported");
>                if (reg != REG_A)
>                        nic_mask.data = priv->sh->dv_meta_mask;
> +     } else if (attr->transfer) {
> +             return rte_flow_error_set(error, ENOTSUP,
> +                                     RTE_FLOW_ERROR_TYPE_ITEM, item,
> +                                     "extended metadata feature "
> +                                     "should be enabled when "
> +                                     "meta item is requested "
> +                                     "with e-switch mode ");
>        }
>        if (!mask)
>                mask = &rte_flow_item_meta_mask;
> --
> 2.21.0



More information about the dev mailing list