summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index f7290caea9..883fe07c1b 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -436,7 +436,13 @@ nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set,
return 1;
}
- else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
+ else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL) ||
+ match->type == ZEBRA_ROUTE_KERNEL)
+ /*
+ || match->type == ZEBRA_ROUTE_KERNEL
+ This prevents zebra from marking recursive static route as inactive.
+ See pimd/TODO T26.
+ */
{
resolved = 0;
for (newhop = match->nexthop; newhop; newhop = newhop->next)