diff options
Diffstat (limited to 'bgpd/bgp_route.c')
| -rw-r--r-- | bgpd/bgp_route.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index c9cfc44da0..d7ff0e3c0a 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -4456,8 +4456,7 @@ void bgp_update(struct peer *peer, const struct prefix *p, uint32_t addpath_id, bgp_evpn_unimport_route( bgp, afi, safi, p, pi); else /* SAFI_MPLS_VPN */ - vpn_leak_to_vrf_withdraw(bgp, - pi); + vpn_leak_to_vrf_withdraw(pi); } } } @@ -4877,7 +4876,7 @@ filtered: if ((SAFI_MPLS_VPN == safi) && (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT)) { - vpn_leak_to_vrf_withdraw(bgp, pi); + vpn_leak_to_vrf_withdraw(pi); } bgp_rib_remove(dest, pi, peer, afi, safi); @@ -4979,7 +4978,7 @@ void bgp_withdraw(struct peer *peer, const struct prefix *p, if ((SAFI_MPLS_VPN == safi) && (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT)) { - vpn_leak_to_vrf_withdraw(bgp, pi); + vpn_leak_to_vrf_withdraw(pi); } } else if (bgp_debug_update(peer, p, NULL, 1)) { bgp_debug_rdpfxpath2str(afi, safi, prd, p, label, num_labels, @@ -5419,7 +5418,7 @@ static wq_item_status bgp_clear_route_node(struct work_queue *wq, void *data) } if (SAFI_MPLS_VPN == safi && bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) { - vpn_leak_to_vrf_withdraw(bgp, pi); + vpn_leak_to_vrf_withdraw(pi); } bgp_rib_remove(dest, pi, peer, afi, safi); @@ -5688,8 +5687,7 @@ void bgp_clear_stale_route(struct peer *peer, afi_t afi, safi_t safi) BGP_ROUTE_IMPORTED && peer->bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) - vpn_leak_to_vrf_withdraw( - peer->bgp, pi); + vpn_leak_to_vrf_withdraw(pi); bgp_rib_remove(rm, pi, peer, afi, safi); break; @@ -6384,7 +6382,7 @@ static void bgp_static_withdraw_safi(struct bgp *bgp, const struct prefix *p, #endif if (SAFI_MPLS_VPN == safi && bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) { - vpn_leak_to_vrf_withdraw(bgp, pi); + vpn_leak_to_vrf_withdraw(pi); } bgp_aggregate_decrement(bgp, p, pi, afi, safi); bgp_path_info_delete(dest, pi); @@ -9858,8 +9856,6 @@ void route_vty_out_overlay(struct vty *vty, const struct prefix *p, if (!json_path) { vty_out(vty, "?"); } else { - json_object_string_add(json_nexthop, "Error", - "Unsupported address-family"); json_object_string_add(json_nexthop, "error", "Unsupported address-family"); } @@ -10227,12 +10223,9 @@ void route_vty_out_detail(struct vty *vty, struct bgp *bgp, struct bgp_dest *bn, if (tag_buf[0] != '\0') vty_out(vty, " VNI %s", tag_buf); } else { - if (tag_buf[0]) { - json_object_string_add(json_path, "VNI", - tag_buf); + if (tag_buf[0]) json_object_string_add(json_path, "vni", tag_buf); - } } } } @@ -11593,7 +11586,16 @@ static int bgp_show_table(struct vty *vty, struct bgp *bgp, safi_t safi, else vty_out(vty, ",\"%pFX\": ", dest_p); } - vty_json(vty, json_paths); + /* + * We are using no_pretty here because under + * extremely high settings( say lots and lots of + * routes with lots and lots of ways to reach + * that route via different paths ) this can + * save several minutes of output when FRR + * is run on older cpu's or more underperforming + * routers out there + */ + vty_json_no_pretty(vty, json_paths); json_paths = NULL; first = 0; } else |
