> -----Original Message----- > From: Jesse Gross [mailto:je...@kernel.org] > Sent: Wednesday, August 31, 2016 10:26 PM > To: Manish Chopra <manish.cho...@qlogic.com> > Cc: pshe...@nicira.com; b...@openvswitch.org > Subject: Re: OVS - how to use geneve with variable length options ? > > On Wed, Aug 31, 2016 at 12:13 AM, Manish Chopra > <manish.cho...@qlogic.com> wrote: > >> -----Original Message----- > >> From: Jesse Gross [mailto:je...@kernel.org] > >> Sent: Wednesday, August 31, 2016 12:55 AM > >> To: Manish Chopra <manish.cho...@qlogic.com> > >> Cc: pshe...@nicira.com; b...@openvswitch.org > >> Subject: Re: OVS - how to use geneve with variable length options ? > >> On Tue, Aug 30, 2016 at 11:24 AM, Manish Chopra > >> <manish.cho...@qlogic.com> wrote: > >> > When I run traffic between both OVS bridge – I see that it uses geneve > >> > header of size 8 bytes. > >> > > >> > I was wondering if I could use GENEVE with options using OVS ? which > would > >> > have geneve header size more than 8 bytes ? > >> > > >> > > >> > > >> > I couldn’t find anything about what arguments I should be using with > >> > ovs-vsctl on both setups to use GENEVE with options ? > >> > > >> > Could you please supply necessary configuration/commands which I can try > to > >> > use GENEVE with options while running traffic ?? > >> > >> In order to use options with Geneve tunnels, you'll need to map TLVs > >> onto a set of tun_metadataXXX fields, which can then be used with any > >> OVS flow mechanism, such as matches and actions. There is some > >> information on how to do this in the ovs-ofctl man page: > >> https://github.com/openvswitch/ovs/blob/v2.5.0/utilities/ovs- > ofctl.8.in#L427 > >> > >> You'll need to be using OVS 2.5 or newer to do this. > >> > > Hi Jesse, I have tried below configuration using ovs-ofctl on top of earlier > configuration using ovs-vsctl on both setups > > , as referenced in man page. > > > > ovs-ofctl add-tlv-map br2 "{class=0xffff,type=0x80,len=4}->tun_metadata0" > > ovs-ofctl add-flow br2 tun_metadata0=1234,actions=controller > > > > But I still see geneve header is used of size 8 Bytes when I run TCP stream > between OVS bridges. > > Not sure if I am missing something in the configuration using ovs-ofctl ? > > The flow that you have above will match incoming packets with that > particular option, rather than generate it. In this case, any incoming > packet with class 0xffff, type 0x80, and value 1234 will be sent to > the controller. > > To generate packets with options, you need an action such as > set_field. For example: > ovs-ofctl add-flow br2 > "in_port=LOCAL,actions=set_field:1234->tun_metadata0,<TUNNEL PORT>"
Hi Jesse, I am not much familiar with OVS flow mechanism and these commands. I just want to try GENEVE tunnel traffic with OVS which could use variable size geneve header in the packet to test if our NIC offloads works fine with variable length geneve header or not. Below is my setup configuration - two physical hosts which are connected back to back using NIC port [eth1 and eth2] Below are IP addresses of OVS bridges and NIC interfaces. eth1- 192.168.44.44 eth2- 192.168.44.45 br2 [Setup 1] – 192.168.55.44 br2 [Setup 2] - 192.168.55.45 Setup 1 Setup 2 ########################## ######################### OVS br2 -------------- eth1 - ### --------------------------------------- ### - eth2 ---------------OVS br2 ########################## ######################### Setup 1 - ovs-vsctl add-br br2 ovs-vsctl add-port br2 gnv0 -- set interface gnv0 type=geneve options:remote_ip=192.168.44.45 Setup 2 - ovs-vsctl add-br br2 ovs-vsctl add-port br2 gnv0 -- set interface gnv0 type=geneve options:remote_ip=192.168.44.44 After adding geneve port on both setups - I can ping and run TCP traffic between these bridge [which used geneve header of 8 bytes] ping 192.168.55.45 PING 192.168.55.45 (192.168.55.45) 56(84) bytes of data. 64 bytes from 192.168.55.45: icmp_seq=1 ttl=64 time=2.46 ms 64 bytes from 192.168.55.45: icmp_seq=2 ttl=64 time=0.257 ms ^C --- 192.168.55.45 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms After that as you suggested - I tried adding flow using below command to run geneve with options. ovs-ofctl add-flow br2 "in_port=LOCAL,actions=set_field:1234->tun_metadata0,6081" But after that ping to peer bridge stopped working [On setup 1 - I see packets getting out in tcpdump of br2 - but they doesn't reach to eth1]. ping 192.168.55.45 PING 192.168.55.45 (192.168.55.45) 56(84) bytes of data. ^C --- 192.168.55.45 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 1012ms Am I still missing anything in configuration ? Can you please give me sequence of exact commands which I should run on my both setups to use GENEVE with options while running traffic between OVS bridges ? That will be really helpful - Thanks, Manish _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss