summaryrefslogtreecommitdiffstats
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-02-02 01:08:16 +0100
committerDonald Sharp <sharpd@cumulusnetworks.com>2019-02-05 21:21:26 +0100
commit6c47d39902fea25151833f92d44d8e624fbacfeb (patch)
treeea7847244678fa25ba18fdc9fce5c06a5c2b2e6a /zebra/zebra_rib.c
parentlib: add hooks for external logging function (diff)
downloadfrr-6c47d39902fea25151833f92d44d8e624fbacfeb.tar.xz
frr-6c47d39902fea25151833f92d44d8e624fbacfeb.zip
zebra: Fix multiple levels of static recursion
Allow the nexthop-check code to figure out recursive static routes in a logical manner. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to '')
-rw-r--r--zebra/zebra_rib.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 73e4b981b..bccf9b6b1 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -608,6 +608,9 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
if (!CHECK_FLAG(match->status,
ROUTE_ENTRY_INSTALLED))
continue;
+ if (CHECK_FLAG(newhop->flags,
+ NEXTHOP_FLAG_RECURSIVE))
+ continue;
if (set) {
SET_FLAG(nexthop->flags,