diff options
| author | bisdhdh <biswajit.sadhu@gmail.com> | 2019-10-24 12:10:37 +0530 |
|---|---|---|
| committer | bisdhdh <biswajit.sadhu@gmail.com> | 2020-01-23 09:34:25 +0530 |
| commit | 34aa744869baf48e04f94f63f8e44274409a51a1 (patch) | |
| tree | d9bd77ffccde42ebdcbb912907a411158c325d21 | |
| parent | 6102cb7fe4c86787ea80c62b99a7d891ebb21d29 (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.c | 7 |
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; } |
