DPDK patches and discussions
 help / color / mirror / Atom feed
* Deprecated packet modification flow actions
@ 2024-03-08 16:17 Dariusz Sosnowski
  2024-03-11  1:42 ` Chaoyong He
  0 siblings, 1 reply; 4+ messages in thread
From: Dariusz Sosnowski @ 2024-03-08 16:17 UTC (permalink / raw)
  To: NBU-Contact-Thomas Monjalon (EXTERNAL),
	Ferruh Yigit, Andrew Rybchenko, Ori Kam, Ajit Khaparde,
	Somnath Kotur, Rahul Lakkireddy, Chaoyong He
  Cc: dev, techboard

Hi all,

I would like to start a discussion about legacy flow actions for packet modification.
As of DPDK 21.11 many packet modification flow actions were deprecated in favor of generic
RTE_FLOW_ACTION_TYPE_MODIFY_FIELD action (see [1]).
I compiled a review of the current state of all deprecated actions along with changes since 21.11:

RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL    removed in 22.11
RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL    removed in 22.11
RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL      removed in 22.11
RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL      bnxt*, sfc
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT    removed in 22.11
RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN     removed in 22.11
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC       bnxt, cxgbe, mlx5, nfp (from 22.11), sfc (from 23.07)
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST       bnxt, cxgbe, mlx5, nfp (from 22.11), sfc (from 23.07)
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC       bnxt*, cxgbe, mlx5, nfp (from 22.11)
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST       bnxt*, cxgbe, mlx5, nfp (from 22.11)
RTE_FLOW_ACTION_TYPE_SET_TP_SRC         bnxt, cxgbe, mlx5, nfp (from 22.11), sfc (from 23.07)
RTE_FLOW_ACTION_TYPE_SET_TP_DST         bnxt, cxgbe, mlx5, nfp (from 22.11), sfc (from 23.07)
RTE_FLOW_ACTION_TYPE_DEC_TTL            bnxt, mlx5, sfc
RTE_FLOW_ACTION_TYPE_SET_TTL            bnxt*, mlx5, nfp (from 22.11)
RTE_FLOW_ACTION_TYPE_SET_MAC_SRC        bnxt, cxgbe, mlx5, nfp (from 22.11), sfc
RTE_FLOW_ACTION_TYPE_SET_MAC_DST        bnxt, cxgbe, mlx5, nfp (from 22.11), sfc
RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ        bnxt*, mlx5
RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ        bnxt*, mlx5
RTE_FLOW_ACTION_TYPE_INC_TCP_ACK        bnxt*, mlx5
RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK        bnxt*, mlx5
RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP      mlx5, nfp (from 22.11)
RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP      mlx5, nfp (from 22.11)
RTE_FLOW_ACTION_TYPE_SET_TAG            mlx5
RTE_FLOW_ACTION_TYPE_SET_META           mlx5

bnxt* - Based on my analysis, this action type is used only to reject unsupported actions.

RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action itself is supported only by mlx5 PMD.

Question to ethdev and flow API maintainers, and to technical board:

As of now, MODIFY_FIELD action support in mlx5 PMD covers all deprecated modify actions.
Legacy flow actions can be removed from mlx5 PMD.
What in your opinion would be an appropriate timeline for removing them? Should we wait until 24.11 LTS release?

Question to driver maintainers:

Do you have plans to add support for RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action in future releases?

[1]: commit bef7c9ff285a ("ethdev: announce migration to generic flow modify action")

Best regards,
Dariusz Sosnowski

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Deprecated packet modification flow actions
  2024-03-08 16:17 Deprecated packet modification flow actions Dariusz Sosnowski
@ 2024-03-11  1:42 ` Chaoyong He
  2024-03-15  9:24   ` Dariusz Sosnowski
  0 siblings, 1 reply; 4+ messages in thread
From: Chaoyong He @ 2024-03-11  1:42 UTC (permalink / raw)
  To: Dariusz Sosnowski, NBU-Contact-Thomas Monjalon (EXTERNAL),
	Ferruh Yigit, Andrew Rybchenko, Ori Kam, Ajit Khaparde,
	Somnath Kotur, Rahul Lakkireddy
  Cc: dev, techboard



> -----Original Message-----
> From: Dariusz Sosnowski <dsosnowski@nvidia.com>
> Sent: Saturday, March 9, 2024 12:17 AM
> To: NBU-Contact-Thomas Monjalon (EXTERNAL) <thomas@monjalon.net>;
> Ferruh Yigit <ferruh.yigit@amd.com>; Andrew Rybchenko
> <andrew.rybchenko@oktetlabs.ru>; Ori Kam <orika@nvidia.com>; Ajit
> Khaparde <ajit.khaparde@broadcom.com>; Somnath Kotur
> <somnath.kotur@broadcom.com>; Rahul Lakkireddy
> <rahul.lakkireddy@chelsio.com>; Chaoyong He <chaoyong.he@corigine.com>
> Cc: dev@dpdk.org; techboard@dpdk.org
> Subject: Deprecated packet modification flow actions
> 
> Hi all,
> 
> I would like to start a discussion about legacy flow actions for packet
> modification.
> As of DPDK 21.11 many packet modification flow actions were deprecated in
> favor of generic RTE_FLOW_ACTION_TYPE_MODIFY_FIELD action (see [1]).
> I compiled a review of the current state of all deprecated actions along with
> changes since 21.11:
> 
> RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL    removed in 22.11
> RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL    removed in 22.11
> RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL      removed in 22.11
> RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL      bnxt*, sfc
> RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT    removed in 22.11
> RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN     removed in 22.11
> RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC       bnxt, cxgbe, mlx5, nfp (from
> 22.11), sfc (from 23.07)
> RTE_FLOW_ACTION_TYPE_SET_IPV4_DST       bnxt, cxgbe, mlx5, nfp (from
> 22.11), sfc (from 23.07)
> RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC       bnxt*, cxgbe, mlx5, nfp (from
> 22.11)
> RTE_FLOW_ACTION_TYPE_SET_IPV6_DST       bnxt*, cxgbe, mlx5, nfp (from
> 22.11)
> RTE_FLOW_ACTION_TYPE_SET_TP_SRC         bnxt, cxgbe, mlx5, nfp (from
> 22.11), sfc (from 23.07)
> RTE_FLOW_ACTION_TYPE_SET_TP_DST         bnxt, cxgbe, mlx5, nfp (from
> 22.11), sfc (from 23.07)
> RTE_FLOW_ACTION_TYPE_DEC_TTL            bnxt, mlx5, sfc
> RTE_FLOW_ACTION_TYPE_SET_TTL            bnxt*, mlx5, nfp (from 22.11)
> RTE_FLOW_ACTION_TYPE_SET_MAC_SRC        bnxt, cxgbe, mlx5, nfp (from
> 22.11), sfc
> RTE_FLOW_ACTION_TYPE_SET_MAC_DST        bnxt, cxgbe, mlx5, nfp (from
> 22.11), sfc
> RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ        bnxt*, mlx5
> RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ        bnxt*, mlx5
> RTE_FLOW_ACTION_TYPE_INC_TCP_ACK        bnxt*, mlx5
> RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK        bnxt*, mlx5
> RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP      mlx5, nfp (from 22.11)
> RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP      mlx5, nfp (from 22.11)
> RTE_FLOW_ACTION_TYPE_SET_TAG            mlx5
> RTE_FLOW_ACTION_TYPE_SET_META           mlx5
> 
> bnxt* - Based on my analysis, this action type is used only to reject
> unsupported actions.
> 
> RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action itself is supported only
> by mlx5 PMD.
> 
> Question to ethdev and flow API maintainers, and to technical board:
> 
> As of now, MODIFY_FIELD action support in mlx5 PMD covers all deprecated
> modify actions.
> Legacy flow actions can be removed from mlx5 PMD.
> What in your opinion would be an appropriate timeline for removing them?
> Should we wait until 24.11 LTS release?
> 
> Question to driver maintainers:
> 
> Do you have plans to add support for
> RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action in future releases?

NFP plans support RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action in 24.07 or 24.11.
For remove of legacy flow, does there also correspond patches in OVS project?

> 
> [1]: commit bef7c9ff285a ("ethdev: announce migration to generic flow
> modify action")
> 
> Best regards,
> Dariusz Sosnowski

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: Deprecated packet modification flow actions
  2024-03-11  1:42 ` Chaoyong He
@ 2024-03-15  9:24   ` Dariusz Sosnowski
  2024-03-15 13:34     ` Kevin Traynor
  0 siblings, 1 reply; 4+ messages in thread
From: Dariusz Sosnowski @ 2024-03-15  9:24 UTC (permalink / raw)
  To: Chaoyong He, NBU-Contact-Thomas Monjalon (EXTERNAL),
	Ferruh Yigit, Andrew Rybchenko, Ori Kam, Ajit Khaparde,
	Somnath Kotur, Rahul Lakkireddy
  Cc: dev, techboard

> NFP plans support RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action in
> 24.07 or 24.11.
> For remove of legacy flow, does there also correspond patches in OVS project?
I am not familiar with any patches to OVS. Thanks for raising this.

For the record, in latest commit on main branch in OVS (commit fa0dfa18d534) I see that the following modify actions are used:

RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
RTE_FLOW_ACTION_TYPE_SET_MAC_DST
RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
RTE_FLOW_ACTION_TYPE_SET_TTL
RTE_FLOW_ACTION_TYPE_SET_TP_SRC
RTE_FLOW_ACTION_TYPE_SET_TP_DST
RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
RTE_FLOW_ACTION_TYPE_SET_IPV6_DST

We'd need to sync with OVS developers, but I assume we cannot just remove these without providing a proper replacement, so the functionality is not broken.
I think that, once there's an agreement on the timeline of implementing MODIFY_FIELD in PMDs, we'd need to work
with OVS to migrate it to MODIFY_FIELD. After OVS uses MODIFY_FIELD actions, deprecated actions could be safely removed from OVS and DPDK.

What do you all think?

Also, this opens a question about other upstream projects using deprecated actions. Do you know if there are other projects besides OVS?

Best regards,
Dariusz Sosnowski

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Deprecated packet modification flow actions
  2024-03-15  9:24   ` Dariusz Sosnowski
@ 2024-03-15 13:34     ` Kevin Traynor
  0 siblings, 0 replies; 4+ messages in thread
From: Kevin Traynor @ 2024-03-15 13:34 UTC (permalink / raw)
  To: Dariusz Sosnowski, Chaoyong He,
	NBU-Contact-Thomas Monjalon (EXTERNAL),
	Ferruh Yigit, Andrew Rybchenko, Ori Kam, Ajit Khaparde,
	Somnath Kotur, Rahul Lakkireddy
  Cc: dev, techboard

On 15/03/2024 09:24, Dariusz Sosnowski wrote:
>> NFP plans support RTE_FLOW_ACTION_TYPE_MODIFY_FIELD flow action in
>> 24.07 or 24.11.
>> For remove of legacy flow, does there also correspond patches in OVS project?
> I am not familiar with any patches to OVS. Thanks for raising this.
> 
> For the record, in latest commit on main branch in OVS (commit fa0dfa18d534) I see that the following modify actions are used:
> 
> RTE_FLOW_ACTION_TYPE_SET_MAC_SRC
> RTE_FLOW_ACTION_TYPE_SET_MAC_DST
> RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
> RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
> RTE_FLOW_ACTION_TYPE_SET_TTL
> RTE_FLOW_ACTION_TYPE_SET_TP_SRC
> RTE_FLOW_ACTION_TYPE_SET_TP_DST
> RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
> RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
> 
> We'd need to sync with OVS developers, but I assume we cannot just remove these without providing a proper replacement, so the functionality is not broken.

Yes, but I'd add that this is a general point about the API, regardless
of OVS or other projects.


> I think that, once there's an agreement on the timeline of implementing MODIFY_FIELD in PMDs, we'd need to work
> with OVS to migrate it to MODIFY_FIELD. After OVS uses MODIFY_FIELD actions, deprecated actions could be safely removed from OVS and DPDK.
> 

Ideally, there would be some overlap where both methods are present and
fully supported for a couple of releases. That would ease integration
for users, rather than having an abrupt switchover date.

OVS only takes DPDK LTS versions, so it could only take the next YY.11
release with this change.

Any OVS patches to switchover would need to be ready/reviewed in OVS
before the DPDK YY.11 release integration, otherwise it could delay
updating DPDK version and missing other new functionality/new drivers etc.

There is an OVS 'dpdk-latest' experimental branch that is paired with
head of DPDK main branch. You can send OVS patches to it for new DPDK
changes to refine and test with, in advance of a DPDK YY.11 release.

> What do you all think?
> > Also, this opens a question about other upstream projects using
deprecated actions. Do you know if there are other projects besides OVS?
> 

A quick search through some projects and I didn't see them used elsewhere.

thanks,
Kevin.

> Best regards,
> Dariusz Sosnowski
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-03-15 13:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-08 16:17 Deprecated packet modification flow actions Dariusz Sosnowski
2024-03-11  1:42 ` Chaoyong He
2024-03-15  9:24   ` Dariusz Sosnowski
2024-03-15 13:34     ` Kevin Traynor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).