@@ -4751,6 +4751,10 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl)
47514751 BGP_NOTIFY_CEASE_CONFIG_CHANGE );
47524752 else
47534753 bgp_session_reset (peer );
4754+
4755+ /* Reconfigure BFD peer with new TTL. */
4756+ if (peer -> bfd_config )
4757+ bgp_peer_bfd_update_source (peer );
47544758 }
47554759 } else {
47564760 group = peer -> group ;
@@ -4765,6 +4769,10 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl)
47654769 BGP_NOTIFY_CEASE_CONFIG_CHANGE );
47664770 else
47674771 bgp_session_reset (peer );
4772+
4773+ /* Reconfigure BFD peer with new TTL. */
4774+ if (peer -> bfd_config )
4775+ bgp_peer_bfd_update_source (peer );
47684776 }
47694777 }
47704778 return 0 ;
@@ -4798,6 +4806,10 @@ int peer_ebgp_multihop_unset(struct peer *peer)
47984806 BGP_NOTIFY_CEASE_CONFIG_CHANGE );
47994807 else
48004808 bgp_session_reset (peer );
4809+
4810+ /* Reconfigure BFD peer with new TTL. */
4811+ if (peer -> bfd_config )
4812+ bgp_peer_bfd_update_source (peer );
48014813 } else {
48024814 group = peer -> group ;
48034815 for (ALL_LIST_ELEMENTS (group -> peer , node , nnode , peer )) {
@@ -4814,6 +4826,10 @@ int peer_ebgp_multihop_unset(struct peer *peer)
48144826 else
48154827 bgp_session_reset (peer );
48164828 }
4829+
4830+ /* Reconfigure BFD peer with new TTL. */
4831+ if (peer -> bfd_config )
4832+ bgp_peer_bfd_update_source (peer );
48174833 }
48184834 }
48194835 return 0 ;
@@ -4859,6 +4875,10 @@ int peer_update_source_if_set(struct peer *peer, const char *ifname)
48594875 } else
48604876 bgp_session_reset (peer );
48614877
4878+ /* Apply new source configuration to BFD session. */
4879+ if (peer -> bfd_config )
4880+ bgp_peer_bfd_update_source (peer );
4881+
48624882 /* Skip peer-group mechanics for regular peers. */
48634883 return 0 ;
48644884 }
@@ -4892,6 +4912,10 @@ int peer_update_source_if_set(struct peer *peer, const char *ifname)
48924912 BGP_NOTIFY_CEASE_CONFIG_CHANGE );
48934913 } else
48944914 bgp_session_reset (member );
4915+
4916+ /* Apply new source configuration to BFD session. */
4917+ if (member -> bfd_config )
4918+ bgp_peer_bfd_update_source (member );
48954919 }
48964920
48974921 return 0 ;
@@ -4922,6 +4946,10 @@ int peer_update_source_addr_set(struct peer *peer, const union sockunion *su)
49224946 } else
49234947 bgp_session_reset (peer );
49244948
4949+ /* Apply new source configuration to BFD session. */
4950+ if (peer -> bfd_config )
4951+ bgp_peer_bfd_update_source (peer );
4952+
49254953 /* Skip peer-group mechanics for regular peers. */
49264954 return 0 ;
49274955 }
@@ -4954,6 +4982,10 @@ int peer_update_source_addr_set(struct peer *peer, const union sockunion *su)
49544982 BGP_NOTIFY_CEASE_CONFIG_CHANGE );
49554983 } else
49564984 bgp_session_reset (member );
4985+
4986+ /* Apply new source configuration to BFD session. */
4987+ if (member -> bfd_config )
4988+ bgp_peer_bfd_update_source (member );
49574989 }
49584990
49594991 return 0 ;
@@ -4991,6 +5023,10 @@ int peer_update_source_unset(struct peer *peer)
49915023 } else
49925024 bgp_session_reset (peer );
49935025
5026+ /* Apply new source configuration to BFD session. */
5027+ if (peer -> bfd_config )
5028+ bgp_peer_bfd_update_source (peer );
5029+
49945030 /* Skip peer-group mechanics for regular peers. */
49955031 return 0 ;
49965032 }
@@ -5022,6 +5058,10 @@ int peer_update_source_unset(struct peer *peer)
50225058 BGP_NOTIFY_CEASE_CONFIG_CHANGE );
50235059 } else
50245060 bgp_session_reset (member );
5061+
5062+ /* Apply new source configuration to BFD session. */
5063+ if (member -> bfd_config )
5064+ bgp_peer_bfd_update_source (member );
50255065 }
50265066
50275067 return 0 ;
0 commit comments