]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Flush per AFI/SAFI capabilities flags, stale_time for LLGR cap 14475/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 22 Sep 2023 17:37:56 +0000 (20:37 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 22 Sep 2023 17:50:07 +0000 (20:50 +0300)
Clear to defaults if receiving dynamic capability with UNSET action.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_packet.c

index 1c2f8eb2da2f427d13d1e9c9a75c8f23d4d05a09..abbc298e47a0a6ffbfaf3bfed203558db79b43ae 100644 (file)
@@ -2878,6 +2878,8 @@ static void bgp_dynamic_capability_llgr(uint8_t *pnt, int action,
        uint8_t *data = pnt + 3;
        uint8_t *end = data + hdr->length;
        size_t len = end - data;
+       afi_t afi;
+       safi_t safi;
 
        if (action == CAPABILITY_ACTION_SET) {
                if (len < BGP_CAP_LLGR_MIN_PACKET_LEN) {
@@ -2944,6 +2946,15 @@ static void bgp_dynamic_capability_llgr(uint8_t *pnt, int action,
                        data += BGP_CAP_LLGR_MIN_PACKET_LEN;
                }
        } else {
+               FOREACH_AFI_SAFI (afi, safi) {
+                       UNSET_FLAG(peer->af_cap[afi][safi],
+                                  PEER_CAP_LLGR_AF_RCV);
+
+                       peer->llgr[afi][safi].flags = 0;
+                       peer->llgr[afi][safi].stale_time =
+                               BGP_DEFAULT_LLGR_STALE_TIME;
+               }
+
                UNSET_FLAG(peer->cap, PEER_CAP_LLGR_RCV);
        }
 }