diff options
| -rw-r--r-- | bgpd/bgpd.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index c5a5e49a48..bc731ff2b8 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -4752,6 +4752,10 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl) BGP_NOTIFY_CEASE_CONFIG_CHANGE); else bgp_session_reset(peer); + + /* Reconfigure BFD peer with new TTL. */ + if (peer->bfd_config) + bgp_peer_bfd_update_source(peer); } } else { group = peer->group; @@ -4766,6 +4770,10 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl) BGP_NOTIFY_CEASE_CONFIG_CHANGE); else bgp_session_reset(peer); + + /* Reconfigure BFD peer with new TTL. */ + if (peer->bfd_config) + bgp_peer_bfd_update_source(peer); } } return 0; @@ -4799,6 +4807,10 @@ int peer_ebgp_multihop_unset(struct peer *peer) BGP_NOTIFY_CEASE_CONFIG_CHANGE); else bgp_session_reset(peer); + + /* Reconfigure BFD peer with new TTL. */ + if (peer->bfd_config) + bgp_peer_bfd_update_source(peer); } else { group = peer->group; for (ALL_LIST_ELEMENTS(group->peer, node, nnode, peer)) { @@ -4815,6 +4827,10 @@ int peer_ebgp_multihop_unset(struct peer *peer) else bgp_session_reset(peer); } + + /* Reconfigure BFD peer with new TTL. */ + if (peer->bfd_config) + bgp_peer_bfd_update_source(peer); } } return 0; |
