diff options
Diffstat (limited to 'bgpd')
| -rw-r--r-- | bgpd/bgp_fsm.c | 3 | ||||
| -rw-r--r-- | bgpd/bgpd.c | 5 | 
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);  | 
