Now that a complete uuidset implementation is available in the OVS
libraries we can remove the custom one that was part of
ovn-northd-ddlog.c.  This has at least the benefit that it won't create
confusion when developers search for a uuidset implementation in the
code base.

Signed-off-by: Dumitru Ceara <[email protected]>
---
Note: This is not really tested because I don't have an en environment
set up for DDLog anymore.
---
 northd/ovn-northd-ddlog.c | 67 +++------------------------------------
 1 file changed, 5 insertions(+), 62 deletions(-)

diff --git a/northd/ovn-northd-ddlog.c b/northd/ovn-northd-ddlog.c
index e9afda4c6..1c06bd002 100644
--- a/northd/ovn-northd-ddlog.c
+++ b/northd/ovn-northd-ddlog.c
@@ -27,7 +27,6 @@
 #include "jsonrpc.h"
 #include "lib/ovn-util.h"
 #include "memory.h"
-#include "openvswitch/hmap.h"
 #include "openvswitch/json.h"
 #include "openvswitch/poll-loop.h"
 #include "openvswitch/vlog.h"
@@ -40,6 +39,7 @@
 #include "simap.h"
 #include "stopwatch.h"
 #include "lib/stopwatch-names.h"
+#include "lib/uuidset.h"
 #include "stream-ssl.h"
 #include "stream.h"
 #include "unixctl.h"
@@ -695,66 +695,9 @@ ddlog_table_update_output(struct ds *ds, ddlog_prog ddlog, 
ddlog_delta *delta,
     ddlog_free_json(updates);
 }
 
-/* A set of UUIDs.
- *
- * Not fully abstracted: the client still uses plain struct hmap, for
- * example. */
-
-/* A node within a set of uuids. */
-struct uuidset_node {
-    struct hmap_node hmap_node;
-    struct uuid uuid;
-};
-
-static void uuidset_delete(struct hmap *uuidset, struct uuidset_node *);
-
-static void
-uuidset_destroy(struct hmap *uuidset)
-{
-    if (uuidset) {
-        struct uuidset_node *node;
-
-        HMAP_FOR_EACH_SAFE (node, hmap_node, uuidset) {
-            uuidset_delete(uuidset, node);
-        }
-        hmap_destroy(uuidset);
-    }
-}
-
-static struct uuidset_node *
-uuidset_find(struct hmap *uuidset, const struct uuid *uuid)
-{
-    struct uuidset_node *node;
-
-    HMAP_FOR_EACH_WITH_HASH (node, hmap_node, uuid_hash(uuid), uuidset) {
-        if (uuid_equals(uuid, &node->uuid)) {
-            return node;
-        }
-    }
-
-    return NULL;
-}
-
-static void
-uuidset_insert(struct hmap *uuidset, const struct uuid *uuid)
-{
-    if (!uuidset_find(uuidset, uuid)) {
-        struct uuidset_node *node = xmalloc(sizeof *node);
-        node->uuid = *uuid;
-        hmap_insert(uuidset, &node->hmap_node, uuid_hash(&node->uuid));
-    }
-}
-
-static void
-uuidset_delete(struct hmap *uuidset, struct uuidset_node *node)
-{
-    hmap_remove(uuidset, &node->hmap_node);
-    free(node);
-}
-
 static struct ovsdb_error *
 parse_output_only_data(const struct json *txn_result, size_t index,
-                       struct hmap *uuidset)
+                       struct uuidset *uuidset)
 {
     if (txn_result->type != JSON_ARRAY || txn_result->array.n <= index) {
         return ovsdb_syntax_error(txn_result, NULL,
@@ -809,7 +752,7 @@ get_ddlog_uuid(const ddlog_record *rec, struct uuid *uuid)
 
 struct dump_index_data {
     ddlog_prog prog;
-    struct hmap *rows_present;
+    struct uuidset *rows_present;
     const char *table;
     struct ds *ops_s;
 };
@@ -944,7 +887,7 @@ get_database_ops(struct northd_ctx *ctx)
             const char *table = ctx->output_only_relations[i];
 
             /* Parse the list of row UUIDs received from OVSDB. */
-            struct hmap rows_present = HMAP_INITIALIZER(&rows_present);
+            struct uuidset rows_present = UUIDSET_INITIALIZER(&rows_present);
             struct ovsdb_error *error = parse_output_only_data(
                 ctx->output_only_data, i, &rows_present);
             if (error) {
@@ -979,7 +922,7 @@ get_database_ops(struct northd_ctx *ctx)
             /* Any uuids remaining in 'rows_present' are rows that are in OVSDB
              * but not DDlog.  Delete them from OVSDB. */
             struct uuidset_node *node;
-            HMAP_FOR_EACH (node, hmap_node, &rows_present) {
+            UUIDSET_FOR_EACH (node, &rows_present) {
                 add_delete_row_op(table, &node->uuid, &ops_s);
             }
             uuidset_destroy(&rows_present);
-- 
2.31.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to