summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2025-01-28 10:40:50 -0500
committerGitHub <noreply@github.com>2025-01-28 10:40:50 -0500
commitcec2e9b1594f170ceb3bce159a21b87c9b6fb2f7 (patch)
tree1562280d99e6616f67ee67a538bf986cc7f44af2 /bgpd
parentf3b6651954676ebfd832228d3b1b9efd9c6de6b9 (diff)
parent9a5be111916cecf6b4c9c680c52634271c4bf9cc (diff)
Merge pull request #17881 from opensourcerouting/fix/last_reset_reason
bgpd: last reset SNAFU
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_fsm.c3
-rw-r--r--bgpd/bgpd.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index 0e3ed9f0d1..1a30cb37f4 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -2163,6 +2163,9 @@ bgp_establish(struct peer_connection *connection)
peer->established++;
bgp_fsm_change_status(connection, Established);
+ if (peer->last_reset == PEER_DOWN_WAITING_OPEN)
+ peer->last_reset = 0;
+
/* bgp log-neighbor-changes of neighbor Up */
if (CHECK_FLAG(peer->bgp->flags, BGP_FLAG_LOG_NEIGHBOR_CHANGES)) {
struct vrf *vrf = vrf_lookup_by_id(peer->bgp->vrf_id);
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 6de403b30c..edf90d3dd8 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -2026,8 +2026,11 @@ struct peer *peer_create(union sockunion *su, const char *conf_if,
if (bgp->autoshutdown)
peer_flag_set(peer, PEER_FLAG_SHUTDOWN);
/* Set up peer's events and timers. */
- else if (!active && peer_active(peer->connection))
+ else if (!active && peer_active(peer->connection)) {
+ if (peer->last_reset == PEER_DOWN_NOAFI_ACTIVATED)
+ peer->last_reset = 0;
bgp_timer_set(peer->connection);
+ }
bgp_peer_gr_flags_update(peer);
BGP_GR_ROUTER_DETECT_AND_SEND_CAPABILITY_TO_ZEBRA(bgp, bgp->peer);