summaryrefslogtreecommitdiffstats
path: root/isisd/isis_zebra.h
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2020-06-04 18:03:04 +0200
committerOlivier Dugeon <olivier.dugeon@orange.com>2020-06-23 16:36:56 +0200
commit58fbcdf2faa7d987977068938468d32704ebe623 (patch)
treee9830226c8f940c218daa44e7ea0005ed6adb7b9 /isisd/isis_zebra.h
parentisisd: Add Segment Routing Local Block support (diff)
downloadfrr-58fbcdf2faa7d987977068938468d32704ebe623.tar.xz
frr-58fbcdf2faa7d987977068938468d32704ebe623.zip
isisd: Start Label Manager safer
Initial attempt to connect to the Label Manager used an infinite loop with a sleep statement which block isisd until Label Manager connection fire up. This commit changes the way Label Manager connection is established and uses a `thread_add_timer()` call to re-attempt to establish the connection in case of failure (zebra or label manager not ready). New variables are added to the SRDB in order to control the request of SRGB and SRLB to the Label Manager to start Segment Routing in a safe way. Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
Diffstat (limited to 'isisd/isis_zebra.h')
-rw-r--r--isisd/isis_zebra.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/isisd/isis_zebra.h b/isisd/isis_zebra.h
index e853ce34d..fd1c1df61 100644
--- a/isisd/isis_zebra.h
+++ b/isisd/isis_zebra.h
@@ -49,7 +49,9 @@ void isis_zebra_send_adjacency_sid(int cmd, const struct sr_adjacency *sra);
int isis_distribute_list_update(int routetype);
void isis_zebra_redistribute_set(afi_t afi, int type);
void isis_zebra_redistribute_unset(afi_t afi, int type);
+bool isis_zebra_label_manager_ready(void);
+int isis_zebra_label_manager_connect(void);
int isis_zebra_request_label_range(uint32_t base, uint32_t chunk_size);
-void isis_zebra_release_label_range(uint32_t start, uint32_t end);
+int isis_zebra_release_label_range(uint32_t start, uint32_t end);
#endif /* _ZEBRA_ISIS_ZEBRA_H */