]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/affinitymap.h
Merge pull request #13649 from donaldsharp/unlock_the_node_or_else
[mirror_frr.git] / lib / affinitymap.h
index 323439c7435c51f8f009de70fa64b34ecfc38566..19edf5a269ea72cc4e8ede9ff43159180ac92245 100644 (file)
@@ -50,6 +50,11 @@ DECLARE_QOBJ_TYPE(affinity_map);
 struct affinity_maps {
        struct list *maps;
 
+       bool (*check_use_hook)(const char *affmap_name);
+       bool (*check_update_hook)(const char *affmap_name, uint16_t new_pos);
+       void (*update_hook)(const char *affmap_name, uint16_t old_pos,
+                           uint16_t new_pos);
+
        QOBJ_FIELDS;
 };
 DECLARE_QOBJ_TYPE(affinity_maps);
@@ -61,6 +66,17 @@ void affinity_map_unset(const char *name);
 struct affinity_map *affinity_map_get(const char *name);
 char *affinity_map_name_get(const int pos);
 
+bool affinity_map_check_use_hook(const char *affmap_name);
+bool affinity_map_check_update_hook(const char *affmap_name, uint16_t new_pos);
+void affinity_map_update_hook(const char *affmap_name, uint16_t new_pos);
+
+void affinity_map_set_check_use_hook(bool (*func)(const char *affmap_name));
+void affinity_map_set_check_update_hook(bool (*func)(const char *affmap_name,
+                                                    uint16_t new_pos));
+void affinity_map_set_update_hook(void (*func)(const char *affmap_name,
+                                              uint16_t old_pos,
+                                              uint16_t new_pos));
+
 void cli_show_affinity_map(struct vty *vty, const struct lyd_node *dnode,
                           bool show_defaults);