diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2025-02-15 09:39:04 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-15 09:39:04 -0500 |
| commit | b2c960a19d17ad65c5ef02e12e8cca9117ef1fc6 (patch) | |
| tree | b087077aad1ca08f6d97d86ddbb823ff7828a6df /isisd/isis_srv6.c | |
| parent | ca46b52436935e43eddc3554a249aec864e0f4d4 (diff) | |
| parent | f02dba19d20b0a53645a439924e736155c8de63f (diff) | |
Merge pull request #18178 from cscarpitta/fix/isis_request_srv6_locator
isisd: Request SRv6 locator after zebra connection
Diffstat (limited to 'isisd/isis_srv6.c')
| -rw-r--r-- | isisd/isis_srv6.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/isisd/isis_srv6.c b/isisd/isis_srv6.c index 4b97b5372e..f7a8733f76 100644 --- a/isisd/isis_srv6.c +++ b/isisd/isis_srv6.c @@ -658,6 +658,27 @@ int isis_srv6_ifp_up_notify(struct interface *ifp) } /** + * Request SRv6 locator info from the SID Manager for all IS-IS areas where SRv6 + * is enabled and a locator has been configured. + * This function is called as soon as the connection with Zebra is established + * to get information about all configured locators. + */ +void isis_srv6_locators_request(void) +{ + struct isis *isis = isis_lookup_by_vrfid(VRF_DEFAULT); + struct listnode *node; + struct isis_area *area; + + if (!isis) + return; + + for (ALL_LIST_ELEMENTS_RO(isis->area_list, node, area)) + if (area->srv6db.config.enabled && + area->srv6db.config.srv6_locator_name[0] != '\0' && !area->srv6db.srv6_locator) + isis_zebra_srv6_manager_get_locator(area->srv6db.config.srv6_locator_name); +} + +/** * IS-IS SRv6 initialization for given area. * * @param area IS-IS area |
