[ovs-dev] [PATCH 2/3] ovn-northd: Avoid redundant lookup of logical router port peer.
Guru Shetty
guru at ovn.org
Fri Jul 22 14:18:04 UTC 2016
On 19 July 2016 at 09:07, Ben Pfaff <blp at 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 <blp at ovn.org>
>
Acked-by: Gurucharan Shetty <guru at 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 at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
More information about the dev
mailing list