On 19 July 2016 at 09:07, Ben Pfaff <b...@ovn.org> wrote: > An ovn_port keeps track of its peer in its 'peer' member, but the code > updated by this commit instead did a redundant lookup of the peer. > > Signed-off-by: Ben Pfaff <b...@ovn.org> > Acked-by: Gurucharan Shetty <g...@ovn.org>
> --- > ovn/northd/ovn-northd.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c > index 9047635..8418f53 100644 > --- a/ovn/northd/ovn-northd.c > +++ b/ovn/northd/ovn-northd.c > @@ -2618,21 +2618,16 @@ build_lrouter_flows(struct hmap *datapaths, struct > hmap *ports, > * > * The packet is still in peer's logical pipeline. So the > match > * should be on peer's outport. */ > - if (op->nbr->peer) { > - struct ovn_port *peer = ovn_port_find(ports, > op->nbr->peer); > - if (!peer) { > - continue; > - } > - > + if (op->peer && op->peer->nbr) { > ds_clear(&match); > ds_put_format(&match, "outport == %s && reg0 == ", > - peer->json_key); > + op->peer->json_key); > op_put_networks(&match, op, false); > > ds_clear(&actions); > ds_put_format(&actions, "eth.dst = %s; next;", > op->lrp_networks.ea_s); > - ovn_lflow_add(lflows, peer->od, S_ROUTER_IN_ARP_RESOLVE, > + ovn_lflow_add(lflows, op->peer->od, > S_ROUTER_IN_ARP_RESOLVE, > 100, ds_cstr(&match), ds_cstr(&actions)); > } > } else if (op->od->n_router_ports && strcmp(op->nbs->type, > "router")) { > -- > 2.1.3 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev