mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 02:06:12 +00:00
bgpd: Add peer_notify_config_change()
function
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>
This commit is contained in:
parent
2e5b4e32c4
commit
ba0edb9545
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
131
bgpd/bgpd.c
131
bgpd/bgpd.c
@ -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);
|
||||
|
||||
|
@ -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 *);
|
||||
|
Loading…
Reference in New Issue
Block a user