Commit eee82ce591 for frr
commit eee82ce591fade0d083477bb1ef39770668c3ae1
Author: Enke Chen <enchen@paloaltonetworks.com>
Date: Tue Nov 3 12:37:16 2026 -0800
bgpd: fix "clear bgp soft out" to bypass duplicate suppression
When "clear bgp * soft out" is executed, updates should be re-sent
to peers even if they are duplicates of previously sent updates.
This requires passing force=true to bgp_announce_route() so that
SUBGRP_STATUS_FORCE_UPDATES is set, which bypasses the duplicate
suppression check.
The bug was introduced in commit e1a32ec1c5 ("bgpd: bgp_announce_route
should know if we should force the update or not") when the force
parameter was added. All existing callers were converted to pass
false, but peer_clear_soft() should have been set to true.
Fixes: e1a32ec1c5 ("bgpd: bgp_announce_route should know if we should force the update or not")
Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index e5775f0152..c5f9d53238 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -9484,7 +9484,7 @@ int peer_clear_soft(struct peer *peer, afi_t afi, safi_t safi,
UNSET_FLAG(paf->subgroup->sflags,
SUBGRP_STATUS_DEFAULT_ORIGINATE);
- bgp_announce_route(peer, afi, safi, false);
+ bgp_announce_route(peer, afi, safi, true);
}
if (stype == BGP_CLEAR_SOFT_IN_ORF_PREFIX) {