[ovs-discuss] GRE tunnel outer IP & MAC.

David Evans davidjoshuaevans at gmail.com
Thu Feb 12 15:16:29 UTC 2015


Hi Pravin,

Thank you for helping out.

As you saw below from ofproto/trace, the b0 bridge Datapath Actions says
it sends out gre packets with a header src .102 dest .101 destination
But the packet captured on the receiving host¹s ethernet port is as
follows (GRE header in tact from 2F) but the outer MAC & IP are 00...

00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00
00 00 00 00 00 00 40 2F 46 9F C0 A8 38 66 C0 A8
38 65 00 00 65 58 00 00 04 04 12 34 00 00 04 56
78 90 08 00 45 00 01 EE 00 00 00 00 40 FF A6 B9
C0 A8 A8 05 C0 A8 A8 01

Trying to trace this through:

1) How did the Datapath Actions on b0 work out the src ip?


2) What is supposed to happen to the packet when it leaves the first
bridge b0? 
How does it get to b1? I am guessing linux host routing?

3) Could B1 be corrupting the header for some reason?

4Š other possible factors ( netdev bridge? - DPDK ports?  linux stack arp
cache issue?)

I can ping both directions between 102 & 101 across the wire. So that
connection is good.






default_hugepagesz=2M hugepagesz=2M hugepages=2048

On 2/11/15, 6:55 PM, "Pravin Shelar" <pshelar at nicira.com> wrote:

>On Tue, Feb 10, 2015 at 1:52 PM, David Evans <davidjoshuaevans at gmail.com>
>wrote:
>> Hi OVS,
>>
>> I have 3.18 kernel containing ip_gre & Ovs 2.3.90 & Dpdk 1.7.1
>>
>Userspace tunneling does not need ip_gre module, tunneling is handled
>in userspace.
>
>> I find that the outer ip & mac are not populated ???  The ofproto/trace
>> output thinks that the gre output will have the right src/dest on the
>>outer
>> but then it¹s goneŠ
>>
>What do you mean by "its gone"? Can you post tcpdump for ping test?
>
>
>> a bug?
>> am I missing some setup?
>> Wrong kernel ip_gre?
>>
>> Originating GRE:
>> ovs-vsctl add-br b0  -- set bridge b0 datapath_type=netdev
>> ovs-vsctl add-port b0 gre0 -- set Interface gre0 type=gre
>> options:remote_ip=192.168.56.101
>> ovs-vsctl add-port b0 dpdk0 -- set Interface dpdk0 type=dpdk
>>
>> Output Bridge:
>> ovs-vsctl add-br b1  -- set bridge b1 datapath_type=netdev
>> ovs-vsctl add-port b1 dpdk1 -- set Interface dpdk1 type=dpdk
>> ifconfig b1 192.168.56.102 netmask 255.255.255.0
>>
>> Set up flows:
>> ovs-ofctl del-flows b0
>> ovs-ofctl del-flows b1
>> -force traffic to gre from dpdk0
>> ovs-ofctl add-flow b0 in_port=2,action=output:1
>> ovs-ofctl add-flow b0 in_port=1,action=output:0
>> -force traffic from b1 to output
>> ovs-ofctl add-flow b1 in_port=LOCAL,action=output:1
>> ovs-ofctl add-flow b1 in_port=1,action=output:LOCAL
>>
>> A ofproto/trace says
>>
>> ovs-appctl ofproto/trace b0 in_port=1,dl_dst=00:e0:ed:52:97:cd
>> Bridge: b0
>> Flow:
>> 
>>in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:e0:ed:52:97:
>>cd,dl_type=0x0000
>>
>> Rule: table=0 cookie=0 in_port=1
>> OpenFlow actions=output:2
>>
>> Final flow:
>> 
>>in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:e0:ed:52:97:
>>cd,dl_type=0x0000
>> Megaflow: recirc_id=0,in_port=1,dl_type=0x0000
>> Datapath actions:
>> 
>>tnl_push(tnl_port(5),header(size=38,type=3,eth(dst=00:00:04:04:12:34,src=
>>00:e0:ed:52:97:cb,dl_type=0x0800),ipv4(src=192.168.56.102,dst=192.168.56.
>>101,proto=47,tos=0,ttl=64,frag=0x40),gre((flags=0x0,proto=0x6558))),out_p
>>ort(2))
>>
>>
>> Regards,
>>
>> Dave
>>
>> _______________________________________________
>> discuss mailing list
>> discuss at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/discuss
>>





More information about the discuss mailing list