amorenoz / ovs-dbg

Scripts to help debug OVS and OVN
Apache License 2.0
22 stars 8 forks source link

ovs offline: output to kernel tunnels omitted from offline traces #66

Open SalDaniele opened 2 years ago

SalDaniele commented 2 years ago

ovs offline ofproto/trace behaves differently from an online ofproto/trace when the action would be to send a packet to a tunnel.

i.e.

online ofproto-trace
move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30]
             -> NXM_NX_TUN_METADATA0[16..30] is now 0x1
            output:10
             -> output to kernel tunnel

[...]

Datapath actions: ct(commit,zone=47,label=0/0x1),ct_clear,ct_clear,set(tunnel(tun_id=0xe,dst=10.0.92.172,ttl=64,tp_dst=6081,geneve({class=0x102,type=0x80,len=4,0x1000b}),flags(df|csum|key))),set(eth(src=0a:58:0a:81:02:01,dst=0a:58:0a:81:02:0d)),set(ipv4(ttl=63)),4
offline ofproto-trace
move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30]
             -> NXM_NX_TUN_METADATA0[16..30] is now 0x1
            output:10

[...]

Datapath actions: ct(commit,zone=47,label=0/0x1),ct_clear,ct_clear,set(eth(src=0a:58:0a:81:02:01,dst=0a:58:0a:81:02:0d)),set(ipv4(ttl=63)),9

Could be due to the "dummy" ports representing tunnels in the offline environment.

amorenoz commented 2 years ago

https://github.com/openvswitch/ovs/blob/c1fdb83471b0713c61dd1cd2c26edc394a41386c/ofproto/ofproto-dpif-xlate.c#L4163

SalDaniele commented 2 years ago

https://github.com/openvswitch/ovs/blob/c1fdb83471b0713c61dd1cd2c26edc394a41386c/ofproto/ofproto-dpif-xlate.c#L4163

xport->is_tunnel() returns false on the offline environment.