diff mbox series

[ovs-dev,v2,3/5] ovn-controller: Use chassis_lookup_by_name() instead of get_chassis().

Message ID 20180611221438.11856-4-blp@ovn.org
State Accepted
Headers show
Series Work toward better dependencies in ovn-controller. | expand

Commit Message

Ben Pfaff June 11, 2018, 10:14 p.m. UTC
This was duplicate functionality.

Signed-off-by: Ben Pfaff <blp@ovn.org>
---
 ovn/controller/chassis.c        |  5 +++--
 ovn/controller/chassis.h        |  6 ++++--
 ovn/controller/ovn-controller.c | 24 ++++--------------------
 ovn/controller/ovn-controller.h |  3 ---
 4 files changed, 11 insertions(+), 27 deletions(-)

Comments

Han Zhou June 12, 2018, 2:44 a.m. UTC | #1
On Mon, Jun 11, 2018 at 3:14 PM, Ben Pfaff <blp@ovn.org> wrote:
>
> This was duplicate functionality.
>
> Signed-off-by: Ben Pfaff <blp@ovn.org>
> ---
>  ovn/controller/chassis.c        |  5 +++--
>  ovn/controller/chassis.h        |  6 ++++--
>  ovn/controller/ovn-controller.c | 24 ++++--------------------
>  ovn/controller/ovn-controller.h |  3 ---
>  4 files changed, 11 insertions(+), 27 deletions(-)
>
> diff --git a/ovn/controller/chassis.c b/ovn/controller/chassis.c
> index c509e2fcab50..db5d2d03dbf6 100644
> --- a/ovn/controller/chassis.c
> +++ b/ovn/controller/chassis.c
> @@ -22,6 +22,7 @@
>  #include "lib/vswitch-idl.h"
>  #include "openvswitch/dynamic-string.h"
>  #include "openvswitch/vlog.h"
> +#include "ovn/lib/chassis-index.h"
>  #include "ovn/lib/ovn-sb-idl.h"
>  #include "ovn-controller.h"
>  #include "lib/util.h"
> @@ -76,8 +77,8 @@ get_cms_options(const struct smap *ext_ids)
>   * amenable to a transaction. */
>  const struct sbrec_chassis *
>  chassis_run(struct controller_ctx *ctx,
> +            struct ovsdb_idl_index *sbrec_chassis_by_name,
>              const struct ovsrec_open_vswitch_table *ovs_table,
> -            const struct sbrec_chassis_table *chassis_table,
>              const char *chassis_id,
>              const struct ovsrec_bridge *br_int)
>  {
> @@ -139,7 +140,7 @@ chassis_run(struct controller_ctx *ctx,
>      const char *iface_types_str = ds_cstr(&iface_types);
>
>      const struct sbrec_chassis *chassis_rec
> -        = get_chassis(chassis_table, chassis_id);
> +        = chassis_lookup_by_name(sbrec_chassis_by_name, chassis_id);
>      const char *encap_csum = smap_get_def(&cfg->external_ids,
>                                            "ovn-encap-csum", "true");
>      if (chassis_rec) {
> diff --git a/ovn/controller/chassis.h b/ovn/controller/chassis.h
> index 6d4787854c1c..f5245c363683 100644
> --- a/ovn/controller/chassis.h
> +++ b/ovn/controller/chassis.h
> @@ -20,6 +20,7 @@
>
>  struct controller_ctx;
>  struct ovsdb_idl;
> +struct ovsdb_idl_index;
>  struct ovsrec_bridge;
>  struct ovsrec_open_vswitch_table;
>  struct sbrec_chassis;
> @@ -27,8 +28,9 @@ struct sbrec_chassis_table;
>
>  void chassis_register_ovs_idl(struct ovsdb_idl *);
>  const struct sbrec_chassis *chassis_run(
> -    struct controller_ctx *, const struct ovsrec_open_vswitch_table *,
> -    const struct sbrec_chassis_table *,
> +    struct controller_ctx *,
> +    struct ovsdb_idl_index *sbrec_chassis_by_name,
> +    const struct ovsrec_open_vswitch_table *,
>      const char *chassis_id, const struct ovsrec_bridge *br_int);
>  bool chassis_cleanup(struct controller_ctx *, const struct sbrec_chassis
*);
>
> diff --git a/ovn/controller/ovn-controller.c
b/ovn/controller/ovn-controller.c
> index cd4208556de7..1754c51a0fcd 100644
> --- a/ovn/controller/ovn-controller.c
> +++ b/ovn/controller/ovn-controller.c
> @@ -94,21 +94,6 @@ get_local_datapath(const struct hmap *local_datapaths,
uint32_t tunnel_key)
>              : NULL);
>  }
>
> -const struct sbrec_chassis *
> -get_chassis(const struct sbrec_chassis_table *chassis_table,
> -            const char *chassis_id)
> -{
> -    const struct sbrec_chassis *chassis_rec;
> -
> -    SBREC_CHASSIS_TABLE_FOR_EACH (chassis_rec, chassis_table) {
> -        if (!strcmp(chassis_rec->name, chassis_id)) {
> -            break;
> -        }
> -    }
> -
> -    return chassis_rec;
> -}
> -
>  uint32_t
>  get_tunnel_type(const char *name)
>  {
> @@ -691,9 +676,8 @@ main(int argc, char *argv[])
>
>          const struct sbrec_chassis *chassis = NULL;
>          if (chassis_id) {
> -            chassis = chassis_run(&ctx,
> +            chassis = chassis_run(&ctx, sbrec_chassis_by_name,
>
 ovsrec_open_vswitch_table_get(ctx.ovs_idl),
> -                                  sbrec_chassis_table_get(ctx.ovnsb_idl),
>                                    chassis_id, br_int);
>              encaps_run(&ctx,
>                         ovsrec_bridge_table_get(ctx.ovs_idl), br_int,
> @@ -881,8 +865,6 @@ main(int argc, char *argv[])
>          const struct ovsrec_open_vswitch_table *ovs_table
>              = ovsrec_open_vswitch_table_get(ctx.ovs_idl);
>
> -        const struct sbrec_chassis_table *chassis_table
> -            = sbrec_chassis_table_get(ctx.ovnsb_idl);
>          const struct sbrec_port_binding_table *port_binding_table
>              = sbrec_port_binding_table_get(ctx.ovnsb_idl);
>
> @@ -890,7 +872,9 @@ main(int argc, char *argv[])
>                                                          ovs_table);
>          const char *chassis_id = get_chassis_id(ovs_table);
>          const struct sbrec_chassis *chassis
> -            = chassis_id ? get_chassis(chassis_table, chassis_id) : NULL;
> +            = (chassis_id
> +               ? chassis_lookup_by_name(sbrec_chassis_by_name,
chassis_id)
> +               : NULL);
>
>          /* Run all of the cleanup functions, even if one of them returns
false.
>           * We're done if all of them return true. */
> diff --git a/ovn/controller/ovn-controller.h
b/ovn/controller/ovn-controller.h
> index 7a172a7879bd..6f4e961886ac 100644
> --- a/ovn/controller/ovn-controller.h
> +++ b/ovn/controller/ovn-controller.h
> @@ -78,9 +78,6 @@ struct local_datapath *get_local_datapath(const struct
hmap *,
>  const struct ovsrec_bridge *get_bridge(const struct ovsrec_bridge_table
*,
>                                         const char *br_name);
>
> -const struct sbrec_chassis *get_chassis(const struct sbrec_chassis_table
*,
> -                                        const char *chassis_id);
> -
>  /* Must be a bit-field ordered from most-preferred (higher number) to
>   * least-preferred (lower number). */
>  enum chassis_tunnel_type {
> --
> 2.16.1
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Acked-by: Han Zhou <hzhou8@ebay.com>
diff mbox series

Patch

diff --git a/ovn/controller/chassis.c b/ovn/controller/chassis.c
index c509e2fcab50..db5d2d03dbf6 100644
--- a/ovn/controller/chassis.c
+++ b/ovn/controller/chassis.c
@@ -22,6 +22,7 @@ 
 #include "lib/vswitch-idl.h"
 #include "openvswitch/dynamic-string.h"
 #include "openvswitch/vlog.h"
+#include "ovn/lib/chassis-index.h"
 #include "ovn/lib/ovn-sb-idl.h"
 #include "ovn-controller.h"
 #include "lib/util.h"
@@ -76,8 +77,8 @@  get_cms_options(const struct smap *ext_ids)
  * amenable to a transaction. */
 const struct sbrec_chassis *
 chassis_run(struct controller_ctx *ctx,
+            struct ovsdb_idl_index *sbrec_chassis_by_name,
             const struct ovsrec_open_vswitch_table *ovs_table,
-            const struct sbrec_chassis_table *chassis_table,
             const char *chassis_id,
             const struct ovsrec_bridge *br_int)
 {
@@ -139,7 +140,7 @@  chassis_run(struct controller_ctx *ctx,
     const char *iface_types_str = ds_cstr(&iface_types);
 
     const struct sbrec_chassis *chassis_rec
-        = get_chassis(chassis_table, chassis_id);
+        = chassis_lookup_by_name(sbrec_chassis_by_name, chassis_id);
     const char *encap_csum = smap_get_def(&cfg->external_ids,
                                           "ovn-encap-csum", "true");
     if (chassis_rec) {
diff --git a/ovn/controller/chassis.h b/ovn/controller/chassis.h
index 6d4787854c1c..f5245c363683 100644
--- a/ovn/controller/chassis.h
+++ b/ovn/controller/chassis.h
@@ -20,6 +20,7 @@ 
 
 struct controller_ctx;
 struct ovsdb_idl;
+struct ovsdb_idl_index;
 struct ovsrec_bridge;
 struct ovsrec_open_vswitch_table;
 struct sbrec_chassis;
@@ -27,8 +28,9 @@  struct sbrec_chassis_table;
 
 void chassis_register_ovs_idl(struct ovsdb_idl *);
 const struct sbrec_chassis *chassis_run(
-    struct controller_ctx *, const struct ovsrec_open_vswitch_table *,
-    const struct sbrec_chassis_table *,
+    struct controller_ctx *,
+    struct ovsdb_idl_index *sbrec_chassis_by_name,
+    const struct ovsrec_open_vswitch_table *,
     const char *chassis_id, const struct ovsrec_bridge *br_int);
 bool chassis_cleanup(struct controller_ctx *, const struct sbrec_chassis *);
 
diff --git a/ovn/controller/ovn-controller.c b/ovn/controller/ovn-controller.c
index cd4208556de7..1754c51a0fcd 100644
--- a/ovn/controller/ovn-controller.c
+++ b/ovn/controller/ovn-controller.c
@@ -94,21 +94,6 @@  get_local_datapath(const struct hmap *local_datapaths, uint32_t tunnel_key)
             : NULL);
 }
 
-const struct sbrec_chassis *
-get_chassis(const struct sbrec_chassis_table *chassis_table,
-            const char *chassis_id)
-{
-    const struct sbrec_chassis *chassis_rec;
-
-    SBREC_CHASSIS_TABLE_FOR_EACH (chassis_rec, chassis_table) {
-        if (!strcmp(chassis_rec->name, chassis_id)) {
-            break;
-        }
-    }
-
-    return chassis_rec;
-}
-
 uint32_t
 get_tunnel_type(const char *name)
 {
@@ -691,9 +676,8 @@  main(int argc, char *argv[])
 
         const struct sbrec_chassis *chassis = NULL;
         if (chassis_id) {
-            chassis = chassis_run(&ctx,
+            chassis = chassis_run(&ctx, sbrec_chassis_by_name,
                                   ovsrec_open_vswitch_table_get(ctx.ovs_idl),
-                                  sbrec_chassis_table_get(ctx.ovnsb_idl),
                                   chassis_id, br_int);
             encaps_run(&ctx,
                        ovsrec_bridge_table_get(ctx.ovs_idl), br_int,
@@ -881,8 +865,6 @@  main(int argc, char *argv[])
         const struct ovsrec_open_vswitch_table *ovs_table
             = ovsrec_open_vswitch_table_get(ctx.ovs_idl);
 
-        const struct sbrec_chassis_table *chassis_table
-            = sbrec_chassis_table_get(ctx.ovnsb_idl);
         const struct sbrec_port_binding_table *port_binding_table
             = sbrec_port_binding_table_get(ctx.ovnsb_idl);
 
@@ -890,7 +872,9 @@  main(int argc, char *argv[])
                                                         ovs_table);
         const char *chassis_id = get_chassis_id(ovs_table);
         const struct sbrec_chassis *chassis
-            = chassis_id ? get_chassis(chassis_table, chassis_id) : NULL;
+            = (chassis_id
+               ? chassis_lookup_by_name(sbrec_chassis_by_name, chassis_id)
+               : NULL);
 
         /* Run all of the cleanup functions, even if one of them returns false.
          * We're done if all of them return true. */
diff --git a/ovn/controller/ovn-controller.h b/ovn/controller/ovn-controller.h
index 7a172a7879bd..6f4e961886ac 100644
--- a/ovn/controller/ovn-controller.h
+++ b/ovn/controller/ovn-controller.h
@@ -78,9 +78,6 @@  struct local_datapath *get_local_datapath(const struct hmap *,
 const struct ovsrec_bridge *get_bridge(const struct ovsrec_bridge_table *,
                                        const char *br_name);
 
-const struct sbrec_chassis *get_chassis(const struct sbrec_chassis_table *,
-                                        const char *chassis_id);
-
 /* Must be a bit-field ordered from most-preferred (higher number) to
  * least-preferred (lower number). */
 enum chassis_tunnel_type {