[ovs-discuss] tracing ovs flows in br-int

Dumitru Ceara dceara at redhat.com
Tue Jan 19 11:33:12 UTC 2021


On 1/18/21 11:21 PM, Brendan Doyle wrote:
> 
> I found some stuff about using ovs-appctl ofproto/trace here
> (https://docs.ovn.org/_/downloads/en/stable/pdf/) and followed the
> instructions, but no joy just get an error thrown back at me. Is there a
> place where the flows are documented with examples how to trace
> a flow across a tunnel from a VM on one chassis to one on an other?
> When I followed the instructions in the doc, watch ovs-dpctl dump-flows
> gave me these flows:
> 
> recirc_id(0),in_port(3),ct_state(-new-est-rel-rpl-inv-trk),ct_label(0/0x1),eth(s 
> 
> rc=40:44:00:00:04:10,dst=40:44:00:00:03:10),eth_type(0x0800),ipv4(src=169.254.12 
> 
> 8.0/255.255.192.0,dst=192.16.1.6,proto=1,tos=0/0x3,ttl=64,frag=no),icmp(type=0), 
> 
>   packets:0, bytes:0, used:never, 
> actions:set(eth(src=40:44:00:00:03:40,dst=40:44
> :00:00:01:90)),set(ipv4(ttl=63)),userspace(pid=3351604022,controller(reason=1,do 
> 
> nt_send=0,continuation=0,recirc_id=87,rule_cookie=0x877e4709,controller_id=0,max 
> 
> _len=65535)),set(eth(src=40:44:00:00:01:90,dst=40:44:00:00:00:50)),set(ipv4(ttl= 
> 
> 62)),userspace(pid=3351604022,controller(reason=1,dont_send=0,continuation=0,rec 
> 
> irc_id=88,rule_cookie=0xa2d28cdf,controller_id=0,max_len=65535)),set(tunnel(tun_ 
> 
> id=0x392,dst=253.255.2.6,ttl=64,tp_dst=6081,geneve({class=0x102,type=0x80,len=4, 
> 
> 0x50001}),flags(df|csum|key))),set(eth(src=40:44:00:00:00:30,dst=52:54:00:be:06: 
> 
> 16)),set(ipv4(ttl=61)),1
> recirc_id(0),tunnel(tun_id=0x392,src=253.255.2.6,dst=253.255.0.35,geneve({class= 
> 
> 0x102,type=0x80,len=4,0x10007/0x7fffffff}),flags(-df+csum+key)),in_port(1),ct_st 
> 
> ate(-new-est-rel-rpl-inv-trk),ct_label(0/0x1),eth(src=52:54:00:be:06:16,dst=00:0 
> 
> 0:00:00:00:00/01:00:00:00:00:00),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(typ 
> 
> e=8/0xf8), packets:0, bytes:0, used:never, actions:3
> 
> So as per instruction I entered this into ovs-appctl:
> 
> ovs-appctl ofproto/trace 
> 'recirc_id(0),tunnel(tun_id=0x392,src=253.255.2.6,dst=253.255.0.35,geneve({class=0x102,type=0x80,len=4,0x10007/0x7fffffff}),flags(-df+csum+key)),in_port(1),ct_state(-new-est-rel-rpl-inv-trk),ct_label(0/0x1),eth(src=52:54:00:be:06:16,dst=00:00:00:00:00:00/01:00:00:00:00:00),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(type=8/0xf8)' 
> 
> tunnel options missing TTL; the flow key in error is: 
> recirc_id(0),tunnel(tun_id=0x392,src=253.255.2.6,dst=253.255.0.35,geneve({class=0x102,type=0x80,len=4,0x10007}),flags(csum|key)),in_port(1),ct_state(0),ct_label(0),eth(src=52:54:00:be:06:16,dst=00:00:00:00:00:00),eth_type(0x0800),ipv4(src=0.0.0.0,dst=0.0.0.0,proto=1,tos=0,ttl=0,frag=no),icmp(type=8,code=0) 
> 
> ovs-appctl: ovs-vswitchd: server returned an error

Hi Brendan,

Explicitly adding ttl=1 to the odp flow string should make it work. 
Something like:

ovs-appctl ofproto/trace 
'recirc_id(0),tunnel(ttl=1,tun_id=0x392,src=253.255.2.6,dst=253.255.0.35,geneve({class=0x102,type=0x80,len=4,0x10007/0x7fffffff}),flags(-df+csum+key)),in_port(1),ct_state(-new-est-rel-rpl-inv-trk),ct_label(0/0x1),eth(src=52:54:00:be:06:16,dst=00:00:00:00:00:00/01:00:00:00:00:00),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(type=8/0xf8)'

I guess the default is TTL=1 and format_odp_tun_attr() doesn't print it 
in that case.

Regards,
Dumitru



More information about the discuss mailing list