[ovs-dev] [PATCH] ovn-controller: update_ct_zone operates always on empty set

bschanmu at redhat.com bschanmu at redhat.com
Tue Jul 26 10:46:44 UTC 2016


From: Babu Shanmugam <bschanmu at redhat.com>

Commit 263064a (Convert binding_run to incremental processing.) removed the usage
of all_lports from binding_run, but it is infact used in the context of the caller,
especially by update_ct_zones().

Without this change, update_ct_zones operates on an empty set always.

Signed-off-by: Babu Shanmugam <bschanmu at redhat.com>
---
 ovn/controller/binding.c        | 4 +++-
 ovn/controller/binding.h        | 3 ++-
 ovn/controller/ovn-controller.c | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/ovn/controller/binding.c b/ovn/controller/binding.c
index e83c1d5..7bc6fb4 100644
--- a/ovn/controller/binding.c
+++ b/ovn/controller/binding.c
@@ -230,7 +230,8 @@ consider_local_datapath(struct controller_ctx *ctx,
 
 void
 binding_run(struct controller_ctx *ctx, const struct ovsrec_bridge *br_int,
-            const char *chassis_id, struct hmap *local_datapaths)
+            const char *chassis_id, struct hmap *local_datapaths,
+            struct sset *all_lports)
 {
     const struct sbrec_chassis *chassis_rec;
     const struct sbrec_port_binding *binding_rec;
@@ -292,6 +293,7 @@ binding_run(struct controller_ctx *ctx, const struct ovsrec_bridge *br_int,
         }
     }
 
+    sset_clone(all_lports, &local_ids);
     shash_destroy(&lport_to_iface);
 }
 
diff --git a/ovn/controller/binding.h b/ovn/controller/binding.h
index 8753d44..fbd16c8 100644
--- a/ovn/controller/binding.h
+++ b/ovn/controller/binding.h
@@ -29,7 +29,8 @@ struct sset;
 void binding_register_ovs_idl(struct ovsdb_idl *);
 void binding_reset_processing(void);
 void binding_run(struct controller_ctx *, const struct ovsrec_bridge *br_int,
-                 const char *chassis_id, struct hmap *local_datapaths);
+                 const char *chassis_id, struct hmap *local_datapaths,
+                 struct sset *all_lports);
 bool binding_cleanup(struct controller_ctx *, const char *chassis_id);
 
 #endif /* ovn/binding.h */
diff --git a/ovn/controller/ovn-controller.c b/ovn/controller/ovn-controller.c
index 4d9490a..6a6bb93 100644
--- a/ovn/controller/ovn-controller.c
+++ b/ovn/controller/ovn-controller.c
@@ -425,7 +425,7 @@ main(int argc, char *argv[])
         if (chassis_id) {
             chassis_run(&ctx, chassis_id);
             encaps_run(&ctx, br_int, chassis_id);
-            binding_run(&ctx, br_int, chassis_id, &local_datapaths);
+            binding_run(&ctx, br_int, chassis_id, &local_datapaths, &all_lports);
         }
 
         if (br_int && chassis_id) {
-- 
2.5.5




More information about the dev mailing list