Merge pull request #7681 from chiragshah6/mdev

bgpd: fix distance for aggregate route
This commit is contained in:
Russ White 2020-12-07 17:19:09 -05:00 committed by GitHub
commit 6a684109ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -13702,7 +13702,7 @@ uint8_t bgp_distance_apply(const struct prefix *p, struct bgp_path_info *pinfo,
afi_t afi, safi_t safi, struct bgp *bgp) afi_t afi, safi_t safi, struct bgp *bgp)
{ {
struct bgp_dest *dest; struct bgp_dest *dest;
struct prefix q; struct prefix q = {0};
struct peer *peer; struct peer *peer;
struct bgp_distance *bdistance; struct bgp_distance *bdistance;
struct access_list *alist; struct access_list *alist;
@ -13716,8 +13716,11 @@ uint8_t bgp_distance_apply(const struct prefix *p, struct bgp_path_info *pinfo,
if (pinfo->attr->distance) if (pinfo->attr->distance)
return pinfo->attr->distance; return pinfo->attr->distance;
/* Check source address. */ /* Check source address.
if (!sockunion2hostprefix(&peer->su, &q)) * Note: for aggregate route, peer can have unspec af type.
*/
if (pinfo->sub_type != BGP_ROUTE_AGGREGATE
&& !sockunion2hostprefix(&peer->su, &q))
return 0; return 0;
dest = bgp_node_match(bgp_distance_table[afi][safi], &q); dest = bgp_node_match(bgp_distance_table[afi][safi], &q);

View File

@ -526,10 +526,10 @@ static int zebra_read_route(ZAPI_CALLBACK_ARGS)
inet_ntop(api.prefix.family, &nexthop, buf, inet_ntop(api.prefix.family, &nexthop, buf,
sizeof(buf)); sizeof(buf));
zlog_debug( zlog_debug(
"Rx route ADD VRF %u %s[%d] %pFX nexthop %s (type %d if %u) metric %u tag %" ROUTE_TAG_PRI, "Rx route ADD VRF %u %s[%d] %pFX nexthop %s (type %d if %u) metric %u distance %u tag %" ROUTE_TAG_PRI,
vrf_id, zebra_route_string(api.type), vrf_id, zebra_route_string(api.type),
api.instance, &api.prefix, buf, nhtype, ifindex, api.instance, &api.prefix, buf, nhtype, ifindex,
api.metric, api.tag); api.metric, api.distance, api.tag);
} else { } else {
zlog_debug("Rx route DEL VRF %u %s[%d] %pFX", vrf_id, zlog_debug("Rx route DEL VRF %u %s[%d] %pFX", vrf_id,
zebra_route_string(api.type), api.instance, zebra_route_string(api.type), api.instance,