Lines Matching refs:iptap
123 SYSCTL_NODE(_net_link, OID_AUTO, iptap, CTLFLAG_RW | CTLFLAG_LOCKED, 0,
175 struct iptap_softc *iptap = NULL; in iptap_clone_create() local
178 iptap = if_clone_softc_allocate(&iptap_cloner); in iptap_clone_create()
179 if (iptap == NULL) { in iptap_clone_create()
184 iptap->iptap_unit = unit; in iptap_clone_create()
202 if_init.softc = iptap; in iptap_clone_create()
206 error = ifnet_allocate_extended(&if_init, &iptap->iptap_ifp); in iptap_clone_create()
212 ifnet_set_flags(iptap->iptap_ifp, IFF_UP, IFF_UP); in iptap_clone_create()
214 error = ifnet_attach(iptap->iptap_ifp, NULL); in iptap_clone_create()
217 ifnet_release(iptap->iptap_ifp); in iptap_clone_create()
225 bpf_attach(iptap->iptap_ifp, DLT_PKTAP, sizeof(struct pktap_header), NULL, in iptap_clone_create()
227 bpf_attach(iptap->iptap_ifp, DLT_RAW, 0, NULL, in iptap_clone_create()
231 ifnet_reference(iptap->iptap_ifp); in iptap_clone_create()
238 LIST_INSERT_HEAD(&iptap_list, iptap, iptap_link); in iptap_clone_create()
242 if (iptap != NULL) { in iptap_clone_create()
243 if_clone_softc_deallocate(&iptap_cloner, iptap); in iptap_clone_create()
268 struct iptap_softc *iptap; in iptap_tap_callback() local
270 iptap = ifp->if_softc; in iptap_tap_callback()
271 if (iptap == NULL) { in iptap_tap_callback()
279 if (iptap->iptap_dlt_raw_count > 0) { in iptap_tap_callback()
280 iptap->iptap_dlt_raw_count--; in iptap_tap_callback()
284 iptap->iptap_dlt_raw_count++; in iptap_tap_callback()
290 if (iptap->iptap_dlt_pkttap_count > 0) { in iptap_tap_callback()
291 iptap->iptap_dlt_pkttap_count--; in iptap_tap_callback()
295 iptap->iptap_dlt_pkttap_count++; in iptap_tap_callback()
356 struct iptap_softc *iptap; in iptap_getdrvspec() local
358 iptap = ifp->if_softc; in iptap_getdrvspec()
359 if (iptap == NULL) { in iptap_getdrvspec()
367 uint32_t tap_count = iptap->iptap_dlt_raw_count + iptap->iptap_dlt_pkttap_count; in iptap_getdrvspec()
435 struct iptap_softc *iptap = NULL; in iptap_detach() local
439 iptap = ifp->if_softc; in iptap_detach()
441 LIST_REMOVE(iptap, iptap_link); in iptap_detach()
451 if_clone_softc_deallocate(&iptap_cloner, iptap); in iptap_detach()
573 struct iptap_softc *iptap; in iptap_bpf_tap() local
596 LIST_FOREACH(iptap, &iptap_list, iptap_link) { in iptap_bpf_tap()
597 if (iptap->iptap_dlt_raw_count > 0) { in iptap_bpf_tap()
598 bpf_tap_func(iptap->iptap_ifp, DLT_RAW, m, in iptap_bpf_tap()
601 if (iptap->iptap_dlt_pkttap_count > 0) { in iptap_bpf_tap()
633 bpf_tap_func(iptap->iptap_ifp, DLT_PKTAP, m, hdr, hdr_size); in iptap_bpf_tap()