[dpdk-dev] [PATCH v4 0/2] app/testpmd implement VXLAN/NVGRE Encap/Decap

Nélio Laranjeiro nelio.laranjeiro at 6wind.com
Fri Jun 22 11:08:59 CEST 2018


On Fri, Jun 22, 2018 at 09:51:15AM +0100, Mohammad Abdul Awal wrote:
> 
> 
> On 22/06/2018 09:31, Nélio Laranjeiro wrote:
> > On Fri, Jun 22, 2018 at 08:42:10AM +0100, Mohammad Abdul Awal wrote:
> > > Hi Nelio,
> > > 
> > > 
> > > On 21/06/2018 08:13, 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
> > > This way we can define only one tunnel for all the flows. This is not a
> > > convenient for testing a scenario (e.g. mutiport or switch) with multiple
> > > tunnels. Isn't it?
> > Hi Awal.
> > 
> > The "set vxlan" command will just configure the outer VXLAN tunnel to be
> > used, when the "flow" command is invoked, it will use the VXLAN tunnel
> > information and create a valid VXLAN_ENCAP action.  For instance:
> > 
> >   testpmd> 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
> >   testpmd> flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> >   testpmd> set vxlan ipv6 4 34 42 ::1 ::2222 80:12:13:14:15:16 22:22:22:22:22:22
> >   testpmd> flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end
> > 
> > will create two VLXAN_ENCAP flow one with IPv4 tunnel the second one
> > with an IPv6.  Whereas:
> > 
> >   testpmd> 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
> >   testpmd> flow create 0 ingress pattern eth / ipv4 src is 10.2.3.4 / end
> >   	actions vxlan_encap / queue index 0 / end
> >   testpmd> flow create 0 ingress pattern eth / ipv4 src is 20.2.3.4 / end
> >   	actions vxlan_encap / queue index 0 / end
> > 
> > will encapsulate the packets having as IPv4 source IP 10.2.3.4 and
> > 20.2.3.4 with the same VXLAN tunnel headers.
> 
> I understand that the same IPv4 tunnel will be used for both flows in your
> example above.  I have the following questions.
> 
> 1) How can we create two or more IPv4 (or IPv6) tunnel?
> 1) How can we make the flows to use different IPv4 tunnels?
> As an example,
> 
>  testpmd> 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
>  testpmd> set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 33:33:33:33:33:33 44:44:44:44:44:44
>  testpmd> flow create 0 ingress pattern end actions vxlan_encap <first tunnel?> / queue index 0 / end
>  testpmd> flow create 0 ingress pattern end actions vxlan_encap <second tunnel?> / queue index 0 / end
> 

Doing this, the flows will use the same tunnel, you must do:

 testpmd> 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
 testpmd> flow create 0 ingress pattern end actions vxlan_encap <first tunnel?> / queue index 0 / end
 testpmd> set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 33:33:33:33:33:33 44:44:44:44:44:44
 testpmd> flow create 0 ingress pattern end actions vxlan_encap <second tunnel?> / queue index 0 / end

to have what you want.

> Is it possible?

Regards,

-- 
Nélio Laranjeiro
6WIND


More information about the dev mailing list