FreeBSD/sys/netinet6/nd6_rtr.c
/*
 * A supplement function used in the on-link detection below;
 * detect if a given prefix has a (probably) reachable advertising router.
 * XXX: lengthy function name...
 */
A supplement function used in the on-link detection below;
detect if a given prefix has a (probably) reachable advertising router.
XXX: lengthy function name
A supplement function used in the on - link detection below ; detect if a given prefix has a ( probably ) reachable advertising router . XXX : lengthy function name
static struct nd_pfxrouter *
find_pfxlist_reachable_router(struct nd_prefix *pr)
{
	struct nd_pfxrouter *pfxrtr;
	struct llentry *ln;
	int canreach;
	LIST_FOREACH(pfxrtr, &pr->ndpr_advrtrs, pfr_entry) {
		IF_AFDATA_RLOCK(pfxrtr->router->ifp);
		ln = nd6_lookup(&pfxrtr->router->rtaddr, 0, pfxrtr->router->ifp);
		IF_AFDATA_RUNLOCK(pfxrtr->router->ifp);
		if (ln == NULL)
			continue;
		canreach = ND6_IS_LLINFO_PROBREACH(ln);
		LLE_RUNLOCK(ln);
		if (canreach)
			break;
	}
	return (pfxrtr);
}
static struct nd_pfxrouter * find_pfxlist_reachable_router ( struct nd_prefix * pr ) { struct nd_pfxrouter * pfxrtr ; struct llentry * ln ; int canreach ; LIST_FOREACH ( pfxrtr , & pr -> ndpr_advrtrs , pfr_entry ) { IF_AFDATA_RLOCK ( pfxrtr -> router -> ifp ) ; ln = nd6_lookup ( & pfxrtr -> router -> rtaddr , 0 , pfxrtr -> router -> ifp ) ; IF_AFDATA_RUNLOCK ( pfxrtr -> router -> ifp ) ; if ( ln == NULL ) continue ; canreach = ND6_IS_LLINFO_PROBREACH ( ln ) ; LLE_RUNLOCK ( ln ) ; if ( canreach ) break ; } return ( pfxrtr ) ; }
A supplement function used in the on-link detection below;
 detect if a given prefix has a (probably) reachable advertising router.
A supplement function used in the on - link detection below ; detect if a given prefix has a ( probably ) reachable advertising router .