diff options
Diffstat (limited to 'pimd/pim_nht.c')
| -rw-r--r-- | pimd/pim_nht.c | 9 | 
1 files changed, 4 insertions, 5 deletions
diff --git a/pimd/pim_nht.c b/pimd/pim_nht.c index e4f6b5c8a5..4e9c4bce8c 100644 --- a/pimd/pim_nht.c +++ b/pimd/pim_nht.c @@ -540,7 +540,8 @@ static int pim_ecmp_nexthop_search(struct pim_instance *pim,  	// Current Nexthop is VALID, check to stay on the current path.  	if (nexthop->interface && nexthop->interface->info && -	    ((struct pim_interface *)nexthop->interface->info)->options && +	    (((struct pim_interface *)nexthop->interface->info)->pim_enable || +	     ((struct pim_interface *)nexthop->interface->info)->igmp_enable) &&  	    (!pim_addr_is_any(nh_addr))) {  		/* User configured knob to explicitly switch  		   to new path is disabled or current path @@ -655,8 +656,7 @@ static int pim_ecmp_nexthop_search(struct pim_instance *pim,  			continue;  		} -		if (!PIM_IF_TEST_PIM( -			    ((struct pim_interface *)ifp->info)->options)) { +		if (!((struct pim_interface *)ifp->info)->pim_enable) {  			if (PIM_DEBUG_PIM_NHT)  				zlog_debug(  					"%s: pim not enabled on input interface %s(%s) (ifindex=%d, RPF for source %pI4)", @@ -1025,8 +1025,7 @@ int pim_ecmp_nexthop_lookup(struct pim_instance *pim,  		} -		if (!PIM_IF_TEST_PIM( -			    ((struct pim_interface *)ifp->info)->options)) { +		if (!((struct pim_interface *)ifp->info)->pim_enable) {  			if (PIM_DEBUG_PIM_NHT)  				zlog_debug(  					"%s: pim not enabled on input interface %s(%s) (ifindex=%d, RPF for source %pI4)",  | 
