mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 12:49:18 +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;
|
peer->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset_safe(peer, &nnode);
|
bgp_session_reset_safe(peer, &nnode);
|
||||||
} else {
|
} else {
|
||||||
@ -2769,8 +2768,7 @@ static void bgp_gr_update_mode_of_all_peers(struct bgp *bgp,
|
|||||||
member->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
|
member->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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;
|
peer->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
bgp_session_reset(peer);
|
||||||
} else {
|
} 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);
|
bgp_peer_move_to_gr_mode(member, new_state);
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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)) {
|
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
|
||||||
peer->last_reset = PEER_DOWN_AS_SETS_REJECT;
|
peer->last_reset = PEER_DOWN_AS_SETS_REJECT;
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
peer_notify_config_change(peer->connection);
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
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)) {
|
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
|
||||||
peer->last_reset = PEER_DOWN_AS_SETS_REJECT;
|
peer->last_reset = PEER_DOWN_AS_SETS_REJECT;
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
peer_notify_config_change(peer->connection);
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
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 */
|
/* v6only flag changed. Reset bgp seesion */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
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;
|
peer->last_reset = PEER_DOWN_RID_CHANGE;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
peer_notify_config_change(peer->connection);
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EVPN uses router id in RD, update them */
|
/* EVPN uses router id in RD, update them */
|
||||||
@ -447,8 +445,7 @@ void bm_wait_for_fib_set(bool set)
|
|||||||
peer->connection->status))
|
peer->connection->status))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -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))
|
if (!BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -532,9 +528,7 @@ void bgp_cluster_id_set(struct bgp *bgp, struct in_addr *cluster_id)
|
|||||||
|
|
||||||
peer->last_reset = PEER_DOWN_CLID_CHANGE;
|
peer->last_reset = PEER_DOWN_CLID_CHANGE;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
peer_notify_config_change(peer->connection);
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,9 +550,7 @@ void bgp_cluster_id_unset(struct bgp *bgp)
|
|||||||
|
|
||||||
peer->last_reset = PEER_DOWN_CLID_CHANGE;
|
peer->last_reset = PEER_DOWN_CLID_CHANGE;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
peer_notify_config_change(peer->connection);
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -641,9 +633,7 @@ void bgp_confederation_id_set(struct bgp *bgp, as_t as, const char *as_str)
|
|||||||
peer->connection->status)) {
|
peer->connection->status)) {
|
||||||
peer->last_reset =
|
peer->last_reset =
|
||||||
PEER_DOWN_CONFED_ID_CHANGE;
|
PEER_DOWN_CONFED_ID_CHANGE;
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
} else
|
} else
|
||||||
bgp_session_reset_safe(peer, &nnode);
|
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->connection->status)) {
|
||||||
peer->last_reset =
|
peer->last_reset =
|
||||||
PEER_DOWN_CONFED_ID_CHANGE;
|
PEER_DOWN_CONFED_ID_CHANGE;
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
} else
|
} else
|
||||||
bgp_session_reset_safe(peer, &nnode);
|
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;
|
peer->last_reset = PEER_DOWN_CONFED_ID_CHANGE;
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(
|
||||||
peer->connection->status))
|
peer->connection->status))
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset_safe(peer, &nnode);
|
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->connection->status)) {
|
||||||
peer->last_reset =
|
peer->last_reset =
|
||||||
PEER_DOWN_CONFED_PEER_CHANGE;
|
PEER_DOWN_CONFED_PEER_CHANGE;
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
} else
|
} else
|
||||||
bgp_session_reset_safe(peer, &nnode);
|
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->connection->status)) {
|
||||||
peer->last_reset =
|
peer->last_reset =
|
||||||
PEER_DOWN_CONFED_PEER_CHANGE;
|
PEER_DOWN_CONFED_PEER_CHANGE;
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
} else
|
} else
|
||||||
bgp_session_reset_safe(peer, &nnode);
|
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)) {
|
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
|
||||||
peer->last_reset = PEER_DOWN_REMOTE_AS_CHANGE;
|
peer->last_reset = PEER_DOWN_REMOTE_AS_CHANGE;
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
bgp_session_reset(peer);
|
||||||
}
|
}
|
||||||
@ -2467,15 +2448,11 @@ static int peer_activate_af(struct peer *peer, afi_t afi, safi_t safi)
|
|||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (peer->connection->status == OpenSent ||
|
peer_notify_config_change(peer->connection);
|
||||||
peer->connection->status == OpenConfirm)
|
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
/*
|
/*
|
||||||
* If we are turning on a AFI/SAFI locally and we've
|
* If we are turning on a AFI/SAFI locally and we've
|
||||||
* started bringing a peer up, we need to tell
|
* 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;
|
other = peer->doppelganger;
|
||||||
if (other && (other->connection->status == OpenSent ||
|
if (other && (other->connection->status == OpenSent ||
|
||||||
other->connection->status == OpenConfirm))
|
other->connection->status == OpenConfirm))
|
||||||
bgp_notify_send(other->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(other->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -2596,14 +2572,10 @@ static bool non_peergroup_deactivate_af(struct peer *peer, afi_t afi,
|
|||||||
bgp_clear_route(peer, afi, safi);
|
bgp_clear_route(peer, afi, safi);
|
||||||
peer->pcount[afi][safi] = 0;
|
peer->pcount[afi][safi] = 0;
|
||||||
} else {
|
} else {
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
peer_notify_config_change(peer->connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -3076,6 +3048,12 @@ int peer_group_remote_as(struct bgp *bgp, const char *group_name, as_t *as,
|
|||||||
return 0;
|
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)
|
void peer_notify_unconfig(struct peer_connection *connection)
|
||||||
{
|
{
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(connection->status))
|
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;
|
peer->last_reset = PEER_DOWN_RMAP_BIND;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
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_FLAG_CONFIG_NODE)))
|
||||||
peer_delete(peer->doppelganger);
|
peer_delete(peer->doppelganger);
|
||||||
|
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
} else if (type == peer_change_reset_in) {
|
} else if (type == peer_change_reset_in) {
|
||||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
|
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
|
||||||
bgp_route_refresh_send(peer, afi, safi, 0, 0, 0,
|
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_FLAG_CONFIG_NODE)))
|
||||||
peer_delete(peer->doppelganger);
|
peer_delete(peer->doppelganger);
|
||||||
|
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
}
|
}
|
||||||
} else if (type == peer_change_reset_out) {
|
} else if (type == peer_change_reset_out) {
|
||||||
paf = peer_af_find(peer, afi, safi);
|
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);
|
BGP_EVENT_ADD(peer->connection, BGP_Stop);
|
||||||
}
|
}
|
||||||
} else if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status)) {
|
} else if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status)) {
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
} else
|
} else
|
||||||
bgp_session_reset(peer);
|
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 (peer->sort != BGP_PEER_IBGP) {
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(
|
||||||
peer->connection->status))
|
peer->connection->status))
|
||||||
bgp_notify_send(peer->connection,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE,
|
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
bgp_session_reset(peer);
|
||||||
|
|
||||||
@ -5446,8 +5418,7 @@ int peer_ebgp_multihop_set(struct peer *peer, int ttl)
|
|||||||
member->ttl = group->conf->ttl;
|
member->ttl = group->conf->ttl;
|
||||||
|
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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 (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
bgp_session_reset(peer);
|
||||||
|
|
||||||
@ -5502,8 +5472,7 @@ int peer_ebgp_multihop_unset(struct peer *peer)
|
|||||||
|
|
||||||
if (member->connection->fd >= 0) {
|
if (member->connection->fd >= 0) {
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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;
|
peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
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. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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;
|
peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
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. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
bgp_session_reset(member);
|
||||||
|
|
||||||
@ -5816,8 +5781,7 @@ void peer_update_source_unset(struct peer *peer)
|
|||||||
peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
|
peer->last_reset = PEER_DOWN_UPDATE_SOURCE_CHANGE;
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
bgp_session_reset(peer);
|
||||||
|
|
||||||
@ -5852,8 +5816,7 @@ void peer_update_source_unset(struct peer *peer)
|
|||||||
|
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
bgp_session_reset(member);
|
||||||
|
|
||||||
@ -6885,8 +6848,7 @@ int peer_local_as_unset(struct peer *peer)
|
|||||||
peer->last_reset = PEER_DOWN_LOCAL_AS_CHANGE;
|
peer->last_reset = PEER_DOWN_LOCAL_AS_CHANGE;
|
||||||
/* Send notification or stop peer depending on state. */
|
/* Send notification or stop peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
BGP_EVENT_ADD(peer->connection, BGP_Stop);
|
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. */
|
/* Send notification or stop peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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;
|
peer->last_reset = PEER_DOWN_PASSWORD_CHANGE;
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
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;
|
member->last_reset = PEER_DOWN_PASSWORD_CHANGE;
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
bgp_session_reset(member);
|
||||||
|
|
||||||
@ -7030,8 +6989,7 @@ int peer_password_unset(struct peer *peer)
|
|||||||
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
|
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(peer->connection->status))
|
||||||
bgp_notify_send(peer->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(peer->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(peer);
|
bgp_session_reset(peer);
|
||||||
|
|
||||||
@ -7057,8 +7015,7 @@ int peer_password_unset(struct peer *peer)
|
|||||||
|
|
||||||
/* Send notification or reset peer depending on state. */
|
/* Send notification or reset peer depending on state. */
|
||||||
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
if (BGP_IS_VALID_STATE_FOR_NOTIF(member->connection->status))
|
||||||
bgp_notify_send(member->connection, BGP_NOTIFY_CEASE,
|
peer_notify_config_change(member->connection);
|
||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
|
||||||
else
|
else
|
||||||
bgp_session_reset(member);
|
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);
|
enum peer_asn_type as_type, const char *as_str);
|
||||||
extern int peer_delete(struct peer *peer);
|
extern int peer_delete(struct peer *peer);
|
||||||
extern void peer_notify_unconfig(struct peer_connection *connection);
|
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_delete(struct peer_group *);
|
||||||
extern int peer_group_remote_as_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 *);
|
extern int peer_group_listen_range_add(struct peer_group *, struct prefix *);
|
||||||
|
Loading…
Reference in New Issue
Block a user