[ovs-discuss] OVN Logical Router Port ARP response

Hui Xiang xianghuir at gmail.com
Tue Nov 14 13:38:08 UTC 2017


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 <tiagolam at 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 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
> >
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20171114/7043cd51/attachment.html>


More information about the discuss mailing list