summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbisdhdh <biswajit.sadhu@gmail.com>2019-10-24 12:10:37 +0530
committerbisdhdh <biswajit.sadhu@gmail.com>2020-01-23 09:34:25 +0530
commit34aa744869baf48e04f94f63f8e44274409a51a1 (patch)
treed9bd77ffccde42ebdcbb912907a411158c325d21
parent6102cb7fe4c86787ea80c62b99a7d891ebb21d29 (diff)
bgpd: BGP-GR peer router restart-time should be reset.
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>
-rw-r--r--bgpd/bgp_open.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c
index 82a17671e9..57df4d0967 100644
--- a/bgpd/bgp_open.c
+++ b/bgpd/bgp_open.c
@@ -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;
}