diff options
author | Olivier Dugeon <olivier.dugeon@orange.com> | 2020-06-04 18:03:04 +0200 |
---|---|---|
committer | Olivier Dugeon <olivier.dugeon@orange.com> | 2020-06-23 16:36:56 +0200 |
commit | 58fbcdf2faa7d987977068938468d32704ebe623 (patch) | |
tree | e9830226c8f940c218daa44e7ea0005ed6adb7b9 /isisd/isis_zebra.h | |
parent | isisd: Add Segment Routing Local Block support (diff) | |
download | frr-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.h | 4 |
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 */ |