mbox series

[v2,0/3] ethdev: add generic L2/L3 tunnel encapsulation actions

Message ID 1537995646-95260-1-git-send-email-orika@mellanox.com (mailing list archive)
Headers
Series ethdev: add generic L2/L3 tunnel encapsulation actions |

Message

Ori Kam Sept. 26, 2018, 9 p.m. UTC
  This series implement the generic L2/L3 tunnel encapsulation actions
and is based on rfc [1] "add generic L2/L3 tunnel encapsulation actions"

Currenlty the encap/decap actions only support encapsulation
of VXLAN and NVGRE L2 packets (L2 encapsulation is where
the inner packet has a valid Ethernet header, while L3 encapsulation
is where the inner packet doesn't have the Ethernet header).
In addtion the parameter to to the encap action is a list of rte items,
this results in 2 extra translation, between the application to the action
and from the action to the NIC. This results in negetive impact on the
insertion performance.
    
Looking forward there are going to be a need to support many more tunnel
encapsulations. For example MPLSoGRE, MPLSoUDP.
Adding the new encapsulation will result in duplication of code.
For example the code for handling NVGRE and VXLAN are exactly the same,
and each new tunnel will have the same exact structure.
    
This series introduce a generic encapsulation for L2 tunnel types, and
generic encapsulation for L3 tunnel types. In addtion the new
encapsulations commands are using raw buffer inorder to save the
converstion time, both for the application and the PMD.

[1]https://mails.dpdk.org/archives/dev/2018-August/109944.html

Changes in v2:

* add missing decap_l3 structure.
* fix typo.



Ori Kam (3):
  ethdev: add generic L2/L3 tunnel encapsulation actions
  app/testpmd: convert testpmd encap commands to new API
  ethdev: remove vxlan and nvgre encapsulation commands

 app/test-pmd/cmdline_flow.c        | 294 +++++++++++++++++--------------------
 app/test-pmd/config.c              |   3 +
 doc/guides/prog_guide/rte_flow.rst | 115 ++++++---------
 lib/librte_ethdev/rte_flow.h       | 108 ++++++--------
 4 files changed, 227 insertions(+), 293 deletions(-)
  

Comments

Thomas Monjalon Oct. 3, 2018, 8:38 p.m. UTC | #1
26/09/2018 23:00, Ori Kam:
> Ori Kam (3):
>   ethdev: add generic L2/L3 tunnel encapsulation actions
>   app/testpmd: convert testpmd encap commands to new API
>   ethdev: remove vxlan and nvgre encapsulation commands

If no more comment, I think we should accept this series.
  
Ferruh Yigit Oct. 5, 2018, 12:57 p.m. UTC | #2
On 9/26/2018 10:00 PM, Ori Kam wrote:
> This series implement the generic L2/L3 tunnel encapsulation actions
> and is based on rfc [1] "add generic L2/L3 tunnel encapsulation actions"
> 
> Currenlty the encap/decap actions only support encapsulation
> of VXLAN and NVGRE L2 packets (L2 encapsulation is where
> the inner packet has a valid Ethernet header, while L3 encapsulation
> is where the inner packet doesn't have the Ethernet header).
> In addtion the parameter to to the encap action is a list of rte items,
> this results in 2 extra translation, between the application to the action
> and from the action to the NIC. This results in negetive impact on the
> insertion performance.
>     
> Looking forward there are going to be a need to support many more tunnel
> encapsulations. For example MPLSoGRE, MPLSoUDP.
> Adding the new encapsulation will result in duplication of code.
> For example the code for handling NVGRE and VXLAN are exactly the same,
> and each new tunnel will have the same exact structure.
>     
> This series introduce a generic encapsulation for L2 tunnel types, and
> generic encapsulation for L3 tunnel types. In addtion the new
> encapsulations commands are using raw buffer inorder to save the
> converstion time, both for the application and the PMD.
> 
> [1]https://mails.dpdk.org/archives/dev/2018-August/109944.html
> 
> Changes in v2:
> 
> * add missing decap_l3 structure.
> * fix typo.
> 
> 
> 
> Ori Kam (3):
>   ethdev: add generic L2/L3 tunnel encapsulation actions
>   app/testpmd: convert testpmd encap commands to new API
>   ethdev: remove vxlan and nvgre encapsulation commands


Hi Ori,

Can you please rebase the patch on top of latest next-net?

Thanks,
ferruh
  
Ori Kam Oct. 5, 2018, 2 p.m. UTC | #3
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Friday, October 5, 2018 3:57 PM
> To: Ori Kam <orika@mellanox.com>; arybchenko@solarflare.com;
> stephen@networkplumber.org; Adrien Mazarguil
> <adrien.mazarguil@6wind.com>
> Cc: dev@dpdk.org; Dekel Peled <dekelp@mellanox.com>; Thomas Monjalon
> <thomas@monjalon.net>; NĂ©lio Laranjeiro <nelio.laranjeiro@6wind.com>;
> Yongseok Koh <yskoh@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>
> Subject: Re: [PATCH v2 0/3] ethdev: add generic L2/L3 tunnel encapsulation
> actions
> 
> On 9/26/2018 10:00 PM, Ori Kam wrote:
> > This series implement the generic L2/L3 tunnel encapsulation actions
> > and is based on rfc [1] "add generic L2/L3 tunnel encapsulation actions"
> >
> > Currenlty the encap/decap actions only support encapsulation
> > of VXLAN and NVGRE L2 packets (L2 encapsulation is where
> > the inner packet has a valid Ethernet header, while L3 encapsulation
> > is where the inner packet doesn't have the Ethernet header).
> > In addtion the parameter to to the encap action is a list of rte items,
> > this results in 2 extra translation, between the application to the action
> > and from the action to the NIC. This results in negetive impact on the
> > insertion performance.
> >
> > Looking forward there are going to be a need to support many more tunnel
> > encapsulations. For example MPLSoGRE, MPLSoUDP.
> > Adding the new encapsulation will result in duplication of code.
> > For example the code for handling NVGRE and VXLAN are exactly the same,
> > and each new tunnel will have the same exact structure.
> >
> > This series introduce a generic encapsulation for L2 tunnel types, and
> > generic encapsulation for L3 tunnel types. In addtion the new
> > encapsulations commands are using raw buffer inorder to save the
> > converstion time, both for the application and the PMD.
> >
> >
> [1]https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail
> s.dpdk.org%2Farchives%2Fdev%2F2018-
> August%2F109944.html&amp;data=02%7C01%7Corika%40mellanox.com%7Cbb
> 15cba1e21d4d9af71208d62ac228d7%7Ca652971c7d2e4d9ba6a4d149256f461b
> %7C0%7C0%7C636743410739573101&amp;sdata=but7TODDrb6JUTwwv7So4i%
> 2Ff7k12Fla9eJW0n3MIDFY%3D&amp;reserved=0
> >
> > Changes in v2:
> >
> > * add missing decap_l3 structure.
> > * fix typo.
> >
> >
> >
> > Ori Kam (3):
> >   ethdev: add generic L2/L3 tunnel encapsulation actions
> >   app/testpmd: convert testpmd encap commands to new API
> >   ethdev: remove vxlan and nvgre encapsulation commands
> 
> 
> Hi Ori,
> 
> Can you please rebase the patch on top of latest next-net?
> 

Sure, I will  do it on Sunday.

> Thanks,
> Ferruh

Best,
Ori