From: Ameya Dharkar Date: Thu, 26 Jul 2018 21:48:05 +0000 (-0700) Subject: bgpd: Show routes filtered by prefix-list in filter-routes command X-Git-Tag: frr-6.1-dev~129^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=f99def613008dc4f6ef50861bd59a2a5c2521d24;p=matthieu%2Ffrr.git bgpd: Show routes filtered by prefix-list in filter-routes command Changed "show bgp ipv4 neighbor filtered-routes" to show routes filtered by prefx lists, distribute lists and filter lists Closes: #2653 Signed-off-by: Ameya Dharkar adharkar@vmware.com --- diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index f10f7425c6..b1727a3b04 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -10101,6 +10101,7 @@ static void show_adj_route(struct vty *vty, struct peer *peer, afi_t afi, json_object *json_ocode = NULL; json_object *json_ar = NULL; struct peer_af *paf; + bool route_filtered; if (use_json) { json_scode = json_object_new_object(); @@ -10223,17 +10224,29 @@ static void show_adj_route(struct vty *vty, struct peer *peer, afi_t afi, } bgp_attr_dup(&attr, ain->attr); - ret = bgp_input_modifier(peer, &rn->p, &attr, - afi, safi, rmap_name); + route_filtered = false; + + /* Filter prefix using distribute list, + * filter list or prefix list + */ + if ((bgp_input_filter(peer, &rn->p, &attr, afi, + safi)) == FILTER_DENY) + route_filtered = true; + + /* Filter prefix using route-map */ + if ((bgp_input_modifier(peer, &rn->p, &attr, + afi, safi, rmap_name)) + == RMAP_DENY) + route_filtered = true; if (type == bgp_show_adj_route_filtered - && ret != RMAP_DENY) { + && !route_filtered) { bgp_attr_undup(&attr, ain->attr); continue; } if (type == bgp_show_adj_route_received - && ret == RMAP_DENY) + && route_filtered) filtered_count++; route_vty_out_tmp(vty, &rn->p, &attr, safi,