]> git.proxmox.com Git - mirror_ovs.git/blobdiff - ovsdb/row.h
ovsdb-server: Transaction history tracking.
[mirror_ovs.git] / ovsdb / row.h
index 8920a0e19d271ca49262dfd6d4850270f1bd28e9..2c441b5a4b3b2fc7c7f19c4642797bae1e67c81e 100644 (file)
@@ -19,8 +19,8 @@
 #include <stddef.h>
 #include <stdint.h>
 #include "column.h"
-#include "hmap.h"
-#include "list.h"
+#include "openvswitch/hmap.h"
+#include "openvswitch/list.h"
 #include "ovsdb-data.h"
 
 struct ovsdb_column_set;
@@ -36,9 +36,11 @@ struct ovsdb_column_set;
  * ovsdb_weak_ref" structures are created for them.
  */
 struct ovsdb_weak_ref {
-    struct list src_node;       /* In src->src_refs list. */
-    struct list dst_node;       /* In destination row's dst_refs list. */
-    struct ovsdb_row *src;      /* Source row. */
+    struct ovs_list src_node;      /* In src->src_refs list. */
+    struct ovs_list dst_node;      /* In destination row's dst_refs list. */
+    struct ovsdb_row *src;         /* Source row. */
+    struct ovsdb_table *dst_table; /* Destination table. */
+    struct uuid dst;               /* Destination row uuid. */
 };
 
 /* A row in a database table. */
@@ -47,9 +49,9 @@ struct ovsdb_row {
     struct ovsdb_table *table;     /* Table to which this belongs. */
     struct ovsdb_txn_row *txn_row; /* Transaction that row is in, if any. */
 
-    /* Weak references. */
-    struct list src_refs;       /* Weak references from this row. */
-    struct list dst_refs;       /* Weak references to this row. */
+    /* Weak references.  Updated and checked only at transaction commit. */
+    struct ovs_list src_refs;   /* Weak references from this row. */
+    struct ovs_list dst_refs;   /* Weak references to this row. */
 
     /* Number of strong refs to this row from other rows, in this table or
      * other tables, through 'uuid' columns that have a 'refTable' constraint