]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: Withdraw routes without waiting for the coalescing timer to expire 17667/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 18 Dec 2024 12:25:58 +0000 (14:25 +0200)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Wed, 18 Dec 2024 12:25:58 +0000 (14:25 +0200)
commit92c92ae7c6caca992abbc776d93d708a511d2d5f
tree7017bb196a8f688b20b078d37d652881979ddc62
parent6c3e1e4fd636e6cdc9a14c4d19de26784a6b890e
bgpd: Withdraw routes without waiting for the coalescing timer to expire

TL;DR; BGP keeps advertising prefixes which were already removed via `network`
command.

This was happening randomly, but with this patch, no issues happened.

Before:

```
frr# sh ip bgp neighbors 10.0.5.1 advertised-routes
BGP table version is 586, local router ID is 44.44.33.43, vrf id 0
Default local pref 100, local AS 2
Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,
i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

Network Next Hop Metric LocPrf Weight Path
*> 15.15.15.0/24 0.0.0.0 0 32768 2 i ============> stale entry
*> 15.15.16.0/24 0.0.0.0 0 32768 2 i
*> 15.15.17.0/24 0.0.0.0 0 32768 2 i

frr# sh ip bgp 15.15.15.0/24
% Network not in table
```

Logs:

```
root@b03d1542-0215-5ecf-013d-af2a7150a4f5:~# cat /log/syslog/frr.log | grep 15.15.15.0
2024/12/08 07:56:58 BGP: [K423X-ETGCQ] group_announce_route_walkcb: afi=IPv4, safi=unicast, p=15.15.15.0/24
2024/12/08 07:56:58 BGP: [T5JFA-13199] subgroup_process_announce_selected: p=15.15.15.0/24, selected=0xde4060
2024/12/08 07:56:58 BGP: [K423X-ETGCQ] group_announce_route_walkcb: afi=IPv4, safi=unicast, p=15.15.15.0/24
2024/12/08 07:56:58 BGP: [T5JFA-13199] subgroup_process_announce_selected: p=15.15.15.0/24, selected=0xde4060
2024/12/08 07:56:58 BGP: [HVRWP-5R9NQ] u78:s77 send UPDATE 15.15.15.0/24 IPv4 unicast
```

Or imagine the situation where withdrawals are postponed for 20-30s., blackholing
happens.

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