On Wed, Jun 30, 2021 at 7:57 PM Mark Michelson <mmich...@redhat.com> wrote:
>
> The same pattern is repeated several times throughout ovn-northd.c, so
> this puts it in its own function. This will be used even more in an
> upcoming commit.
>
> Signed-off-by: Mark Michelson <mmich...@redhat.com>

Acked-by: Numan Siddique <num...@ovn.org>

Thanks
Numan

> ---
>  northd/ovn-northd.c | 70 ++++++++++++++++-----------------------------
>  1 file changed, 24 insertions(+), 46 deletions(-)
>
> diff --git a/northd/ovn-northd.c b/northd/ovn-northd.c
> index 83746f4ab..694c3b2c4 100644
> --- a/northd/ovn-northd.c
> +++ b/northd/ovn-northd.c
> @@ -1571,6 +1571,21 @@ lrport_is_enabled(const struct 
> nbrec_logical_router_port *lrport)
>      return !lrport->enabled || *lrport->enabled;
>  }
>
> +static struct ovn_port *
> +ovn_port_get_peer(struct hmap *ports, struct ovn_port *op)
> +{
> +    if (!op->nbsp || !lsp_is_router(op->nbsp) || op->derived) {
> +        return NULL;
> +    }
> +
> +    const char *peer_name = smap_get(&op->nbsp->options, "router-port");
> +    if (!peer_name) {
> +        return NULL;
> +    }
> +
> +    return ovn_port_find(ports, peer_name);
> +}
> +
>  static void
>  ipam_insert_ip_for_datapath(struct ovn_datapath *od, uint32_t ip)
>  {
> @@ -2398,12 +2413,7 @@ join_logical_ports(struct northd_context *ctx,
>      struct ovn_port *op;
>      HMAP_FOR_EACH (op, key_node, ports) {
>          if (op->nbsp && lsp_is_router(op->nbsp) && !op->derived) {
> -            const char *peer_name = smap_get(&op->nbsp->options, 
> "router-port");
> -            if (!peer_name) {
> -                continue;
> -            }
> -
> -            struct ovn_port *peer = ovn_port_find(ports, peer_name);
> +            struct ovn_port *peer = ovn_port_get_peer(ports, op);
>              if (!peer || !peer->nbrp) {
>                  continue;
>              }
> @@ -10206,14 +10216,8 @@ build_arp_resolve_flows_for_lrouter_port(
>                      /* Get the Logical_Router_Port that the
>                       * Logical_Switch_Port is connected to, as
>                       * 'peer'. */
> -                    const char *peer_name = smap_get(
> -                        &op->od->router_ports[k]->nbsp->options,
> -                        "router-port");
> -                    if (!peer_name) {
> -                        continue;
> -                    }
> -
> -                    struct ovn_port *peer = ovn_port_find(ports, peer_name);
> +                    struct ovn_port *peer = ovn_port_get_peer(
> +                            ports, op->od->router_ports[k]);
>                      if (!peer || !peer->nbrp) {
>                          continue;
>                      }
> @@ -10243,14 +10247,8 @@ build_arp_resolve_flows_for_lrouter_port(
>                      /* Get the Logical_Router_Port that the
>                       * Logical_Switch_Port is connected to, as
>                       * 'peer'. */
> -                    const char *peer_name = smap_get(
> -                        &op->od->router_ports[k]->nbsp->options,
> -                        "router-port");
> -                    if (!peer_name) {
> -                        continue;
> -                    }
> -
> -                    struct ovn_port *peer = ovn_port_find(ports, peer_name);
> +                    struct ovn_port *peer = ovn_port_get_peer(
> +                            ports, op->od->router_ports[k]);
>                      if (!peer || !peer->nbrp) {
>                          continue;
>                      }
> @@ -10298,14 +10296,8 @@ build_arp_resolve_flows_for_lrouter_port(
>              !op->sb->chassis) {
>              /* The virtual port is not claimed yet. */
>              for (size_t i = 0; i < op->od->n_router_ports; i++) {
> -                const char *peer_name = smap_get(
> -                    &op->od->router_ports[i]->nbsp->options,
> -                    "router-port");
> -                if (!peer_name) {
> -                    continue;
> -                }
> -
> -                struct ovn_port *peer = ovn_port_find(ports, peer_name);
> +                struct ovn_port *peer = ovn_port_get_peer(
> +                        ports, op->od->router_ports[i]);
>                  if (!peer || !peer->nbrp) {
>                      continue;
>                  }
> @@ -10340,15 +10332,8 @@ build_arp_resolve_flows_for_lrouter_port(
>                      /* Get the Logical_Router_Port that the
>                      * Logical_Switch_Port is connected to, as
>                      * 'peer'. */
> -                    const char *peer_name = smap_get(
> -                        &vp->od->router_ports[j]->nbsp->options,
> -                        "router-port");
> -                    if (!peer_name) {
> -                        continue;
> -                    }
> -
>                      struct ovn_port *peer =
> -                        ovn_port_find(ports, peer_name);
> +                        ovn_port_get_peer(ports, vp->od->router_ports[j]);
>                      if (!peer || !peer->nbrp) {
>                          continue;
>                      }
> @@ -10385,14 +10370,7 @@ build_arp_resolve_flows_for_lrouter_port(
>           * we need to add logical flows such that it can resolve
>           * ARP entries for all the other router ports connected to
>           * the switch in question. */
> -
> -        const char *peer_name = smap_get(&op->nbsp->options,
> -                                         "router-port");
> -        if (!peer_name) {
> -            return;
> -        }
> -
> -        struct ovn_port *peer = ovn_port_find(ports, peer_name);
> +        struct ovn_port *peer = ovn_port_get_peer(ports, op);
>          if (!peer || !peer->nbrp) {
>              return;
>          }
> --
> 2.31.1
>
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to