[dpdk-dev] [PATCH] net/mlx5: do not allow copy to mark via modify field
Slava Ovsiienko
viacheslavo at nvidia.com
Wed Jul 14 08:30:23 CEST 2021
Hi, Alexander
> -----Original Message-----
> From: Alexander Kozyrev <akozyrev at nvidia.com>
> Sent: Wednesday, June 16, 2021 21:35
> To: dev at dpdk.org
> Cc: Raslan Darawsheh <rasland at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; Matan Azrad <matan at nvidia.com>
> Subject: [PATCH] net/mlx5: do not allow copy to mark via modify field
>
> Mark requires a tag resource to be registered as part of the value assigning. It
> is not possible during a copy operation from a packet field. Forbid this in
> MODIFY_FIELD.
Sorry, commit message seems not to be clear even for one who is in context.
"tag resource" - is this hardware resource?
"not possible" - due to hardware limitation?
And I would add few words about the final table "match-set flow tag resource" -
not too many details, just explain - if we copy packet field to MARK substitution register -
we can't handle actual value copying in the "match-set" table.
With best regards,
Slava
>
> Signed-off-by: Alexander Kozyrev <akozyrev at nvidia.com>
> ---
> drivers/net/mlx5/mlx5_flow_dv.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c index dafd37ab93..26b901e32e 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -4797,10 +4797,11 @@ flow_dv_validate_action_modify_field(struct
> rte_eth_dev *dev,
> "source and destination fields"
> " cannot be the same");
> if (action_modify_field->dst.field == RTE_FLOW_FIELD_VALUE ||
> - action_modify_field->dst.field == RTE_FLOW_FIELD_POINTER)
> + action_modify_field->dst.field == RTE_FLOW_FIELD_POINTER ||
> + action_modify_field->dst.field == RTE_FLOW_FIELD_MARK)
> return rte_flow_error_set(error, EINVAL,
> RTE_FLOW_ERROR_TYPE_ACTION, action,
> - "immediate value or a pointer to it"
> + "mark, immediate value or a pointer to it"
> " cannot be used as a destination");
> if (action_modify_field->dst.field == RTE_FLOW_FIELD_START ||
> action_modify_field->src.field == RTE_FLOW_FIELD_START)
> --
> 2.18.2
More information about the dev
mailing list