summaryrefslogtreecommitdiff
path: root/bgpd/bgp_route.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_route.c')
-rw-r--r--bgpd/bgp_route.c13
1 files changed, 13 insertions, 0 deletions
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);
}
}