summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgpd.c16
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;