]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: BGP-GR peer router restart-time should be reset.
authorbisdhdh <biswajit.sadhu@gmail.com>
Thu, 24 Oct 2019 06:40:37 +0000 (12:10 +0530)
committerbisdhdh <biswajit.sadhu@gmail.com>
Thu, 23 Jan 2020 04:04:25 +0000 (09:34 +0530)
When the peer router's gr mode had changed from helper/restart
to disable. The local bgp gr router should reset the peer
router's restart-time stored.

Signed-off-by: Biswajit Sadhu <sadhub@vmware.com>
bgpd/bgp_open.c

index 82a17671e90838783412be3bbf0ca55b89642554..57df4d09675188456839561ad2ea092a5c20ee39 100644 (file)
@@ -830,6 +830,7 @@ static int bgp_capability_parse(struct peer *peer, size_t length,
        int ret;
        struct stream *s = BGP_INPUT(peer);
        size_t end = stream_get_getp(s) + length;
+       uint16_t restart_flag_time = 0;
 
        assert(STREAM_READABLE(s) >= length);
 
@@ -1006,6 +1007,12 @@ static int bgp_capability_parse(struct peer *peer, size_t length,
                                        caphdr.length);
                        stream_set_getp(s, start + caphdr.length);
                }
+
+               if (!CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
+                       UNSET_FLAG(restart_flag_time, 0xF000);
+                       peer->v_gr_restart = restart_flag_time;
+               }
+
        }
        return 0;
 }