diff mbox series

[ovs-dev,v9,1/4] northd: Factor peer retrieval into its own function.

Message ID 20210630235632.3605211-2-mmichels@redhat.com
State Superseded
Headers show
Series ARP and Floating IP Fixes | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success

Commit Message

Mark Michelson June 30, 2021, 11:56 p.m. UTC
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 <mmichels@redhat.com>
---
 northd/ovn-northd.c | 70 ++++++++++++++++-----------------------------
 1 file changed, 24 insertions(+), 46 deletions(-)

Comments

Numan Siddique July 7, 2021, 5:26 p.m. UTC | #1
On Wed, Jun 30, 2021 at 7:57 PM Mark Michelson <mmichels@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 <mmichels@redhat.com>

Acked-by: Numan Siddique <numans@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
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
diff mbox series

Patch

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;
         }