usteer: track RRM and BSS-TM support per connection
[project/usteer.git] / node.h
diff --git a/node.h b/node.h
index 34b030ae7c6be45978283b5bb1e66901f874da60..1e36f58c226d0cb43431cd0a6bbdea6638ab1ad8 100644 (file)
--- a/node.h
+++ b/node.h
@@ -25,6 +25,7 @@
 enum local_req_state {
        REQ_IDLE,
        REQ_CLIENTS,
+       REQ_STATUS,
        REQ_RRM_SET_LIST,
        REQ_RRM_GET_OWN,
        __REQ_MAX
@@ -51,6 +52,13 @@ struct usteer_local_node {
 
        uint64_t time, time_busy;
 
+       struct kvlist node_info;
+
+       struct uloop_timeout bss_tm_queries_timeout;
+       struct list_head bss_tm_queries;
+
+       int beacon_interval;
+
        struct {
                bool present;
                struct uloop_timeout update;
@@ -63,22 +71,35 @@ struct usteer_local_node {
 };
 
 struct interface;
-struct usteer_remote_node {
+
+struct usteer_remote_host {
        struct avl_node avl;
+
+       struct list_head nodes;
+       struct blob_attr *host_info;
+       char *addr;
+};
+
+struct usteer_remote_node {
+       struct list_head list;
+       struct list_head host_list;
        const char *name;
 
+       struct usteer_remote_host *host;
        struct usteer_node node;
-       struct interface *iface;
 
        int check;
 };
 
 extern struct avl_tree local_nodes;
-extern struct avl_tree remote_nodes;
+extern struct list_head remote_nodes;
+extern struct avl_tree remote_hosts;
 
 #define for_each_local_node(node)                      \
        avl_for_each_element(&local_nodes, node, avl)   \
                if (!node->disabled)
 
+#define for_each_remote_node(rn)                       \
+       list_for_each_entry(rn, &remote_nodes, list)
 
 #endif