ethdev: add IPv6 DSCP option for modify field action

Message ID 20210126033824.29175-1-akozyrev@nvidia.com (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series ethdev: add IPv6 DSCP option for modify field action |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-mellanox-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-testing warning Testing issues

Commit Message

Alexander Kozyrev Jan. 26, 2021, 3:38 a.m. UTC
  IPv6 DSCP field ID is missing from the original list of Field IDs
for MODIFY_FIELD action. Add it to support IPv6 header fully.

Fixes: 73b68f4c54a ("ethdev: introduce generic modify flow action")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
---
 lib/librte_ethdev/rte_flow.h | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Stephen Hemminger Jan. 26, 2021, 3:43 a.m. UTC | #1
On Tue, 26 Jan 2021 03:38:24 +0000
Alexander Kozyrev <akozyrev@nvidia.com> wrote:

> IPv6 DSCP field ID is missing from the original list of Field IDs
> for MODIFY_FIELD action. Add it to support IPv6 header fully.
> 
> Fixes: 73b68f4c54a ("ethdev: introduce generic modify flow action")
> 
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> ---
>  lib/librte_ethdev/rte_flow.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> index 46e8ee70ab..68c68cdd6c 100644
> --- a/lib/librte_ethdev/rte_flow.h
> +++ b/lib/librte_ethdev/rte_flow.h
> @@ -2842,6 +2842,7 @@ enum rte_flow_field_id {
>  	RTE_FLOW_FIELD_IPV4_TTL,
>  	RTE_FLOW_FIELD_IPV4_SRC,
>  	RTE_FLOW_FIELD_IPV4_DST,
> +	RTE_FLOW_FIELD_IPV6_DSCP,
>  	RTE_FLOW_FIELD_IPV6_HOPLIMIT,
>  	RTE_FLOW_FIELD_IPV6_SRC,
>  	RTE_FLOW_FIELD_IPV6_DST,

Adding field in middle of enum will break ABI.
  
Alexander Kozyrev Jan. 26, 2021, 5:21 a.m. UTC | #2
> From: Stephen Hemminger <stephen@networkplumber.org> on Monday, January 25, 2021 22:44
> 
> On Tue, 26 Jan 2021 03:38:24 +0000
> Alexander Kozyrev <akozyrev@nvidia.com> wrote:
> 
> > IPv6 DSCP field ID is missing from the original list of Field IDs
> > for MODIFY_FIELD action. Add it to support IPv6 header fully.
> >
> > Fixes: 73b68f4c54a ("ethdev: introduce generic modify flow action")
> >
> > Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> > ---
> >  lib/librte_ethdev/rte_flow.h | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> > index 46e8ee70ab..68c68cdd6c 100644
> > --- a/lib/librte_ethdev/rte_flow.h
> > +++ b/lib/librte_ethdev/rte_flow.h
> > @@ -2842,6 +2842,7 @@ enum rte_flow_field_id {
> >  	RTE_FLOW_FIELD_IPV4_TTL,
> >  	RTE_FLOW_FIELD_IPV4_SRC,
> >  	RTE_FLOW_FIELD_IPV4_DST,
> > +	RTE_FLOW_FIELD_IPV6_DSCP,
> >  	RTE_FLOW_FIELD_IPV6_HOPLIMIT,
> >  	RTE_FLOW_FIELD_IPV6_SRC,
> >  	RTE_FLOW_FIELD_IPV6_DST,
> 
> Adding field in middle of enum will break ABI.

I added the rte_flow_field_id enum a week ago into 20.11-rc1.
I believe it is not too late to make it right without breaking ABI, don't you think so?
  
Ajit Khaparde Jan. 26, 2021, 5:35 a.m. UTC | #3
On Mon, Jan 25, 2021 at 9:21 PM Alexander Kozyrev <akozyrev@nvidia.com> wrote:
>
> > From: Stephen Hemminger <stephen@networkplumber.org> on Monday, January 25, 2021 22:44
> >
> > On Tue, 26 Jan 2021 03:38:24 +0000
> > Alexander Kozyrev <akozyrev@nvidia.com> wrote:
> >
> > > IPv6 DSCP field ID is missing from the original list of Field IDs
> > > for MODIFY_FIELD action. Add it to support IPv6 header fully.
> > >
> > > Fixes: 73b68f4c54a ("ethdev: introduce generic modify flow action")
> > >
> > > Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> > > ---
> > >  lib/librte_ethdev/rte_flow.h | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> > > index 46e8ee70ab..68c68cdd6c 100644
> > > --- a/lib/librte_ethdev/rte_flow.h
> > > +++ b/lib/librte_ethdev/rte_flow.h
> > > @@ -2842,6 +2842,7 @@ enum rte_flow_field_id {
> > >     RTE_FLOW_FIELD_IPV4_TTL,
> > >     RTE_FLOW_FIELD_IPV4_SRC,
> > >     RTE_FLOW_FIELD_IPV4_DST,
> > > +   RTE_FLOW_FIELD_IPV6_DSCP,
> > >     RTE_FLOW_FIELD_IPV6_HOPLIMIT,
> > >     RTE_FLOW_FIELD_IPV6_SRC,
> > >     RTE_FLOW_FIELD_IPV6_DST,
> >
> > Adding field in middle of enum will break ABI.
>
> I added the rte_flow_field_id enum a week ago into 20.11-rc1.
21.02-rc1

> I believe it is not too late to make it right without breaking ABI, don't you think so?
  
Ajit Khaparde Jan. 26, 2021, 5:36 a.m. UTC | #4
On Mon, Jan 25, 2021 at 7:38 PM Alexander Kozyrev <akozyrev@nvidia.com> wrote:
>
> IPv6 DSCP field ID is missing from the original list of Field IDs
> for MODIFY_FIELD action. Add it to support IPv6 header fully.
>
> Fixes: 73b68f4c54a ("ethdev: introduce generic modify flow action")
>
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>

> ---
>  lib/librte_ethdev/rte_flow.h | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> index 46e8ee70ab..68c68cdd6c 100644
> --- a/lib/librte_ethdev/rte_flow.h
> +++ b/lib/librte_ethdev/rte_flow.h
> @@ -2842,6 +2842,7 @@ enum rte_flow_field_id {
>         RTE_FLOW_FIELD_IPV4_TTL,
>         RTE_FLOW_FIELD_IPV4_SRC,
>         RTE_FLOW_FIELD_IPV4_DST,
> +       RTE_FLOW_FIELD_IPV6_DSCP,
>         RTE_FLOW_FIELD_IPV6_HOPLIMIT,
>         RTE_FLOW_FIELD_IPV6_SRC,
>         RTE_FLOW_FIELD_IPV6_DST,
> --
> 2.24.1
>
  
Stephen Hemminger Jan. 26, 2021, 5:44 a.m. UTC | #5
On Tue, 26 Jan 2021 05:21:23 +0000
Alexander Kozyrev <akozyrev@nvidia.com> wrote:

> > From: Stephen Hemminger <stephen@networkplumber.org> on Monday, January 25, 2021 22:44
> > 
> > On Tue, 26 Jan 2021 03:38:24 +0000
> > Alexander Kozyrev <akozyrev@nvidia.com> wrote:
> >   
> > > IPv6 DSCP field ID is missing from the original list of Field IDs
> > > for MODIFY_FIELD action. Add it to support IPv6 header fully.
> > >
> > > Fixes: 73b68f4c54a ("ethdev: introduce generic modify flow action")
> > >
> > > Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> > > ---
> > >  lib/librte_ethdev/rte_flow.h | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
> > > index 46e8ee70ab..68c68cdd6c 100644
> > > --- a/lib/librte_ethdev/rte_flow.h
> > > +++ b/lib/librte_ethdev/rte_flow.h
> > > @@ -2842,6 +2842,7 @@ enum rte_flow_field_id {
> > >  	RTE_FLOW_FIELD_IPV4_TTL,
> > >  	RTE_FLOW_FIELD_IPV4_SRC,
> > >  	RTE_FLOW_FIELD_IPV4_DST,
> > > +	RTE_FLOW_FIELD_IPV6_DSCP,
> > >  	RTE_FLOW_FIELD_IPV6_HOPLIMIT,
> > >  	RTE_FLOW_FIELD_IPV6_SRC,
> > >  	RTE_FLOW_FIELD_IPV6_DST,  
> > 
> > Adding field in middle of enum will break ABI.  
> 
> I added the rte_flow_field_id enum a week ago into 20.11-rc1.
> I believe it is not too late to make it right without breaking ABI, don't you think so?

Ok if not in release yet
  

Patch

diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h
index 46e8ee70ab..68c68cdd6c 100644
--- a/lib/librte_ethdev/rte_flow.h
+++ b/lib/librte_ethdev/rte_flow.h
@@ -2842,6 +2842,7 @@  enum rte_flow_field_id {
 	RTE_FLOW_FIELD_IPV4_TTL,
 	RTE_FLOW_FIELD_IPV4_SRC,
 	RTE_FLOW_FIELD_IPV4_DST,
+	RTE_FLOW_FIELD_IPV6_DSCP,
 	RTE_FLOW_FIELD_IPV6_HOPLIMIT,
 	RTE_FLOW_FIELD_IPV6_SRC,
 	RTE_FLOW_FIELD_IPV6_DST,