]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Do not suppress conditional advertisement updates if triggered
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 20 Oct 2023 08:59:59 +0000 (11:59 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 20 Oct 2023 09:05:45 +0000 (12:05 +0300)
If we have a prefix-list with one entry, and after some time we append a prefix-list
with some more additional entries, conditional advertisement is triggered, and the
old entries are suppressed (because they look identical as sent before).

Hence, the old entries are sent as withdrawals and only new entries sent as updates.

Force re-sending all BGP updates for conditional advertisement. The same is done
for route-refresh, and/or soft clear operations.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_conditional_adv.c

index b30052d95a73ac8e88bcccde648b1a433a03da6d..3b5f5e986be483912750a02e7514a55388343154 100644 (file)
@@ -90,6 +90,7 @@ static void bgp_conditional_adv_routes(struct peer *peer, afi_t afi,
 
        addpath_capable = bgp_addpath_encode_tx(peer, afi, safi);
 
+       SET_FLAG(subgrp->sflags, SUBGRP_STATUS_FORCE_UPDATES);
        for (dest = bgp_table_top(table); dest; dest = bgp_route_next(dest)) {
                dest_p = bgp_dest_get_prefix(dest);
                assert(dest_p);