mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 07:15:19 +00:00
bgpd: Force BGP updates when triggering reset out
When adding/removing some peer's flag we need to make sure we FORCE updates to avoid suppressing critical updates. Like entering `no neighbor x.x.x.x send-community large` would suppress updates by default and another side will have stale large communities. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
This commit is contained in:
parent
9932aa1200
commit
8b56739eb4
@ -3990,6 +3990,8 @@ bool peer_active_nego(struct peer *peer)
|
|||||||
void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
|
void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
enum peer_change_type type)
|
enum peer_change_type type)
|
||||||
{
|
{
|
||||||
|
struct peer_af *paf;
|
||||||
|
|
||||||
if (CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP))
|
if (CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -4022,7 +4024,12 @@ void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
|
|||||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
||||||
}
|
}
|
||||||
} else if (type == peer_change_reset_out) {
|
} else if (type == peer_change_reset_out) {
|
||||||
update_group_adjust_peer(peer_af_find(peer, afi, safi));
|
paf = peer_af_find(peer, afi, safi);
|
||||||
|
if (paf && paf->subgroup)
|
||||||
|
SET_FLAG(paf->subgroup->sflags,
|
||||||
|
SUBGRP_STATUS_FORCE_UPDATES);
|
||||||
|
|
||||||
|
update_group_adjust_peer(paf);
|
||||||
bgp_announce_route(peer, afi, safi);
|
bgp_announce_route(peer, afi, safi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user