From: Donatas Abraitis Date: Sat, 22 Aug 2020 15:21:27 +0000 (+0300) Subject: bgpd: Honor route-maps when forcing maximum-prefix for filtered routes X-Git-Tag: base_7.5~56^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=f41b0459817feef9798a776bbdee46a6ff465766;p=matthieu%2Ffrr.git bgpd: Honor route-maps when forcing maximum-prefix for filtered routes This will check route-maps as well, not only prefix-lists, access-lists, and filter-lists. Signed-off-by: Donatas Abraitis --- diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 3a627b4486..912615a59f 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -3060,6 +3060,7 @@ static uint32_t bgp_filtered_routes_count(struct peer *peer, afi_t afi, safi_t safi) { uint32_t count = 0; + bool filtered = false; struct bgp_dest *dest; struct bgp_adj_in *ain; struct bgp_table *table = peer->bgp->rib[afi][safi]; @@ -3071,7 +3072,19 @@ static uint32_t bgp_filtered_routes_count(struct peer *peer, afi_t afi, if (bgp_input_filter(peer, rn_p, &attr, afi, safi) == FILTER_DENY) + filtered = true; + + if (bgp_input_modifier( + peer, rn_p, &attr, afi, safi, + ROUTE_MAP_IN_NAME(&peer->filter[afi][safi]), + NULL, 0, NULL) + == RMAP_DENY) + filtered = true; + + if (filtered) count++; + + bgp_attr_undup(&attr, ain->attr); } }