|
--- a/zebra/zebra_nhg.c 2019-10-18 01:59:17.582282539 +0300
|
|
+++ b/zebra/zebra_nhg.c 2019-10-18 02:00:17.501997253 +0300
|
|
@@ -253,20 +253,9 @@
|
|
while (rn) {
|
|
route_unlock_node(rn);
|
|
|
|
- /* Lookup should halt if we've matched against ourselves ('top',
|
|
- * if specified) - i.e., we cannot have a nexthop NH1 is
|
|
- * resolved by a route NH1. The exception is if the route is a
|
|
- * host route.
|
|
- */
|
|
- if (top && rn == top)
|
|
- if (((afi == AFI_IP) && (rn->p.prefixlen != 32))
|
|
- || ((afi == AFI_IP6) && (rn->p.prefixlen != 128))) {
|
|
- if (IS_ZEBRA_DEBUG_RIB_DETAILED)
|
|
- zlog_debug(
|
|
- "\t%s: Matched against ourself and prefix length is not max bit length",
|
|
- __PRETTY_FUNCTION__);
|
|
- return 0;
|
|
- }
|
|
+ /* If lookup self prefix return immediately. */
|
|
+ if (rn == top)
|
|
+ return 0;
|
|
|
|
/* Pick up selected route. */
|
|
/* However, do not resolve over default route unless explicitly
|