summaryrefslogtreecommitdiff
path: root/isisd/isis_srv6.c
diff options
context:
space:
mode:
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>2023-06-03 13:39:15 +0200
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>2023-09-11 22:11:48 +0200
commit455aded931005980b5db55ecbc1371a6c5efd813 (patch)
tree62f99d166fdb8d929c0209360d1faebe2e78a8db /isisd/isis_srv6.c
parentee57c710b1067f4f25f51381143dc003b81c1f3d (diff)
isisd: Extend `sid_exist` to consider adj SIDs
The function `sid_exist` verifies if a given SRv6 SID has already been allocated for a given IS-IS area. This commit extends `sid_exist` to also consider adjacency SIDs when checking for the existence of the SID. Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
Diffstat (limited to 'isisd/isis_srv6.c')
-rw-r--r--isisd/isis_srv6.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/isisd/isis_srv6.c b/isisd/isis_srv6.c
index d1983693d8..5c04f53f56 100644
--- a/isisd/isis_srv6.c
+++ b/isisd/isis_srv6.c
@@ -180,10 +180,14 @@ static bool sid_exist(struct isis_area *area, const struct in6_addr *sid)
{
struct listnode *node;
struct isis_srv6_sid *s;
+ struct srv6_adjacency *sra;
for (ALL_LIST_ELEMENTS_RO(area->srv6db.srv6_sids, node, s))
if (sid_same(&s->sid, sid))
return true;
+ for (ALL_LIST_ELEMENTS_RO(area->srv6db.srv6_endx_sids, node, sra))
+ if (sid_same(&sra->sid, sid))
+ return true;
return false;
}