diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-02 01:08:16 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-05 21:21:26 +0100 |
commit | 6c47d39902fea25151833f92d44d8e624fbacfeb (patch) | |
tree | ea7847244678fa25ba18fdc9fce5c06a5c2b2e6a /zebra/zebra_rib.c | |
parent | lib: add hooks for external logging function (diff) | |
download | frr-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.c | 3 |
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, |