Lines Matching refs:ifp

187 ifnet_llreach_ifattach(struct ifnet *ifp, boolean_t reuse)
189 lck_rw_lock_exclusive(&ifp->if_llreach_lock);
192 RB_INIT(&ifp->if_ll_srcs);
193 lck_rw_done(&ifp->if_llreach_lock);
197 ifnet_llreach_ifdetach(struct ifnet *ifp)
199 #pragma unused(ifp)
203 * to by route entries pointing to this ifp.
265 ifnet_llreach_set_reachable(struct ifnet *ifp, u_int16_t llproto, void *addr,
275 lck_rw_lock_shared(&ifp->if_llreach_lock);
276 lr = RB_FIND(ll_reach_tree, &ifp->if_ll_srcs, &find);
278 lck_rw_done(&ifp->if_llreach_lock);
285 lck_rw_done(&ifp->if_llreach_lock);
289 ifnet_llreach_alloc(struct ifnet *ifp, u_int16_t llproto, void *addr,
303 lck_rw_lock_shared(&ifp->if_llreach_lock);
304 lr = RB_FIND(ll_reach_tree, &ifp->if_ll_srcs, &find);
314 lck_rw_done(&ifp->if_llreach_lock);
318 if (!lck_rw_lock_shared_to_exclusive(&ifp->if_llreach_lock))
319 lck_rw_lock_exclusive(&ifp->if_llreach_lock);
321 lck_rw_assert(&ifp->if_llreach_lock, LCK_RW_ASSERT_EXCLUSIVE);
324 lr = RB_FIND(ll_reach_tree, &ifp->if_ll_srcs, &find);
330 lck_rw_done(&ifp->if_llreach_lock);
345 lr->lr_ifp = ifp;
351 RB_INSERT(ll_reach_tree, &ifp->if_ll_srcs, lr);
353 lck_rw_done(&ifp->if_llreach_lock);
361 struct ifnet *ifp;
364 ifp = lr->lr_ifp;
366 lck_rw_lock_exclusive(&ifp->if_llreach_lock);
375 lck_rw_done(&ifp->if_llreach_lock);
385 RB_REMOVE(ll_reach_tree, &ifp->if_ll_srcs, lr);
387 lck_rw_done(&ifp->if_llreach_lock);
426 ifnet_llreach_get_defrouter(struct ifnet *ifp, int af,
434 VERIFY(ifp != NULL && iflri != NULL &&
449 rt = rt_lookup(TRUE, SA(&dst_ss), SA(&mask_ss), rnh, ifp->if_index);
628 struct ifnet *ifp;
647 ifp = ifindex2ifnet[ifindex];
649 if (ifp == NULL) {
650 printf("%s: no ifp for ifindex %u\n", __func__, ifindex);
654 lck_rw_lock_shared(&ifp->if_llreach_lock);
655 RB_FOREACH(lr, ll_reach_tree, &ifp->if_ll_srcs) {
664 lck_rw_done(&ifp->if_llreach_lock);