mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 02:46:26 +00:00
zebra: Allow recursive nexthop resolution to consider blackholes
When we get a route install for a route that needs to be recursively resolved allow the blackhole to be considered and used if it is available. This allows bgp to install a route that will be blackholed. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
1f1d24a8f1
commit
59693377a9
@ -357,6 +357,10 @@ static void nexthop_set_resolved(afi_t afi, struct nexthop *newhop,
|
||||
resolved_hop->ifindex = newhop->ifindex;
|
||||
}
|
||||
|
||||
if (newhop->type == NEXTHOP_TYPE_BLACKHOLE) {
|
||||
resolved_hop->type = NEXTHOP_TYPE_BLACKHOLE;
|
||||
resolved_hop->bh_type = nexthop->bh_type;
|
||||
}
|
||||
resolved_hop->rparent = nexthop;
|
||||
nexthop_add(&nexthop->resolved, resolved_hop);
|
||||
}
|
||||
@ -484,8 +488,6 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
|
||||
} else if (CHECK_FLAG(re->flags, ZEBRA_FLAG_INTERNAL)) {
|
||||
resolved = 0;
|
||||
for (ALL_NEXTHOPS(match->nexthop, newhop)) {
|
||||
if (newhop->type == NEXTHOP_TYPE_BLACKHOLE)
|
||||
continue;
|
||||
if (!CHECK_FLAG(newhop->flags,
|
||||
NEXTHOP_FLAG_FIB))
|
||||
continue;
|
||||
@ -509,8 +511,6 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
|
||||
} else if (re->type == ZEBRA_ROUTE_STATIC) {
|
||||
resolved = 0;
|
||||
for (ALL_NEXTHOPS(match->nexthop, newhop)) {
|
||||
if (newhop->type == NEXTHOP_TYPE_BLACKHOLE)
|
||||
continue;
|
||||
if (!CHECK_FLAG(newhop->flags,
|
||||
NEXTHOP_FLAG_FIB))
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user