mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-05 05:14:15 +00:00
Merge pull request #7681 from chiragshah6/mdev
bgpd: fix distance for aggregate route
This commit is contained in:
commit
6a684109ae
@ -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);
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user