[ovs-discuss] OVN Logical Router Port ARP response

Tiago Lam tiagolam at gmail.com
Tue Nov 14 10:53:58 UTC 2017


Hi Hui,

I don't think the query you are providing to ovn-trace is correct, hence
why you see differences between your "real case" and the "tracing case".

If you look at the first (commented) line that ovn-trace prints, you can
see both eth.dst and eth.src being set to "00:00:00:00:00:00". Since
these fields are used for setting the correct eth.dst in the ARP reply
(eth.src and eth.dst are swapped from the actual ARP request), it won't
know where the deliver the packet, as "00:00:00:00:00:00" is not valid,
and hence the output="_MC_unknown".

Regards,

Tiago

On 11/14/2017 03:26 AM, Hui Xiang wrote:
> Hi folks,
> 
> I am a bit confused of the OVN logical router port arp flow process if
> arping it from external side.
> 
> When I am tracing the logical router port arp, it always seems there
> would be no response from the flow procedure, however, I do can get the
> arp response and reach it.
> My trace inport is the localnet port on the provider bridge, and it
> always go to next and then hit ls_in_l2_lkup table and match MC_unknown
> then dropped.
> 
> I wonder who send this arp response? or my inport is wrong in the trace
> if arp from outside? Thanks very much for any helpful info!
> 
> 
> [root at node-1 ~]# ovn-trace --detail
> 9ac587cd-becc-4584-99c9-24282f8707e2  'inport ==
> "provnet-668bf1b8-cfec-44d1-b659-30a42c83e29f" && arp.sha ==
> 96:95:d8:7d:b9:4c && arp.tpa == 172.16.0.130  && arp.op == 1' 
> #
> arp,reg14=0x1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,arp_spa=0.0.0.0,arp_tpa=172.16.0.130,arp_op=1,arp_sha=96:95:d8:7d:b9:4c,arp_tha=00:00:00:00:00:00
> 
> ingress(dp="public", inport="provnet-668bf1")
> ---------------------------------------------
>  0. ls_in_port_sec_l2 (ovn-northd.c:3556): inport == "provnet-668bf1",
> priority 50, uuid 25b99b9a
>     next;
> 10. ls_in_arp_rsp (ovn-northd.c:3588): inport == "provnet-668bf1",
> priority 100, uuid b3607f68
>     next;
> 15. ls_in_l2_lkup (ovn-northd.c:3975): 1, priority 0, uuid 83de4750
>     outport = "_MC_unknown";
>     output;
> 
> multicast(dp="public", mcgroup="_MC_unknown")
> ---------------------------------------------
> 
> egress(dp="public", inport="provnet-668bf1", outport="provnet-668bf1")
> ----------------------------------------------------------------------
>     /* omitting output because inport == outport && !flags.loopback */
> 
> 
> 
> 
> Logical Router Port:
> _uuid               : 6d67d962-38a5-4a29-86b5-067dc26f78d4
> enabled             : []
> external_ids        : {}
> gateway_chassis     : []
> mac                 : "fa:16:3e:2e:ea:e9"
> name                : "lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24"
> networks            : ["172.16.0.130/16 <http://172.16.0.130/16>"]
> options             :
> {redirect-chassis="88596f9f-e326-4e15-ae91-8cc014e7be86"}
> peer                : []
> 
> 
> The logical flow:
>   table=10(ls_in_arp_rsp      ), priority=100  , match=(arp.tpa ==
> 172.16.0.130 && arp.op == 1 && inport ==
> "640d0475-ff83-47b7-8a4d-9ea0e770fb24"), action=(next;)
>   table=10(ls_in_arp_rsp      ), priority=100  , match=(inport ==
> "provnet-668bf1b8-cfec-44d1-b659-30a42c83e29f"), action=(next;)
>   table=10(ls_in_arp_rsp      ), priority=50   , match=(arp.tpa ==
> 172.16.0.130 && arp.op == 1), action=(eth.dst = eth.src; eth.src =
> fa:16:3e:2e:ea:e9; arp.op = 2; /* ARP reply */ arp.tha = arp.sha;
> arp.sha = fa:16:3e:2e:ea:e9; arp.tpa = arp.spa; arp.spa = 172.16.0.130;
> outport = inport; flags.loopback = 1; output;)
>   ....
>   table=15(ls_in_l2_lkup      ), priority=100  , match=(eth.mcast),
> action=(outport = "_MC_flood"; output;)
>   table=15(ls_in_l2_lkup      ), priority=50   , match=(eth.dst ==
> fa:16:3e:2e:ea:e9 &&
> is_chassis_resident("cr-lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24")),
> action=(outport = "640d0475-ff83-4
> 7b7-8a4d-9ea0e770fb24"; output;)
>   table=15(ls_in_l2_lkup      ), priority=0    , match=(1),
> action=(outport = "_MC_unknown"; output;)
> 
> 
> 
> 
> 
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
> 


More information about the discuss mailing list