From 1c00fb274cd2509406f353b37f8299a5d30be580 Mon Sep 17 00:00:00 2001 From: Chirag Shah Date: Tue, 8 Dec 2020 21:04:50 -0800 Subject: [PATCH] bgpd: local routes use non-default distance Use user provided AD for local routes (aggregate). address-family ipv4 unicast distance bgp 20 200 210 network 47.2.2.8/30 aggregate-address 51.1.0.0/16 Testing Done: Before aggr route uses default 200 AD even user provided local AD. B>* 51.1.0.0/16 [200/0] unreachable (blackhole), weight 1, 00:01:14 After: B>* 51.1.0.0/16 [210/0] unreachable (blackhole), weight 1, 00:00:01 Signed-off-by: Chirag Shah --- bgpd/bgp_route.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index a1cf6ac3e8..87e03d205f 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -13755,10 +13755,14 @@ uint8_t bgp_distance_apply(const struct prefix *p, struct bgp_path_info *pinfo, if (bgp->distance_ebgp[afi][safi]) return bgp->distance_ebgp[afi][safi]; return ZEBRA_EBGP_DISTANCE_DEFAULT; - } else { + } else if (peer->sort == BGP_PEER_IBGP) { if (bgp->distance_ibgp[afi][safi]) return bgp->distance_ibgp[afi][safi]; return ZEBRA_IBGP_DISTANCE_DEFAULT; + } else { + if (bgp->distance_local[afi][safi]) + return bgp->distance_local[afi][safi]; + return ZEBRA_IBGP_DISTANCE_DEFAULT; } }