mbox series

[0/5] net/mlx5: add inner tunnel items support on E-Switch

Message ID 1545924885-6215-1-git-send-email-viacheslavo@mellanox.com (mailing list archive)
Headers
Series net/mlx5: add inner tunnel items support on E-Switch |

Message

Slava Ovsiienko Dec. 27, 2018, 3:34 p.m. UTC
  The generic Flow rule for tunnels looks like:

flow create <attributes> <port> \
            <tunnel outer items pattern> \
            <tunnel vni item> \
            <tunnel inner items pattern>
			    
Current design supports only L2 addresses as inner pattern
items. This patchset adds support for L3 (IPv4/IPv6) addresses
and L4 (TCP/UDP) ports items as inner tunnel parameters.
	
Also this patchset adds support for inner and outer ethernet
types for the E-Switch Flows with tunnels. Inner and outer ethernet
type match  can be specified with ethernet items, vlan items, or
implicitly deduced from IP address items. The tcm_info field 
in Netlink message tcm structure is filled always with outer
protocol.
	 
Cc: stable@dpdk.org
	
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

Viacheslav Ovsiienko (5):
  net/mlx5: remove checks for outer tunnel items on E-Switch
  net/mlx5: add tunnel inner items validation on E-Switch
  net/mlx5: add tunnel inner items support on E-Switch
  net/mlx5: add ethernet type validation on E-Switch
  net/mlx5: add ethernet type support for tunnels on E-Switch

 drivers/net/mlx5/mlx5_flow_tcf.c | 690 ++++++++++++++++++++++-----------------
 1 file changed, 399 insertions(+), 291 deletions(-)
  

Comments

Shahaf Shuler Jan. 13, 2019, 12:11 p.m. UTC | #1
Thursday, December 27, 2018 5:35 PM, Viacheslav Ovsiienko:
> Subject: [dpdk-dev] [PATCH 0/5] net/mlx5: add inner tunnel items support
> on E-Switch
> 
> The generic Flow rule for tunnels looks like:
> 
> flow create <attributes> <port> \
>             <tunnel outer items pattern> \
>             <tunnel vni item> \
>             <tunnel inner items pattern>
> 
> Current design supports only L2 addresses as inner pattern items. This
> patchset adds support for L3 (IPv4/IPv6) addresses and L4 (TCP/UDP) ports
> items as inner tunnel parameters.
> 
> Also this patchset adds support for inner and outer ethernet types for the E-
> Switch Flows with tunnels. Inner and outer ethernet type match  can be
> specified with ethernet items, vlan items, or implicitly deduced from IP
> address items. The tcm_info field in Netlink message tcm structure is filled
> always with outer protocol.
> 
> Cc: stable@dpdk.org
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

Applied to next-net-mlx, thanks. 

> 
> Viacheslav Ovsiienko (5):
>   net/mlx5: remove checks for outer tunnel items on E-Switch
>   net/mlx5: add tunnel inner items validation on E-Switch
>   net/mlx5: add tunnel inner items support on E-Switch
>   net/mlx5: add ethernet type validation on E-Switch
>   net/mlx5: add ethernet type support for tunnels on E-Switch
> 
>  drivers/net/mlx5/mlx5_flow_tcf.c | 690 ++++++++++++++++++++++---------
> --------
>  1 file changed, 399 insertions(+), 291 deletions(-)
> 
> --
> 1.8.3.1
  
Kevin Traynor Jan. 31, 2019, 2:52 p.m. UTC | #2
On 12/27/2018 03:34 PM, Viacheslav Ovsiienko wrote:
> The generic Flow rule for tunnels looks like:
> 
> flow create <attributes> <port> \
>             <tunnel outer items pattern> \
>             <tunnel vni item> \
>             <tunnel inner items pattern>
> 			    
> Current design supports only L2 addresses as inner pattern
> items. This patchset adds support for L3 (IPv4/IPv6) addresses
> and L4 (TCP/UDP) ports items as inner tunnel parameters.
> 	
> Also this patchset adds support for inner and outer ethernet
> types for the E-Switch Flows with tunnels. Inner and outer ethernet
> type match  can be specified with ethernet items, vlan items, or
> implicitly deduced from IP address items. The tcm_info field 
> in Netlink message tcm structure is filled always with outer
> protocol.
> 	 
> Cc: stable@dpdk.org
> 	

Hi Viacheslav - these are new features, not a bugfixes. Are the
stable@dpdk.org tags intentional?

From
http://doc.dpdk.org/guides/contributing/stable.html#what-changes-should-be-backported

--
Features should not be backported to stable releases. It may be
acceptable, in limited cases, to back port features for the LTS release
where:

    There is a justifiable use case (for example a new PMD).
    The change is non-invasive.
    The work of preparing the backport is done by the proposer.
    There is support within the community.
--

Kevin.


> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> 
> Viacheslav Ovsiienko (5):
>   net/mlx5: remove checks for outer tunnel items on E-Switch
>   net/mlx5: add tunnel inner items validation on E-Switch
>   net/mlx5: add tunnel inner items support on E-Switch
>   net/mlx5: add ethernet type validation on E-Switch
>   net/mlx5: add ethernet type support for tunnels on E-Switch
> 
>  drivers/net/mlx5/mlx5_flow_tcf.c | 690 ++++++++++++++++++++++-----------------
>  1 file changed, 399 insertions(+), 291 deletions(-)
>
  
Slava Ovsiienko Jan. 31, 2019, 4:13 p.m. UTC | #3
Hi, Kevin

It is rather refactoring, not new feature, tunnel inner items support is partially present in 18.11.
Yes, this patchset is too big to be simple fix, and updates not so much to be new feature. 
It is very early patch (after 18.11 release), just mailed later, rebase on the top was done 
automatically and quite simple, because it touches merely E-Switch subsystem (merge should
not be difficult - mostly mlx5_flow_tcf.c is changed) and highly desirable to be backported. 
It fixes serious bugs with ether_type field, which limit VLAN and VXLAN functionality on E-Switch.

With best regards,
Slava (aka Viacheslav)

> -----Original Message-----
> From: Kevin Traynor <ktraynor@redhat.com>
> Sent: Thursday, January 31, 2019 16:52
> To: Slava Ovsiienko <viacheslavo@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Thomas Monjalon
> <thomas@monjalon.net>; Yongseok Koh <yskoh@mellanox.com>; Luca
> Boccassi <bluca@debian.org>
> Subject: Re: [dpdk-dev] [PATCH 0/5] net/mlx5: add inner tunnel items support
> on E-Switch
> 
> On 12/27/2018 03:34 PM, Viacheslav Ovsiienko wrote:
> > The generic Flow rule for tunnels looks like:
> >
> > flow create <attributes> <port> \
> >             <tunnel outer items pattern> \
> >             <tunnel vni item> \
> >             <tunnel inner items pattern>
> >
> > Current design supports only L2 addresses as inner pattern items. This
> > patchset adds support for L3 (IPv4/IPv6) addresses and L4 (TCP/UDP)
> > ports items as inner tunnel parameters.
> >
> > Also this patchset adds support for inner and outer ethernet types for
> > the E-Switch Flows with tunnels. Inner and outer ethernet type match
> > can be specified with ethernet items, vlan items, or implicitly
> > deduced from IP address items. The tcm_info field in Netlink message
> > tcm structure is filled always with outer protocol.
> >
> > Cc: stable@dpdk.org
> >
> 
> Hi Viacheslav - these are new features, not a bugfixes. Are the
> stable@dpdk.org tags intentional?
> 
> From
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdoc.dp
> dk.org%2Fguides%2Fcontributing%2Fstable.html%23what-changes-should-be-
> backported&amp;data=02%7C01%7Cviacheslavo%40mellanox.com%7C1d6e08
> fe6f7f47d83f7e08d6878bb56d%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0
> %7C0%7C636845431441557730&amp;sdata=%2Fmgoj2Il%2Fu4CCrkAcETdoMp
> d7Ri5ash%2FUhzGv1dLXLY%3D&amp;reserved=0
> 
> --
> Features should not be backported to stable releases. It may be acceptable, in
> limited cases, to back port features for the LTS release
> where:
> 
>     There is a justifiable use case (for example a new PMD).
>     The change is non-invasive.
>     The work of preparing the backport is done by the proposer.
>     There is support within the community.
> --
> 
> Kevin.
> 
> 
> > Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> >
> > Viacheslav Ovsiienko (5):
> >   net/mlx5: remove checks for outer tunnel items on E-Switch
> >   net/mlx5: add tunnel inner items validation on E-Switch
> >   net/mlx5: add tunnel inner items support on E-Switch
> >   net/mlx5: add ethernet type validation on E-Switch
> >   net/mlx5: add ethernet type support for tunnels on E-Switch
> >
> >  drivers/net/mlx5/mlx5_flow_tcf.c | 690
> > ++++++++++++++++++++++-----------------
> >  1 file changed, 399 insertions(+), 291 deletions(-)
> >
  
Kevin Traynor Feb. 6, 2019, 11 a.m. UTC | #4
On 01/31/2019 04:13 PM, Slava Ovsiienko wrote:
> Hi, Kevin
> 

Hi Slava,

> It is rather refactoring, not new feature, tunnel inner items support is partially present in 18.11.
> Yes, this patchset is too big to be simple fix, and updates not so much to be new feature. 
> It is very early patch (after 18.11 release), just mailed later, rebase on the top was done 
> automatically and quite simple, because it touches merely E-Switch subsystem (merge should
> not be difficult - mostly mlx5_flow_tcf.c is changed) and highly desirable to be backported. 
> It fixes serious bugs with ether_type field, which limit VLAN and VXLAN functionality on E-Switch.
> 

The issue I have is it also adding functionality and more importantly
reworking how some existing behavior is handled (e.g. outer tunnel
validation moving in 1/5). But, yes, it is completely isolated to
mlx5/tcf and applies cleanly, so that is a positive.

As it's a bit grey, I will backport to 18.11 on the understanding that
it will be supported by Mellanox and you will test one of the
18.11.1-RC's to make sure there are no regressions on the existing
behavior - is that reasonable?

thanks,
Kevin.

> With best regards,
> Slava (aka Viacheslav)
> 
>> -----Original Message-----
>> From: Kevin Traynor <ktraynor@redhat.com>
>> Sent: Thursday, January 31, 2019 16:52
>> To: Slava Ovsiienko <viacheslavo@mellanox.com>; Shahaf Shuler
>> <shahafs@mellanox.com>
>> Cc: dev@dpdk.org; stable@dpdk.org; Thomas Monjalon
>> <thomas@monjalon.net>; Yongseok Koh <yskoh@mellanox.com>; Luca
>> Boccassi <bluca@debian.org>
>> Subject: Re: [dpdk-dev] [PATCH 0/5] net/mlx5: add inner tunnel items support
>> on E-Switch
>>
>> On 12/27/2018 03:34 PM, Viacheslav Ovsiienko wrote:
>>> The generic Flow rule for tunnels looks like:
>>>
>>> flow create <attributes> <port> \
>>>             <tunnel outer items pattern> \
>>>             <tunnel vni item> \
>>>             <tunnel inner items pattern>
>>>
>>> Current design supports only L2 addresses as inner pattern items. This
>>> patchset adds support for L3 (IPv4/IPv6) addresses and L4 (TCP/UDP)
>>> ports items as inner tunnel parameters.
>>>
>>> Also this patchset adds support for inner and outer ethernet types for
>>> the E-Switch Flows with tunnels. Inner and outer ethernet type match
>>> can be specified with ethernet items, vlan items, or implicitly
>>> deduced from IP address items. The tcm_info field in Netlink message
>>> tcm structure is filled always with outer protocol.
>>>
>>> Cc: stable@dpdk.org
>>>
>>
>> Hi Viacheslav - these are new features, not a bugfixes. Are the
>> stable@dpdk.org tags intentional?
>>
>> From
>> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdoc.dp
>> dk.org%2Fguides%2Fcontributing%2Fstable.html%23what-changes-should-be-
>> backported&amp;data=02%7C01%7Cviacheslavo%40mellanox.com%7C1d6e08
>> fe6f7f47d83f7e08d6878bb56d%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0
>> %7C0%7C636845431441557730&amp;sdata=%2Fmgoj2Il%2Fu4CCrkAcETdoMp
>> d7Ri5ash%2FUhzGv1dLXLY%3D&amp;reserved=0
>>
>> --
>> Features should not be backported to stable releases. It may be acceptable, in
>> limited cases, to back port features for the LTS release
>> where:
>>
>>     There is a justifiable use case (for example a new PMD).
>>     The change is non-invasive.
>>     The work of preparing the backport is done by the proposer.
>>     There is support within the community.
>> --
>>
>> Kevin.
>>
>>
>>> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
>>>
>>> Viacheslav Ovsiienko (5):
>>>   net/mlx5: remove checks for outer tunnel items on E-Switch
>>>   net/mlx5: add tunnel inner items validation on E-Switch
>>>   net/mlx5: add tunnel inner items support on E-Switch
>>>   net/mlx5: add ethernet type validation on E-Switch
>>>   net/mlx5: add ethernet type support for tunnels on E-Switch
>>>
>>>  drivers/net/mlx5/mlx5_flow_tcf.c | 690
>>> ++++++++++++++++++++++-----------------
>>>  1 file changed, 399 insertions(+), 291 deletions(-)
>>>
>
  
Slava Ovsiienko Feb. 6, 2019, 11:56 a.m. UTC | #5
Hi, Kevin

> As it's a bit grey, I will backport to 18.11 on the understanding that it will be
> supported by Mellanox and you will test one of the 18.11.1-RC's to make sure
> there are no regressions on the existing behavior - is that reasonable?
>
Yes, it is quite reasonable, I will test it. This code is also merged in 19.02, so
the related problems are not very likely.

WBR,
Slava (aka Viacheslav)

> -----Original Message-----
> From: Kevin Traynor <ktraynor@redhat.com>
> Sent: Wednesday, February 6, 2019 13:01
> To: Slava Ovsiienko <viacheslavo@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Thomas Monjalon
> <thomas@monjalon.net>; Yongseok Koh <yskoh@mellanox.com>; Luca
> Boccassi <bluca@debian.org>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 0/5] net/mlx5: add inner tunnel items support
> on E-Switch
> 
> On 01/31/2019 04:13 PM, Slava Ovsiienko wrote:
> > Hi, Kevin
> >
> 
> Hi Slava,
> 
> > It is rather refactoring, not new feature, tunnel inner items support is
> partially present in 18.11.
> > Yes, this patchset is too big to be simple fix, and updates not so much to be
> new feature.
> > It is very early patch (after 18.11 release), just mailed later,
> > rebase on the top was done automatically and quite simple, because it
> > touches merely E-Switch subsystem (merge should not be difficult - mostly
> mlx5_flow_tcf.c is changed) and highly desirable to be backported.
> > It fixes serious bugs with ether_type field, which limit VLAN and VXLAN
> functionality on E-Switch.
> >
> 
> The issue I have is it also adding functionality and more importantly
> reworking how some existing behavior is handled (e.g. outer tunnel validation
> moving in 1/5). But, yes, it is completely isolated to mlx5/tcf and applies
> cleanly, so that is a positive.
> 
> As it's a bit grey, I will backport to 18.11 on the understanding that it will be
> supported by Mellanox and you will test one of the 18.11.1-RC's to make sure
> there are no regressions on the existing behavior - is that reasonable?
> 
> thanks,
> Kevin.
> 
> > With best regards,
> > Slava (aka Viacheslav)
> >
> >> -----Original Message-----
> >> From: Kevin Traynor <ktraynor@redhat.com>
> >> Sent: Thursday, January 31, 2019 16:52
> >> To: Slava Ovsiienko <viacheslavo@mellanox.com>; Shahaf Shuler
> >> <shahafs@mellanox.com>
> >> Cc: dev@dpdk.org; stable@dpdk.org; Thomas Monjalon
> >> <thomas@monjalon.net>; Yongseok Koh <yskoh@mellanox.com>; Luca
> >> Boccassi <bluca@debian.org>
> >> Subject: Re: [dpdk-dev] [PATCH 0/5] net/mlx5: add inner tunnel items
> >> support on E-Switch
> >>
> >> On 12/27/2018 03:34 PM, Viacheslav Ovsiienko wrote:
> >>> The generic Flow rule for tunnels looks like:
> >>>
> >>> flow create <attributes> <port> \
> >>>             <tunnel outer items pattern> \
> >>>             <tunnel vni item> \
> >>>             <tunnel inner items pattern>
> >>>
> >>> Current design supports only L2 addresses as inner pattern items.
> >>> This patchset adds support for L3 (IPv4/IPv6) addresses and L4
> >>> (TCP/UDP) ports items as inner tunnel parameters.
> >>>
> >>> Also this patchset adds support for inner and outer ethernet types
> >>> for the E-Switch Flows with tunnels. Inner and outer ethernet type
> >>> match can be specified with ethernet items, vlan items, or
> >>> implicitly deduced from IP address items. The tcm_info field in
> >>> Netlink message tcm structure is filled always with outer protocol.
> >>>
> >>> Cc: stable@dpdk.org
> >>>
> >>
> >> Hi Viacheslav - these are new features, not a bugfixes. Are the
> >> stable@dpdk.org tags intentional?
> >>
> >> From
> >> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdoc
> >> .dp
> >> dk.org%2Fguides%2Fcontributing%2Fstable.html%23what-changes-should-
> be
> >> -
> >>
> backported&amp;data=02%7C01%7Cviacheslavo%40mellanox.com%7C1d6e08
> >>
> fe6f7f47d83f7e08d6878bb56d%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0
> >>
> %7C0%7C636845431441557730&amp;sdata=%2Fmgoj2Il%2Fu4CCrkAcETdoMp
> >> d7Ri5ash%2FUhzGv1dLXLY%3D&amp;reserved=0
> >>
> >> --
> >> Features should not be backported to stable releases. It may be
> >> acceptable, in limited cases, to back port features for the LTS
> >> release
> >> where:
> >>
> >>     There is a justifiable use case (for example a new PMD).
> >>     The change is non-invasive.
> >>     The work of preparing the backport is done by the proposer.
> >>     There is support within the community.
> >> --
> >>
> >> Kevin.
> >>
> >>
> >>> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
> >>>
> >>> Viacheslav Ovsiienko (5):
> >>>   net/mlx5: remove checks for outer tunnel items on E-Switch
> >>>   net/mlx5: add tunnel inner items validation on E-Switch
> >>>   net/mlx5: add tunnel inner items support on E-Switch
> >>>   net/mlx5: add ethernet type validation on E-Switch
> >>>   net/mlx5: add ethernet type support for tunnels on E-Switch
> >>>
> >>>  drivers/net/mlx5/mlx5_flow_tcf.c | 690
> >>> ++++++++++++++++++++++-----------------
> >>>  1 file changed, 399 insertions(+), 291 deletions(-)
> >>>
> >