Lines Matching refs:ndp
418 nce_remove(ndp_g_t *ndp, ncec_t *ncec, ncec_t **free_nce_list)
423 ASSERT(MUTEX_HELD(&ndp->ndp_g_lock));
424 ASSERT(ndp->ndp_g_walker == 0);
448 * 3. If there is an ndp walker, return. The walker will do the cleanup.
458 ndp_g_t *ndp;
462 ndp = ipst->ips_ndp4;
464 ndp = ipst->ips_ndp6;
498 mutex_enter(&ndp->ndp_g_lock);
501 * The last ndp walker has already removed this ncec from
505 mutex_exit(&ndp->ndp_g_lock);
508 if (ndp->ndp_g_walker > 0) {
512 ndp->ndp_g_walker_cleanup = B_TRUE;
513 mutex_exit(&ndp->ndp_g_lock);
528 mutex_exit(&ndp->ndp_g_lock);
620 * It is possible for the last ndp walker (this thread)
741 ndp_g_t *ndp;
745 ndp = ipst->ips_ndp6;
747 ndp = ipst->ips_ndp4;
750 ASSERT(MUTEX_HELD(&ndp->ndp_g_lock));
942 ncec_walk_common(ndp_g_t *ndp, ill_t *ill, pfi_t pfi, void *arg1,
950 mutex_enter(&ndp->ndp_g_lock);
952 ndp->ndp_g_walker++;
953 mutex_exit(&ndp->ndp_g_lock);
954 for (ncep = ndp->nce_hash_tbl;
955 ncep < A_END(ndp->nce_hash_tbl); ncep++) {
971 mutex_enter(&ndp->ndp_g_lock);
972 ndp->ndp_g_walker--;
973 if (ndp->ndp_g_walker_cleanup && ndp->ndp_g_walker == 0) {
975 for (ncep = ndp->nce_hash_tbl;
976 ncep < A_END(ndp->nce_hash_tbl); ncep++) {
979 nce_remove(ndp, ncec, &free_nce_list);
982 ndp->ndp_g_walker_cleanup = B_FALSE;
985 mutex_exit(&ndp->ndp_g_lock);
4393 struct ndp_g_s *ndp;
4398 ndp = ill->ill_ipst->ips_ndp6;
4400 ndp = ill->ill_ipst->ips_ndp4;
4404 ASSERT(MUTEX_HELD(&ndp->ndp_g_lock));