summaryrefslogtreecommitdiff
path: root/zebra/zebra_nhg.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_nhg.c')
-rw-r--r--zebra/zebra_nhg.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/zebra/zebra_nhg.c b/zebra/zebra_nhg.c
index fc429cf55c..258709ad9b 100644
--- a/zebra/zebra_nhg.c
+++ b/zebra/zebra_nhg.c
@@ -1934,12 +1934,19 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
resolved = 0;
+ /* Only useful if installed */
+ if (!CHECK_FLAG(match->status, ROUTE_ENTRY_INSTALLED)) {
+ if (IS_ZEBRA_DEBUG_NHG_DETAIL)
+ zlog_debug("%s: match %p (%u) not installed",
+ __func__, match,
+ match->nhe->id);
+
+ goto done_with_match;
+ }
+
/* Examine installed nexthops */
nhg = &match->nhe->nhg;
for (ALL_NEXTHOPS_PTR(nhg, newhop)) {
- if (!CHECK_FLAG(match->status,
- ROUTE_ENTRY_INSTALLED))
- continue;
if (!nexthop_valid_resolve(nexthop, newhop))
continue;
@@ -1960,9 +1967,6 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
goto done_with_match;
for (ALL_NEXTHOPS_PTR(nhg, newhop)) {
- if (!CHECK_FLAG(match->status,
- ROUTE_ENTRY_INSTALLED))
- continue;
if (!nexthop_valid_resolve(nexthop, newhop))
continue;