> -----Original Message-----
> From: Ferruh Yigit <ferruh.yi...@intel.com>
> Sent: Thursday, November 25, 2021 13:54
> To: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>; Ajit Khaparde
> <ajit.khapa...@broadcom.com>; Somnath Kotur
> <somnath.ko...@broadcom.com>; Rahul Lakkireddy
> <rahul.lakkire...@chelsio.com>; Slava Ovsiienko <viachesl...@nvidia.com>
> Cc: NBU-Contact-Thomas Monjalon (EXTERNAL) <tho...@monjalon.net>;
> dev@dpdk.org
> Subject: Re: [PATCH v3] ethdev: deprecate header fields and metadata flow
> actions
> 
> On 11/24/2021 3:37 PM, Viacheslav Ovsiienko wrote:
> > The generic RTE_FLOW_ACTION_TYPE_MODIFY_FIELD action was
> introduced by
> > [1]. This action provides an unified way to perform various arithmetic
> > and transfer operations over packet network header fields and packet
> > metadata.
> >
> > [1] commit 641dbe4fb053 ("net/mlx5: support modify field flow action")
> >
> > On other side there are a bunch of multiple legacy actions, that can
> > be superseded by the generic modify field action:
[.. snip ..]
> >
> > The VLAN set actions are interrelated to VLAN header insertion/removal
> > and supported by multiple PMDs and supposed to be just deprecated but
> > not be removed in 22.11.
> >
> 
> Why not remove them for v22.11? Do you think PMDs can't change the
> existing implementation until 22.11?

Yes,  this is a main concern - these actions are supported by multiple PMDs,
and its handling might be a little bit complicated. For example, in mlx5
SET_VLAN_ID can be translated into different HW/FW primitives
depending on presence of PUSH_VLAN action. I think any PMD should do
the check of VLAN actions order for the case of PUSH, replacing with
MODIFY_FIELD would sophisticate the check

In mlx5 we are going to support MODIFY_FIELD and kept SET_VLAN_XX
in any combinations, but, actually, there is no objection about dropping
SET_VLAN_XXX  regarding mlx5. I just would not like to force
the commitments for that from other PMDs.

> > Signed-off-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
> >
> > --
> > v2  - deprecation.rst is updated
> > v3  - doc comments addressed
> >      - commit message comments addressed
> >      - SET_VLAN_VID and SET_VLAN_PCP actions deprecated, but will not
> >        be removed in 22.11
> 
> Deprecated symbols are to prevent new code using them, but for this case
> there is no alternative, since PMDs still don't support
> 'RTE_FLOW_ACTION_TYPE_MODIFY_FIELD' yet.
> This patch is forcing users to use deprecated actions (except from mlx).
> 
> What about a slight change:
> 1- In this release, update header/document as
> 'RTE_FLOW_ACTION_TYPE_MODIFY_FIELD'
>     is preferred way if supported. Instead of deprecating old ones.
> 
> 2- Have an agreement with PMD maintainers to switch to new action before
> v22.11,
>     and don't accept old action implementation in PMDs anymore.
>     Based on agreement update 'deprecation.rst' in this release to note that
>     old actions will be removed on v22.11.
>     (It would be good to have a check to prevent old actions merged during 
> that
> time.)
> 
> 3- In v22.11, remove old actions, the PMDs that don't support MODIFY_FIELD
>     action will lose the feature.
>
> What do you think?

In my opinion, deprecation warns about coming changes - entity is going to be
removed or changed. It does not force to take some immediate action now,
just to be aware about.

There are two questions:
- do we want to replace a bunch of legacy actions with new one? I suppose - 
yes, there
  is a lot of advantages
- are we going to do this with MODIFY_FIELD? Yes, this is an intention.

So, we have answers for these questions now, and should handle legacy actions 
accordingly -
mark as deprecated and provide the clue about MODIFY_FIELD.

The question remaining - how we are going to proceed. Actions can't be removed 
till
alternative is provided. So, in my understanding the process should be:

A. mark actions as deprecated, to advertise an intention
B. implement MODIFY_FIELD support (maintainers agreement/commitment), assign 
the due date for this
C. advertise the date of legacy actions removal (if it was not claimed in B)
D. remove legacy actions entirely

We are doing step A now.
Also step B is imposed by advertising the removal date. It is ultimate 
approach, and is not exactly what we need.
Do we have alternative softened way to encourage PMDs to be updated? No 
objections to follow 😊.

Summary:
- If we are OK about intention - step A should be taken, we should emit 
deprecation
- we need to gain "B". Now it is proposed to do with advertising the removal 
date. Alternatives?

With best regards,
Slava

Reply via email to