]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Add `peer_notify_config_change()` function
authorDonald Sharp <sharpd@nvidia.com>
Wed, 6 Nov 2024 13:15:06 +0000 (08:15 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Tue, 26 Nov 2024 16:58:23 +0000 (11:58 -0500)
We have about a bajillion tests of if we can
notify the peer and then we send a config change
notification.  Let's just make a function that
does this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_fsm.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h

index 490451f193db2cdb080eac8ddeaaff7eea1d31fa..2cdbadc63c58e3a19623384c16629bf4ef935b5e 100644 (file)
@@ -2746,8 +2746,7 @@ static void bgp_gr_update_mode_of_all_peers(struct bgp *bgp,
                        peer->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
 
                        if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                               bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(peer->connection);
                        else
                                bgp_session_reset_safe(peer, &nnode);
                } else {
@@ -2769,8 +2768,7 @@ static void bgp_gr_update_mode_of_all_peers(struct bgp *bgp,
                                member->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
 
                                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(member->connection);
                                else
                                        bgp_session_reset(member);
                        }
@@ -2974,8 +2972,7 @@ unsigned int bgp_peer_gr_action(struct peer *peer, enum peer_mode old_state,
                        peer->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
 
                        if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                               bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(peer->connection);
                        else
                                bgp_session_reset(peer);
                } else {
@@ -2985,8 +2982,7 @@ unsigned int bgp_peer_gr_action(struct peer *peer, enum peer_mode old_state,
                                bgp_peer_move_to_gr_mode(member, new_state);
 
                                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(member->connection);
                                else
                                        bgp_session_reset(member);
                        }
index d1f20b3bbacb7144cc3d433925ae686547907eea..651ec71b1a90ef622aa0c401a2afc71759fedb08 100644 (file)
@@ -2940,9 +2940,7 @@ DEFUN(bgp_reject_as_sets, bgp_reject_as_sets_cmd,
         */
        for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
                peer->last_reset = PEER_DOWN_AS_SETS_REJECT;
-               if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        }
 
        return CMD_SUCCESS;
@@ -2965,9 +2963,7 @@ DEFUN(no_bgp_reject_as_sets, no_bgp_reject_as_sets_cmd,
         */
        for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
                peer->last_reset = PEER_DOWN_AS_SETS_REJECT;
-               if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        }
 
        return CMD_SUCCESS;
@@ -5101,8 +5097,7 @@ static int peer_conf_interface_get(struct vty *vty, const char *conf_if,
 
                /* v6only flag changed. Reset bgp seesion */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
        }
index 947251e014924052a541dcfbe89a0e3e93de7201..5940b20de8c8ba1141fbd6c3cad85b743487ad78 100644 (file)
@@ -309,9 +309,7 @@ static int bgp_router_id_set(struct bgp *bgp, const struct in_addr *id,
 
                peer->last_reset = PEER_DOWN_RID_CHANGE;
 
-               if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        }
 
        /* EVPN uses router id in RD, update them */
@@ -447,8 +445,7 @@ void bm_wait_for_fib_set(bool set)
                                    peer->connection->status))
                                continue;
 
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                }
        }
 }
@@ -507,8 +504,7 @@ void bgp_suppress_fib_pending_set(struct bgp *bgp, bool set)
                if (!BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
                        continue;
 
-               bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        }
 }
 
@@ -532,9 +528,7 @@ void bgp_cluster_id_set(struct bgp *bgp, struct in_addr *cluster_id)
 
                peer->last_reset = PEER_DOWN_CLID_CHANGE;
 
-               if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        }
 }
 
@@ -556,9 +550,7 @@ void bgp_cluster_id_unset(struct bgp *bgp)
 
                peer->last_reset = PEER_DOWN_CLID_CHANGE;
 
-               if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        }
 }
 
@@ -641,9 +633,7 @@ void bgp_confederation_id_set(struct bgp *bgp, as_t as, const char *as_str)
                                            peer->connection->status)) {
                                        peer->last_reset =
                                                PEER_DOWN_CONFED_ID_CHANGE;
-                                       bgp_notify_send(peer->connection,
-                                                       BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(peer->connection);
                                } else
                                        bgp_session_reset_safe(peer, &nnode);
                        }
@@ -659,9 +649,7 @@ void bgp_confederation_id_set(struct bgp *bgp, as_t as, const char *as_str)
                                            peer->connection->status)) {
                                        peer->last_reset =
                                                PEER_DOWN_CONFED_ID_CHANGE;
-                                       bgp_notify_send(peer->connection,
-                                                       BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(peer->connection);
                                } else
                                        bgp_session_reset_safe(peer, &nnode);
                        }
@@ -686,9 +674,7 @@ void bgp_confederation_id_unset(struct bgp *bgp)
                        peer->last_reset = PEER_DOWN_CONFED_ID_CHANGE;
                        if (BGP_IS_VALID_STATE_FOR_NOTIF(
                                    peer->connection->status))
-                               bgp_notify_send(peer->connection,
-                                               BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(peer->connection);
                        else
                                bgp_session_reset_safe(peer, &nnode);
                }
@@ -740,9 +726,7 @@ void bgp_confederation_peers_add(struct bgp *bgp, as_t as, const char *as_str)
                                            peer->connection->status)) {
                                        peer->last_reset =
                                                PEER_DOWN_CONFED_PEER_CHANGE;
-                                       bgp_notify_send(peer->connection,
-                                                       BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(peer->connection);
                                } else
                                        bgp_session_reset_safe(peer, &nnode);
                        }
@@ -797,9 +781,7 @@ void bgp_confederation_peers_remove(struct bgp *bgp, as_t as)
                                            peer->connection->status)) {
                                        peer->last_reset =
                                                PEER_DOWN_CONFED_PEER_CHANGE;
-                                       bgp_notify_send(peer->connection,
-                                                       BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(peer->connection);
                                } else
                                        bgp_session_reset_safe(peer, &nnode);
                        }
@@ -2100,8 +2082,7 @@ void peer_as_change(struct peer *peer, as_t as, enum peer_asn_type as_type,
        if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
                peer->last_reset = PEER_DOWN_REMOTE_AS_CHANGE;
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
        }
@@ -2467,15 +2448,11 @@ static int peer_activate_af(struct peer *peer, afi_t afi, safi_t safi)
                                                           false);
                                }
                        } else {
-                               bgp_notify_send(peer->connection,
-                                               BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(peer->connection);
                        }
                }
-               if (peer->connection->status == OpenSent ||
-                   peer->connection->status == OpenConfirm)
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
+
                /*
                 * If we are turning on a AFI/SAFI locally and we've
                 * started bringing a peer up, we need to tell
@@ -2488,8 +2465,7 @@ static int peer_activate_af(struct peer *peer, afi_t afi, safi_t safi)
                other = peer->doppelganger;
                if (other && (other->connection->status == OpenSent ||
                              other->connection->status == OpenConfirm))
-                       bgp_notify_send(other->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(other->connection);
        }
 
        return 0;
@@ -2596,14 +2572,10 @@ static bool non_peergroup_deactivate_af(struct peer *peer, afi_t afi,
                                bgp_clear_route(peer, afi, safi);
                                peer->pcount[afi][safi] = 0;
                        } else {
-                               bgp_notify_send(peer->connection,
-                                               BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(peer->connection);
                        }
-               } else {
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
-               }
+               } else
+                       peer_notify_config_change(peer->connection);
        }
 
        return false;
@@ -3076,6 +3048,12 @@ int peer_group_remote_as(struct bgp *bgp, const char *group_name, as_t *as,
        return 0;
 }
 
+void peer_notify_config_change(struct peer_connection *connection)
+{
+       if (BGP_IS_VALID_STATE_FOR_NOTIF(connection->status))
+               bgp_notify_send(connection, BGP_NOTIFY_CEASE, BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+}
+
 void peer_notify_unconfig(struct peer_connection *connection)
 {
        if (BGP_IS_VALID_STATE_FOR_NOTIF(connection->status))
@@ -3356,8 +3334,7 @@ int peer_group_bind(struct bgp *bgp, union sockunion *su, struct peer *peer,
                peer->last_reset = PEER_DOWN_RMAP_BIND;
 
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
        }
@@ -4725,8 +4702,7 @@ void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
                                 PEER_FLAG_CONFIG_NODE)))
                        peer_delete(peer->doppelganger);
 
-               bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        } else if (type == peer_change_reset_in) {
                if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
                        bgp_route_refresh_send(peer, afi, safi, 0, 0, 0,
@@ -4738,8 +4714,7 @@ void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
                                         PEER_FLAG_CONFIG_NODE)))
                                peer_delete(peer->doppelganger);
 
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                }
        } else if (type == peer_change_reset_out) {
                paf = peer_af_find(peer, afi, safi);
@@ -4939,8 +4914,7 @@ static void peer_flag_modify_action(struct peer *peer, uint64_t flag)
                        BGP_EVENT_ADD(peer->connection, BGP_Stop);
                }
        } else if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status)) {
-               bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+               peer_notify_config_change(peer->connection);
        } else
                bgp_session_reset(peer);
 }
@@ -5427,9 +5401,7 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl)
                if (peer->sort != BGP_PEER_IBGP) {
                        if (BGP_IS_VALID_STATE_FOR_NOTIF(
                                    peer->connection->status))
-                               bgp_notify_send(peer->connection,
-                                               BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(peer->connection);
                        else
                                bgp_session_reset(peer);
 
@@ -5446,8 +5418,7 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl)
                        member->ttl = group->conf->ttl;
 
                        if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                               bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                               BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                               peer_notify_config_change(member->connection);
                        else
                                bgp_session_reset(member);
 
@@ -5484,8 +5455,7 @@ int peer_ebgp_multihop_unset(struct peer *peer)
 
        if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
 
@@ -5502,8 +5472,7 @@ int peer_ebgp_multihop_unset(struct peer *peer)
 
                        if (member->connection->fd >= 0) {
                                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                                       peer_notify_config_change(member->connection);
                                else
                                        bgp_session_reset(member);
                        }
@@ -5657,8 +5626,7 @@ int peer_update_source_if_set(struct peer *peer, const char *ifname)
                peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
 
@@ -5695,8 +5663,7 @@ int peer_update_source_if_set(struct peer *peer, const char *ifname)
 
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(member->connection);
                else
                        bgp_session_reset(member);
 
@@ -5728,8 +5695,7 @@ void peer_update_source_addr_set(struct peer *peer, const union sockunion *su)
                peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
 
@@ -5765,8 +5731,7 @@ void peer_update_source_addr_set(struct peer *peer, const union sockunion *su)
 
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(member);
 
@@ -5816,8 +5781,7 @@ void peer_update_source_unset(struct peer *peer)
                peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
 
@@ -5852,8 +5816,7 @@ void peer_update_source_unset(struct peer *peer)
 
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(member->connection);
                else
                        bgp_session_reset(member);
 
@@ -6885,8 +6848,7 @@ int peer_local_as_unset(struct peer *peer)
                peer->last_reset = PEER_DOWN_LOCAL_AS_CHANGE;
                /* Send notification or stop peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        BGP_EVENT_ADD(peer->connection, BGP_Stop);
 
@@ -6914,8 +6876,7 @@ int peer_local_as_unset(struct peer *peer)
 
                /* Send notification or stop peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(member->connection);
                else
                        bgp_session_reset(member);
        }
@@ -6946,8 +6907,7 @@ int peer_password_set(struct peer *peer, const char *password)
                peer->last_reset = PEER_DOWN_PASSWORD_CHANGE;
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
 
@@ -6984,8 +6944,7 @@ int peer_password_set(struct peer *peer, const char *password)
                member->last_reset = PEER_DOWN_PASSWORD_CHANGE;
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(member->connection);
                else
                        bgp_session_reset(member);
 
@@ -7030,8 +6989,7 @@ int peer_password_unset(struct peer *peer)
        if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
-                       bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(peer->connection);
                else
                        bgp_session_reset(peer);
 
@@ -7057,8 +7015,7 @@ int peer_password_unset(struct peer *peer)
 
                /* Send notification or reset peer depending on state. */
                if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
-                       bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
-                                       BGP_NOTIFY_CEASE_CONFIG_CHANGE);
+                       peer_notify_config_change(member->connection);
                else
                        bgp_session_reset(member);
 
index e5252b78b4f5ae67fdef6d38ea57af53be9c660d..5af2d387ae53302a3443a8a25d8088c8a44cb9d3 100644 (file)
@@ -2386,6 +2386,7 @@ extern int peer_group_remote_as(struct bgp *bgp, const char *peer_str, as_t *as,
                                enum peer_asn_type as_type, const char *as_str);
 extern int peer_delete(struct peer *peer);
 extern void peer_notify_unconfig(struct peer_connection *connection);
+extern void peer_notify_config_change(struct peer_connection *connection);
 extern int peer_group_delete(struct peer_group *);
 extern int peer_group_remote_as_delete(struct peer_group *);
 extern int peer_group_listen_range_add(struct peer_group *, struct prefix *);