bgpd: Show routes filtered by prefix-list in filter-routes command

Changed "show bgp ipv4 neighbor <peer> filtered-routes"
to show routes filtered by prefx lists, distribute lists and filter lists

Closes: #2653

Signed-off-by: Ameya Dharkar adharkar@vmware.com
This commit is contained in:
Ameya Dharkar 2018-07-26 14:48:05 -07:00
parent 461302049e
commit f99def6130

View File

@ -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,