An upcoming patch will add a Datapath_Binding table, so clarifying the
name seems useful.

Signed-off-by: Ben Pfaff <b...@nicira.com>
---
 ovn/controller/binding.c  |  28 ++++++-------
 ovn/controller/physical.c |   4 +-
 ovn/controller/pipeline.c |   4 +-
 ovn/northd/ovn-northd.c   | 105 ++++++++++++++++++++++++----------------------
 ovn/ovn-sb.ovsschema      |   2 +-
 ovn/ovn-sb.xml            |   8 ++--
 6 files changed, 79 insertions(+), 72 deletions(-)

diff --git a/ovn/controller/binding.c b/ovn/controller/binding.c
index c83b044..1b137bb 100644
--- a/ovn/controller/binding.c
+++ b/ovn/controller/binding.c
@@ -76,7 +76,7 @@ binding_run(struct controller_ctx *ctx, const struct 
ovsrec_bridge *br_int,
             const char *chassis_id)
 {
     const struct sbrec_chassis *chassis_rec;
-    const struct sbrec_binding *binding_rec;
+    const struct sbrec_port_binding *binding_rec;
     struct sset lports, all_lports;
     const char *name;
 
@@ -96,11 +96,11 @@ binding_run(struct controller_ctx *ctx, const struct 
ovsrec_bridge *br_int,
     }
     sset_clone(&all_lports, &lports);
 
-    ovsdb_idl_txn_add_comment(ctx->ovnsb_idl_txn,
-                              "ovn-controller: updating bindings for '%s'",
-                              chassis_id);
+    ovsdb_idl_txn_add_comment(
+        ctx->ovnsb_idl_txn,"ovn-controller: updating port bindings for '%s'",
+        chassis_id);
 
-    SBREC_BINDING_FOR_EACH(binding_rec, ctx->ovnsb_idl) {
+    SBREC_PORT_BINDING_FOR_EACH(binding_rec, ctx->ovnsb_idl) {
         if (sset_find_and_delete(&lports, binding_rec->logical_port) ||
                 (binding_rec->parent_port && binding_rec->parent_port[0] &&
                  sset_contains(&all_lports, binding_rec->parent_port))) {
@@ -113,14 +113,14 @@ binding_run(struct controller_ctx *ctx, const struct 
ovsrec_bridge *br_int,
                           binding_rec->chassis->name,
                           chassis_rec->name);
             }
-            sbrec_binding_set_chassis(binding_rec, chassis_rec);
+            sbrec_port_binding_set_chassis(binding_rec, chassis_rec);
         } else if (binding_rec->chassis == chassis_rec) {
-            sbrec_binding_set_chassis(binding_rec, NULL);
+            sbrec_port_binding_set_chassis(binding_rec, NULL);
         }
     }
 
     SSET_FOR_EACH (name, &lports) {
-        VLOG_DBG("No binding record for lport %s", name);
+        VLOG_DBG("No port binding record for lport %s", name);
     }
     sset_destroy(&lports);
     sset_destroy(&all_lports);
@@ -144,15 +144,15 @@ binding_cleanup(struct controller_ctx *ctx, const char 
*chassis_id)
         return true;
     }
 
-    ovsdb_idl_txn_add_comment(ctx->ovnsb_idl_txn,
-                              "ovn-controller: removing all bindings for '%s'",
-                              chassis_id);
+    ovsdb_idl_txn_add_comment(
+        ctx->ovnsb_idl_txn,
+        "ovn-controller: removing all port bindings for '%s'", chassis_id);
 
-    const struct sbrec_binding *binding_rec;
+    const struct sbrec_port_binding *binding_rec;
     bool any_changes = false;
-    SBREC_BINDING_FOR_EACH(binding_rec, ctx->ovnsb_idl) {
+    SBREC_PORT_BINDING_FOR_EACH(binding_rec, ctx->ovnsb_idl) {
         if (binding_rec->chassis == chassis_rec) {
-            sbrec_binding_set_chassis(binding_rec, NULL);
+            sbrec_port_binding_set_chassis(binding_rec, NULL);
             any_changes = true;
         }
     }
diff --git a/ovn/controller/physical.c b/ovn/controller/physical.c
index 11f88cb..55d6107 100644
--- a/ovn/controller/physical.c
+++ b/ovn/controller/physical.c
@@ -91,8 +91,8 @@ physical_run(struct controller_ctx *ctx, const struct 
ovsrec_bridge *br_int,
 
     /* Set up flows in table 0 for physical-to-logical translation and in table
      * 64 for logical-to-physical translation. */
-    const struct sbrec_binding *binding;
-    SBREC_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
+    const struct sbrec_port_binding *binding;
+    SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
         /* Find the OpenFlow port for the logical port, as 'ofport'.  If it's
          * on a remote chassis, this is the OpenFlow port for the tunnel to
          * that chassis (and set 'local' to false).  Otherwise, if it's on the
diff --git a/ovn/controller/pipeline.c b/ovn/controller/pipeline.c
index 4c0ffd3..1927ce4 100644
--- a/ovn/controller/pipeline.c
+++ b/ovn/controller/pipeline.c
@@ -214,8 +214,8 @@ ldp_run(struct controller_ctx *ctx)
         simap_clear(&ldp->ports);
     }
 
-    const struct sbrec_binding *binding;
-    SBREC_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
+    const struct sbrec_port_binding *binding;
+    SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
         struct logical_datapath *ldp;
 
         ldp = ldp_lookup(&binding->logical_datapath);
diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c
index 70d868a..2ad727c 100644
--- a/ovn/northd/ovn-northd.c
+++ b/ovn/northd/ovn-northd.c
@@ -406,7 +406,7 @@ build_pipeline(struct northd_context *ctx)
 }
 
 static bool
-parents_equal(const struct sbrec_binding *binding,
+parents_equal(const struct sbrec_port_binding *binding,
               const struct nbrec_logical_port *lport)
 {
     if (!!binding->parent_port != !!lport->parent_name) {
@@ -424,7 +424,7 @@ parents_equal(const struct sbrec_binding *binding,
 }
 
 static bool
-tags_equal(const struct sbrec_binding *binding,
+tags_equal(const struct sbrec_port_binding *binding,
            const struct nbrec_logical_port *lport)
 {
     if (binding->n_tag != lport->n_tag) {
@@ -434,16 +434,16 @@ tags_equal(const struct sbrec_binding *binding,
     return binding->n_tag ? (binding->tag[0] == lport->tag[0]) : true;
 }
 
-struct binding_hash_node {
+struct port_binding_hash_node {
     struct hmap_node lp_node; /* In 'lp_map', by binding->logical_port. */
     struct hmap_node tk_node; /* In 'tk_map', by binding->tunnel_key. */
-    const struct sbrec_binding *binding;
+    const struct sbrec_port_binding *binding;
 };
 
 static bool
 tunnel_key_in_use(const struct hmap *tk_hmap, uint16_t tunnel_key)
 {
-    const struct binding_hash_node *hash_node;
+    const struct port_binding_hash_node *hash_node;
 
     HMAP_FOR_EACH_IN_BUCKET (hash_node, tk_node, hash_int(tunnel_key, 0),
                              tk_hmap) {
@@ -475,19 +475,19 @@ choose_tunnel_key(const struct hmap *tk_hmap)
 
 /*
  * When a change has occurred in the OVN_Northbound database, we go through and
- * make sure that the contents of the Binding table in the OVN_Southbound
+ * make sure that the contents of the Port_Binding table in the OVN_Southbound
  * database are up to date with the logical ports defined in the
  * OVN_Northbound database.
  */
 static void
-set_bindings(struct northd_context *ctx)
+set_port_bindings(struct northd_context *ctx)
 {
-    const struct sbrec_binding *binding;
+    const struct sbrec_port_binding *binding;
 
     /*
-     * We will need to look up a binding for every logical port.  We don't want
-     * to have to do an O(n) search for every binding, so start out by hashing
-     * them on the logical port.
+     * We will need to look up a port binding for every logical port.  We don't
+     * want to have to do an O(n) search for every binding, so start out by
+     * hashing them on the logical port.
      *
      * As we go through every logical port, we will update the binding if it
      * exists or create one otherwise.  When the update is done, we'll remove
@@ -496,14 +496,14 @@ set_bindings(struct northd_context *ctx)
      *
      * We index the logical_port column because that's the shared key between
      * the OVN_NB and OVN_SB databases.  We index the tunnel_key column to
-     * allow us to choose a unique tunnel key for any Binding rows we have to
-     * add.
+     * allow us to choose a unique tunnel key for any Port_Binding rows we have
+     * to add.
      */
     struct hmap lp_hmap = HMAP_INITIALIZER(&lp_hmap);
     struct hmap tk_hmap = HMAP_INITIALIZER(&tk_hmap);
 
-    SBREC_BINDING_FOR_EACH(binding, ctx->ovnsb_idl) {
-        struct binding_hash_node *hash_node = xzalloc(sizeof *hash_node);
+    SBREC_PORT_BINDING_FOR_EACH(binding, ctx->ovnsb_idl) {
+        struct port_binding_hash_node *hash_node = xzalloc(sizeof *hash_node);
         hash_node->binding = binding;
         hmap_insert(&lp_hmap, &hash_node->lp_node,
                     hash_string(binding->logical_port, 0));
@@ -517,7 +517,7 @@ set_bindings(struct northd_context *ctx)
 
         for (size_t i = 0; i < lswitch->n_ports; i++) {
             const struct nbrec_logical_port *lport = lswitch->ports[i];
-            struct binding_hash_node *hash_node;
+            struct port_binding_hash_node *hash_node;
             binding = NULL;
             HMAP_FOR_EACH_WITH_HASH(hash_node, lp_node,
                                     hash_string(lport->name, 0), &lp_hmap) {
@@ -535,19 +535,22 @@ set_bindings(struct northd_context *ctx)
 
                 if (!macs_equal(binding->mac, binding->n_mac,
                                 lport->macs, lport->n_macs)) {
-                    sbrec_binding_set_mac(binding, (const char **) lport->macs,
-                                          lport->n_macs);
+                    sbrec_port_binding_set_mac(binding,
+                                               (const char **) lport->macs,
+                                               lport->n_macs);
                 }
                 if (!parents_equal(binding, lport)) {
-                    sbrec_binding_set_parent_port(binding, lport->parent_name);
+                    sbrec_port_binding_set_parent_port(binding,
+                                                       lport->parent_name);
                 }
                 if (!tags_equal(binding, lport)) {
-                    sbrec_binding_set_tag(binding, lport->tag, lport->n_tag);
+                    sbrec_port_binding_set_tag(binding,
+                                               lport->tag, lport->n_tag);
                 }
                 if (!uuid_equals(&binding->logical_datapath,
                                  logical_datapath)) {
-                    sbrec_binding_set_logical_datapath(binding,
-                                                       *logical_datapath);
+                    sbrec_port_binding_set_logical_datapath(binding,
+                                                            *logical_datapath);
                 }
             } else {
                 /* There is no binding for this logical port, so create one. */
@@ -557,23 +560,27 @@ set_bindings(struct northd_context *ctx)
                     continue;
                 }
 
-                binding = sbrec_binding_insert(ctx->ovnsb_txn);
-                sbrec_binding_set_logical_port(binding, lport->name);
-                sbrec_binding_set_mac(binding, (const char **) lport->macs,
-                                      lport->n_macs);
+                binding = sbrec_port_binding_insert(ctx->ovnsb_txn);
+                sbrec_port_binding_set_logical_port(binding, lport->name);
+                sbrec_port_binding_set_mac(binding,
+                                           (const char **) lport->macs,
+                                           lport->n_macs);
                 if (lport->parent_name && lport->n_tag > 0) {
-                    sbrec_binding_set_parent_port(binding, lport->parent_name);
-                    sbrec_binding_set_tag(binding, lport->tag, lport->n_tag);
+                    sbrec_port_binding_set_parent_port(binding,
+                                                       lport->parent_name);
+                    sbrec_port_binding_set_tag(binding,
+                                               lport->tag, lport->n_tag);
                 }
 
-                sbrec_binding_set_tunnel_key(binding, tunnel_key);
-                sbrec_binding_set_logical_datapath(binding, *logical_datapath);
+                sbrec_port_binding_set_tunnel_key(binding, tunnel_key);
+                sbrec_port_binding_set_logical_datapath(binding,
+                                                        *logical_datapath);
 
                 /* Add the tunnel key to the tk_hmap so that we don't try to
                  * use it for another port.  (We don't want it in the lp_hmap
                  * because that would just get the Binding record deleted
                  * later.) */
-                struct binding_hash_node *hash_node
+                struct port_binding_hash_node *hash_node
                     = xzalloc(sizeof *hash_node);
                 hash_node->binding = binding;
                 hmap_insert(&tk_hmap, &hash_node->tk_node,
@@ -582,14 +589,14 @@ set_bindings(struct northd_context *ctx)
         }
     }
 
-    struct binding_hash_node *hash_node;
+    struct port_binding_hash_node *hash_node;
     HMAP_FOR_EACH (hash_node, lp_node, &lp_hmap) {
         hmap_remove(&lp_hmap, &hash_node->lp_node);
-        sbrec_binding_delete(hash_node->binding);
+        sbrec_port_binding_delete(hash_node->binding);
     }
     hmap_destroy(&lp_hmap);
 
-    struct binding_hash_node *hash_node_next;
+    struct port_binding_hash_node *hash_node_next;
     HMAP_FOR_EACH_SAFE (hash_node, hash_node_next, tk_node, &tk_hmap) {
         hmap_remove(&tk_hmap, &hash_node->tk_node);
         free(hash_node);
@@ -602,20 +609,20 @@ ovnnb_db_changed(struct northd_context *ctx)
 {
     VLOG_DBG("ovn-nb db contents have changed.");
 
-    set_bindings(ctx);
+    set_port_bindings(ctx);
     build_pipeline(ctx);
 }
 
 /*
  * The only change we get notified about is if the 'chassis' column of the
- * 'Binding' table changes.  When this column is not empty, it means we need to
- * set the corresponding logical port as 'up' in the northbound DB.
+ * 'Port_Binding' table changes.  When this column is not empty, it means we
+ * need to set the corresponding logical port as 'up' in the northbound DB.
  */
 static void
 ovnsb_db_changed(struct northd_context *ctx)
 {
     struct hmap lports_hmap;
-    const struct sbrec_binding *binding;
+    const struct sbrec_port_binding *binding;
     const struct nbrec_logical_port *lport;
 
     struct lport_hash_node {
@@ -634,7 +641,7 @@ ovnsb_db_changed(struct northd_context *ctx)
                 hash_string(lport->name, 0));
     }
 
-    SBREC_BINDING_FOR_EACH(binding, ctx->ovnsb_idl) {
+    SBREC_PORT_BINDING_FOR_EACH(binding, ctx->ovnsb_idl) {
         lport = NULL;
         HMAP_FOR_EACH_WITH_HASH(hash_node, node,
                 hash_string(binding->logical_port, 0), &lports_hmap) {
@@ -645,9 +652,9 @@ ovnsb_db_changed(struct northd_context *ctx)
         }
 
         if (!lport) {
-            /* The logical port doesn't exist for this binding.  This can
+            /* The logical port doesn't exist for this port binding.  This can
              * happen under normal circumstances when ovn-northd hasn't gotten
-             * around to pruning the Binding yet. */
+             * around to pruning the Port_Binding yet. */
             continue;
         }
 
@@ -789,14 +796,14 @@ main(int argc, char *argv[])
      * has to care about, so we'll enable monitoring those directly. */
     ctx.ovnsb_idl = ovnsb_idl = ovsdb_idl_create(ovnsb_db,
             &sbrec_idl_class, false, true);
-    ovsdb_idl_add_table(ovnsb_idl, &sbrec_table_binding);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_logical_port);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_chassis);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_mac);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_tag);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_parent_port);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_logical_datapath);
-    ovsdb_idl_add_column(ovnsb_idl, &sbrec_binding_col_tunnel_key);
+    ovsdb_idl_add_table(ovnsb_idl, &sbrec_table_port_binding);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_logical_port);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_chassis);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_mac);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_tag);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_parent_port);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_logical_datapath);
+    ovsdb_idl_add_column(ovnsb_idl, &sbrec_port_binding_col_tunnel_key);
     ovsdb_idl_add_column(ovnsb_idl, &sbrec_pipeline_col_logical_datapath);
     ovsdb_idl_omit_alert(ovnsb_idl, &sbrec_pipeline_col_logical_datapath);
     ovsdb_idl_add_column(ovnsb_idl, &sbrec_pipeline_col_table_id);
diff --git a/ovn/ovn-sb.ovsschema b/ovn/ovn-sb.ovsschema
index f255006..4a2df47 100644
--- a/ovn/ovn-sb.ovsschema
+++ b/ovn/ovn-sb.ovsschema
@@ -44,7 +44,7 @@
                 "match": {"type": "string"},
                 "actions": {"type": "string"}},
             "isRoot": true},
-        "Binding": {
+        "Port_Binding": {
             "columns": {
                 "logical_datapath": {"type": "uuid"},
                 "logical_port": {"type": "string"},
diff --git a/ovn/ovn-sb.xml b/ovn/ovn-sb.xml
index 52fe969..13e5145 100644
--- a/ovn/ovn-sb.xml
+++ b/ovn/ovn-sb.xml
@@ -98,7 +98,7 @@
   </p>
 
   <p>
-    The <ref table="Binding"/> table is currently the only binding data.
+    The <ref table="Port_Binding"/> table is currently the only binding data.
   </p>
 
   <table name="Chassis" title="Physical Network Hypervisor and Gateway 
Information">
@@ -226,7 +226,7 @@
     <column name="logical_datapath">
       The logical datapath to which the logical flow belongs.  A logical
       datapath implements a logical pipeline among the ports in the <ref
-      table="Binding"/> table associated with it.  (No table represents a
+      table="Port_Binding"/> table associated with it.  (No table represents a
       logical datapath.)  In practice, the pipeline in a given logical datapath
       implements either a logical switch or a logical router, and
       <code>ovn-northd</code> reuses the UUIDs for those logical entities from
@@ -451,7 +451,7 @@
         String constants have the same syntax as quoted strings in JSON (thus,
         they are Unicode strings).  String constants are used for naming
         logical ports.  Thus, the useful values are <ref
-        column="logical_port"/> names from the <ref column="Binding"/> and
+        column="logical_port"/> names from the <ref column="Port_Binding"/> and
         <ref column="Gateway"/> tables in a logical flow's <ref
         column="logical_datapath"/>.
       </p>
@@ -628,7 +628,7 @@
     </column>
   </table>
 
-  <table name="Binding" title="Physical-Logical Bindings">
+  <table name="Port_Binding" title="Physical-Logical Port Bindings">
     <p>
       Each row in this table identifies the physical location of a logical
       port.
-- 
2.1.3

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to