isisd: Add API to get SRv6 locator info

Add an API to request information from the SRv6 SID Manager (zebra)
regarding a specific SRv6 locator.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
This commit is contained in:
Carmine Scarpitta 2024-03-23 19:40:13 +01:00
parent 7834c38ab3
commit 73bfc5865f
2 changed files with 20 additions and 0 deletions

View File

@ -1368,6 +1368,24 @@ int isis_zebra_srv6_manager_release_locator_chunk(const char *name)
return srv6_manager_release_locator_chunk(zclient, name); return srv6_manager_release_locator_chunk(zclient, name);
} }
/**
* Ask the SRv6 Manager (zebra) about a specific locator
*
* @param name Locator name
* @return 0 on success, -1 otherwise
*/
int isis_zebra_srv6_manager_get_locator(const char *name)
{
if (!name)
return -1;
/*
* Send the Get Locator request to the SRv6 Manager and return the
* result
*/
return srv6_manager_get_locator(zclient, name);
}
static zclient_handler *const isis_handlers[] = { static zclient_handler *const isis_handlers[] = {
[ZEBRA_ROUTER_ID_UPDATE] = isis_router_id_update_zebra, [ZEBRA_ROUTER_ID_UPDATE] = isis_router_id_update_zebra,
[ZEBRA_INTERFACE_ADDRESS_ADD] = isis_zebra_if_address_add, [ZEBRA_INTERFACE_ADDRESS_ADD] = isis_zebra_if_address_add,

View File

@ -68,4 +68,6 @@ void isis_zebra_srv6_adj_sid_uninstall(struct srv6_adjacency *sra);
extern int isis_zebra_srv6_manager_get_locator_chunk(const char *name); extern int isis_zebra_srv6_manager_get_locator_chunk(const char *name);
extern int isis_zebra_srv6_manager_release_locator_chunk(const char *name); extern int isis_zebra_srv6_manager_release_locator_chunk(const char *name);
extern int isis_zebra_srv6_manager_get_locator(const char *name);
#endif /* _ZEBRA_ISIS_ZEBRA_H */ #endif /* _ZEBRA_ISIS_ZEBRA_H */