Hi Tiago, Thanks much, finally figure out that need to add dl_dst=01:00:00:00:00:00 as well, then it match eth.mcast, otherwise it will be seen unknown MAC.
Hui. On Tue, Nov 14, 2017 at 6:53 PM, Tiago Lam <tiago...@gmail.com> wrote: > 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@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 > > disc...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss > > > _______________________________________________ > discuss mailing list > disc...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss >
_______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss