diff options
-rw-r--r-- | bgpd/bgp_bfd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/bgpd/bgp_bfd.c b/bgpd/bgp_bfd.c index 663bc4894..965ba868c 100644 --- a/bgpd/bgp_bfd.c +++ b/bgpd/bgp_bfd.c @@ -280,6 +280,11 @@ static void bgp_bfd_peer_status_update(struct peer *peer, int status) peer->last_reset = PEER_DOWN_BFD_DOWN; BGP_EVENT_ADD(peer, BGP_Stop); } + if ((status == BFD_STATUS_UP) && (old_status == BFD_STATUS_DOWN) + && peer->status != Established) { + if (!BGP_PEER_START_SUPPRESSED(peer)) + BGP_EVENT_ADD(peer, BGP_Start); + } } /* |