From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH v6 0/3] ethdev: add generic raw tunnel encapsulation Date: Tue, 23 Oct 2018 10:56:38 +0100 Message-ID: <906f6b18-ca3a-0b47-e824-20502ca5802b@intel.com> References: <1539796072-111646-1-git-send-email-orika@mellanox.com> <1540229891-112870-1-git-send-email-orika@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, dekelp@mellanox.com, thomas@monjalon.net, nelio.laranjeiro@6wind.com, yskoh@mellanox.com, shahafs@mellanox.com To: Ori Kam , wenzhuo.lu@intel.com, jingjing.wu@intel.com, bernard.iremonger@intel.com, arybchenko@solarflare.com, stephen@networkplumber.org, adrien.mazarguil@6wind.com Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 89FE21B459 for ; Tue, 23 Oct 2018 11:56:42 +0200 (CEST) In-Reply-To: <1540229891-112870-1-git-send-email-orika@mellanox.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 10/22/2018 6:38 PM, Ori Kam wrote: > This series implement the raw 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 raw encapsulation that can support both L2 and L3 > tunnel encapsulation. > In order to encap l3 tunnel for example MPLSoDUP: > ETH / IPV4 / UDP / MPLS / IPV4 / L4 .. L7 > When creating the flow rule we add 2 actions, the first one is decap in order > to remove the original L2 of the packet and then the encap with the tunnel data. > Decapsulating such a tunnel is done in the following order, first decap the > outer tunnel and then encap the packet with the L2 header. > It is important to notice that from the Nic and PMD both actionsn happens > simultaneously, meaning that at we are always having a valid packet. > > This series also inroduce the following commands for testpmd: > * l2_encap > * l2_decap > * mplsogre_encap > * mplsogre_decap > * mplsoudp_encap > * mplsoudp_decap > > along with helper function to set teh headers that will be used for the actions, > the same as with vxlan_encap. > > [1]https://mails.dpdk.org/archives/dev/2018-August/109944.html > > v6: > * fix compilation error > * fix typo. > > v5: > * fix typos. > > v4: > * convert to raw encap/decap, according to Adrien suggestion. > * keep the old vxlan and nvgre encapsulation commands. > > v3: > * rebase on tip. > > v2: > * add missing decap_l3 structure. > * fix typo. > > > > Ori Kam (3): > ethdev: add raw encapsulation action > app/testpmd: add MPLSoUDP encapsulation > app/testpmd: add MPLSoGRE encapsulation Series applied to dpdk-next-net/master, thanks.