]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Extend `sid_exist` to consider adj SIDs
authorCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Sat, 3 Jun 2023 11:39:15 +0000 (13:39 +0200)
committerCarmine Scarpitta <carmine.scarpitta@uniroma2.it>
Mon, 11 Sep 2023 20:11:48 +0000 (22:11 +0200)
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>
isisd/isis_srv6.c

index d1983693d80f4c9dc21a0fa1cab365785cc6e572..5c04f53f56f1ae5abe5bddb2b31be39177f07bb1 100644 (file)
@@ -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;
 }