[v3,0/2] app/testpmd implement VXLAN/NVGRE Encap/Decap
mbox series

Message ID cover.1529332365.git.nelio.laranjeiro@6wind.com
Headers show
Series
  • app/testpmd implement VXLAN/NVGRE Encap/Decap
Related show

Message

Nélio Laranjeiro June 18, 2018, 2:36 p.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 v3:

- support VLAN in the outer encapsulation.
- fix the documentation with missing arguments.

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                      | 242 ++++++++++++++++++
 app/test-pmd/cmdline_flow.c                 | 268 ++++++++++++++++++++
 app/test-pmd/testpmd.c                      |  32 +++
 app/test-pmd/testpmd.h                      |  32 +++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  27 ++
 5 files changed, 601 insertions(+)

Comments

Iremonger, Bernard June 18, 2018, 4:28 p.m. UTC | #1
Hi Nelio,

> -----Original Message-----
> From: Nelio Laranjeiro [mailto:nelio.laranjeiro@6wind.com]
> Sent: Monday, June 18, 2018 3:37 PM
> To: dev@dpdk.org; Adrien Mazarguil <adrien.mazarguil@6wind.com>; Lu,
> Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>;
> Iremonger, Bernard <bernard.iremonger@intel.com>; Awal, Mohammad Abdul
> <mohammad.abdul.awal@intel.com>
> Subject: [PATCH v3 0/2] app/testpmd implement VXLAN/NVGRE Encap/Decap
> 
> 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
> 

It might be useful to add the above sample testpmd command lines to section 4.12 of the doc/guides/testpmd_app_ug/testpmd_funcs.rst file

> 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 v3:
> 
> - support VLAN in the outer encapsulation.
> - fix the documentation with missing arguments.
> 
> 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                      | 242 ++++++++++++++++++
>  app/test-pmd/cmdline_flow.c                 | 268 ++++++++++++++++++++
>  app/test-pmd/testpmd.c                      |  32 +++
>  app/test-pmd/testpmd.h                      |  32 +++
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  27 ++
>  5 files changed, 601 insertions(+)
> 
> --
> 2.17.1

Regards,

Bernard.
Nélio Laranjeiro June 19, 2018, 9:41 a.m. UTC | #2
On Mon, Jun 18, 2018 at 04:28:05PM +0000, Iremonger, Bernard wrote:
> Hi Nelio,
> 
> > -----Original Message-----
> > From: Nelio Laranjeiro [mailto:nelio.laranjeiro@6wind.com]
> > Sent: Monday, June 18, 2018 3:37 PM
> > To: dev@dpdk.org; Adrien Mazarguil <adrien.mazarguil@6wind.com>; Lu,
> > Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>;
> > Iremonger, Bernard <bernard.iremonger@intel.com>; Awal, Mohammad Abdul
> > <mohammad.abdul.awal@intel.com>
> > Subject: [PATCH v3 0/2] app/testpmd implement VXLAN/NVGRE Encap/Decap
> > 
> > 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
> > 
> 
> It might be useful to add the above sample testpmd command lines to
> section 4.12 of the doc/guides/testpmd_app_ug/testpmd_funcs.rst file
>[...]

Agreed, I'll add it in the v4.

Thanks,