From f41b0459817feef9798a776bbdee46a6ff465766 Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Sat, 22 Aug 2020 18:21:27 +0300 Subject: [PATCH] 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 --- bgpd/bgp_route.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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); } } -- 2.39.5