[v2,0/2] app/testpmd implement VXLAN/NVGRE Encap/Decap

Message ID cover.1529311722.git.nelio.laranjeiro@6wind.com (mailing list archive)
Headers
Series app/testpmd implement VXLAN/NVGRE Encap/Decap |

Message

Nélio Laranjeiro June 18, 2018, 8:52 a.m. UTC
  This series adds an easy and maintainable configuration version support for
those two actions for 18.08 by using global variables in testpmd to store the
necessary information for the tunnel encapsulation.  Those variables are used
in conjunction of RTE_FLOW_ACTION_{VXLAN,NVGRE}_ENCAP action to create easily
the action for flows.

A common way to use it:

 set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
 flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end

 set vxlan ipv6 4 4 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
 flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end

 set nvgre ipv4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
 flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end

 set nvgre ipv6 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
 flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end

This also replace the proposal done by Mohammad Abdul Awal [1] which handles
in a more complex way for the same work.

Note this API has already a modification planned for 18.11 [2] thus those
series should have a limited life for a single release.

[1] https://dpdk.org/ml/archives/dev/2018-May/101403.html
[2] https://dpdk.org/ml/archives/dev/2018-June/103485.html


Changes in v2:

- add default IPv6 values for NVGRE encapsulation.
- replace VXLAN to NVGRE in comments concerning NVGRE layer.

Nelio Laranjeiro (2):
  app/testpmd: add VXLAN encap/decap support
  app/testpmd: add NVGRE encap/decap support

 app/test-pmd/cmdline.c                      | 169 +++++++++++++
 app/test-pmd/cmdline_flow.c                 | 248 ++++++++++++++++++++
 app/test-pmd/testpmd.c                      |  28 +++
 app/test-pmd/testpmd.h                      |  28 +++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  25 ++
 5 files changed, 498 insertions(+)
  

Comments

Ferruh Yigit June 18, 2018, 9:05 a.m. UTC | #1
On 6/18/2018 9:52 AM, Nelio Laranjeiro wrote:
> This series adds an easy and maintainable configuration version support for
> those two actions for 18.08 by using global variables in testpmd to store the
> necessary information for the tunnel encapsulation.  Those variables are used
> in conjunction of RTE_FLOW_ACTION_{VXLAN,NVGRE}_ENCAP action to create easily
> the action for flows.
> 
> A common way to use it:
> 
>  set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
>  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> 
>  set vxlan ipv6 4 4 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
>  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> 
>  set nvgre ipv4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
>  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
> 
>  set nvgre ipv6 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
>  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
> 
> This also replace the proposal done by Mohammad Abdul Awal [1] which handles
> in a more complex way for the same work.

Hi Nelio,

Is this set on top of mentioned set? If so shouldn't the set has the Awal's
sign-off too?
Are you replacing someone else patch with dropping his sign-off?

> 
> Note this API has already a modification planned for 18.11 [2] thus those
> series should have a limited life for a single release.
> 
> [1] https://dpdk.org/ml/archives/dev/2018-May/101403.html
> [2] https://dpdk.org/ml/archives/dev/2018-June/103485.html
> 
> 
> Changes in v2:
> 
> - add default IPv6 values for NVGRE encapsulation.
> - replace VXLAN to NVGRE in comments concerning NVGRE layer.
> 
> Nelio Laranjeiro (2):
>   app/testpmd: add VXLAN encap/decap support
>   app/testpmd: add NVGRE encap/decap support
> 
>  app/test-pmd/cmdline.c                      | 169 +++++++++++++
>  app/test-pmd/cmdline_flow.c                 | 248 ++++++++++++++++++++
>  app/test-pmd/testpmd.c                      |  28 +++
>  app/test-pmd/testpmd.h                      |  28 +++
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  25 ++
>  5 files changed, 498 insertions(+)
>
  
Nélio Laranjeiro June 18, 2018, 9:38 a.m. UTC | #2
On Mon, Jun 18, 2018 at 10:05:03AM +0100, Ferruh Yigit wrote:
> On 6/18/2018 9:52 AM, Nelio Laranjeiro wrote:
> > This series adds an easy and maintainable configuration version support for
> > those two actions for 18.08 by using global variables in testpmd to store the
> > necessary information for the tunnel encapsulation.  Those variables are used
> > in conjunction of RTE_FLOW_ACTION_{VXLAN,NVGRE}_ENCAP action to create easily
> > the action for flows.
> > 
> > A common way to use it:
> > 
> >  set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
> >  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> > 
> >  set vxlan ipv6 4 4 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
> >  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> > 
> >  set nvgre ipv4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
> >  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
> > 
> >  set nvgre ipv6 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
> >  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
> > 
> > This also replace the proposal done by Mohammad Abdul Awal [1] which handles
> > in a more complex way for the same work.
> 
> Hi Nelio,
> 
> Is this set on top of mentioned set?

Hi Ferruh,

No it is another implementation of Declan's API.  It can be directly
applied on top of the current DPDK code without any other patch.

> If so shouldn't the set has the Awal's sign-off too?
> Are you replacing someone else patch with dropping his sign-off?
>
> > Note this API has already a modification planned for 18.11 [2] thus those
> > series should have a limited life for a single release.
> > 
> > [1] https://dpdk.org/ml/archives/dev/2018-May/101403.html
> > [2] https://dpdk.org/ml/archives/dev/2018-June/103485.html
> > 
> > 
> > Changes in v2:
> > 
> > - add default IPv6 values for NVGRE encapsulation.
> > - replace VXLAN to NVGRE in comments concerning NVGRE layer.
> > 
> > Nelio Laranjeiro (2):
> >   app/testpmd: add VXLAN encap/decap support
> >   app/testpmd: add NVGRE encap/decap support
> > 
> >  app/test-pmd/cmdline.c                      | 169 +++++++++++++
> >  app/test-pmd/cmdline_flow.c                 | 248 ++++++++++++++++++++
> >  app/test-pmd/testpmd.c                      |  28 +++
> >  app/test-pmd/testpmd.h                      |  28 +++
> >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  25 ++
> >  5 files changed, 498 insertions(+)
  
Ferruh Yigit June 18, 2018, 2:40 p.m. UTC | #3
On 6/18/2018 10:38 AM, Nélio Laranjeiro wrote:
> On Mon, Jun 18, 2018 at 10:05:03AM +0100, Ferruh Yigit wrote:
>> On 6/18/2018 9:52 AM, Nelio Laranjeiro wrote:
>>> This series adds an easy and maintainable configuration version support for
>>> those two actions for 18.08 by using global variables in testpmd to store the
>>> necessary information for the tunnel encapsulation.  Those variables are used
>>> in conjunction of RTE_FLOW_ACTION_{VXLAN,NVGRE}_ENCAP action to create easily
>>> the action for flows.
>>>
>>> A common way to use it:
>>>
>>>  set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
>>>  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
>>>
>>>  set vxlan ipv6 4 4 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
>>>  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
>>>
>>>  set nvgre ipv4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
>>>  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
>>>
>>>  set nvgre ipv6 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
>>>  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
>>>
>>> This also replace the proposal done by Mohammad Abdul Awal [1] which handles
>>> in a more complex way for the same work.
>>
>> Hi Nelio,
>>
>> Is this set on top of mentioned set?
> 
> Hi Ferruh,
> 
> No it is another implementation of Declan's API.  It can be directly
> applied on top of the current DPDK code without any other patch.

I mean "based on" more than "on top of". So if this code is based on referenced
patchset, I believe it should keep original sign-off.

If this code is completely new implementation that replaces referenced patchset,
I believe it would be nice to comment on the original patch or communicate about
it instead of just sending another set to replace original one.

> 
>> If so shouldn't the set has the Awal's sign-off too?
>> Are you replacing someone else patch with dropping his sign-off?
>>
>>> Note this API has already a modification planned for 18.11 [2] thus those
>>> series should have a limited life for a single release.
>>>
>>> [1] https://dpdk.org/ml/archives/dev/2018-May/101403.html
>>> [2] https://dpdk.org/ml/archives/dev/2018-June/103485.html
>>>
>>>
>>> Changes in v2:
>>>
>>> - add default IPv6 values for NVGRE encapsulation.
>>> - replace VXLAN to NVGRE in comments concerning NVGRE layer.
>>>
>>> Nelio Laranjeiro (2):
>>>   app/testpmd: add VXLAN encap/decap support
>>>   app/testpmd: add NVGRE encap/decap support
>>>
>>>  app/test-pmd/cmdline.c                      | 169 +++++++++++++
>>>  app/test-pmd/cmdline_flow.c                 | 248 ++++++++++++++++++++
>>>  app/test-pmd/testpmd.c                      |  28 +++
>>>  app/test-pmd/testpmd.h                      |  28 +++
>>>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  25 ++
>>>  5 files changed, 498 insertions(+)
>
  
Nélio Laranjeiro June 19, 2018, 7:32 a.m. UTC | #4
On Mon, Jun 18, 2018 at 03:40:53PM +0100, Ferruh Yigit wrote:
> On 6/18/2018 10:38 AM, Nélio Laranjeiro wrote:
> > On Mon, Jun 18, 2018 at 10:05:03AM +0100, Ferruh Yigit wrote:
> >> On 6/18/2018 9:52 AM, Nelio Laranjeiro wrote:
> >>> This series adds an easy and maintainable configuration version support for
> >>> those two actions for 18.08 by using global variables in testpmd to store the
> >>> necessary information for the tunnel encapsulation.  Those variables are used
> >>> in conjunction of RTE_FLOW_ACTION_{VXLAN,NVGRE}_ENCAP action to create easily
> >>> the action for flows.
> >>>
> >>> A common way to use it:
> >>>
> >>>  set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
> >>>  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> >>>
> >>>  set vxlan ipv6 4 4 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
> >>>  flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> >>>
> >>>  set nvgre ipv4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22
> >>>  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
> >>>
> >>>  set nvgre ipv6 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22
> >>>  flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end
> >>>
> >>> This also replace the proposal done by Mohammad Abdul Awal [1] which handles
> >>> in a more complex way for the same work.
> >>
> >> Hi Nelio,
> >>
> >> Is this set on top of mentioned set?
> > 
> > Hi Ferruh,
> > 
> > No it is another implementation of Declan's API.  It can be directly
> > applied on top of the current DPDK code without any other patch.
> 
> I mean "based on" more than "on top of". So if this code is based on referenced
> patchset, I believe it should keep original sign-off.
> 
> If this code is completely new implementation that replaces referenced patchset,
> I believe it would be nice to comment on the original patch or communicate about
> it instead of just sending another set to replace original one.

Hi Ferruh,

I agree with your point of view but my intention was to show how hard
for an application it will be to implement such actions (as mentioned by
Adrien [1][2]) whereas Mohammad has made the implementation for the
testpmd command line interactive mode.  That is also the reason why I've
copied Mohammad at the first place in my series.
Note that such implementation request has been made by Thomas [3] even
with it, it has entered DPDK without it.

I did not comment on his series because I don't have any reason to
block it, if his series enters, mine just won't I also agree with that,
there is no need to have both implementation in DPDK, but it worse to
show how an application may have to deal with such actions.

> >> If so shouldn't the set has the Awal's sign-off too?
> >> Are you replacing someone else patch with dropping his sign-off?
> >>
> >>> Note this API has already a modification planned for 18.11 [2] thus those
> >>> series should have a limited life for a single release.
> >>>
> >>> [1] https://dpdk.org/ml/archives/dev/2018-May/101403.html
> >>> [2] https://dpdk.org/ml/archives/dev/2018-June/103485.html
> >>>
> >>>
> >>> Changes in v2:
> >>>
> >>> - add default IPv6 values for NVGRE encapsulation.
> >>> - replace VXLAN to NVGRE in comments concerning NVGRE layer.
> >>>
> >>> Nelio Laranjeiro (2):
> >>>   app/testpmd: add VXLAN encap/decap support
> >>>   app/testpmd: add NVGRE encap/decap support
> >>>
> >>>  app/test-pmd/cmdline.c                      | 169 +++++++++++++
> >>>  app/test-pmd/cmdline_flow.c                 | 248 ++++++++++++++++++++
> >>>  app/test-pmd/testpmd.c                      |  28 +++
> >>>  app/test-pmd/testpmd.h                      |  28 +++
> >>>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  25 ++
> >>>  5 files changed, 498 insertions(+)
> > 
> 

Regards,

[1] https://mails.dpdk.org/archives/dev/2018-April/095945.html
[2] https://mails.dpdk.org/archives/dev/2018-April/098124.html
[3] https://mails.dpdk.org/archives/dev/2018-April/099799.html