Lines Matching refs:iptap
121 SYSCTL_NODE(_net_link, OID_AUTO, iptap, CTLFLAG_RW | CTLFLAG_LOCKED, 0,
173 struct iptap_softc *__single iptap = NULL; in iptap_clone_create() local
176 iptap = kalloc_type(struct iptap_softc, Z_WAITOK_ZERO_NOFAIL); in iptap_clone_create()
177 iptap->iptap_unit = unit; in iptap_clone_create()
195 if_init.softc = iptap; in iptap_clone_create()
199 error = ifnet_allocate_extended(&if_init, &iptap->iptap_ifp); in iptap_clone_create()
205 ifnet_set_flags(iptap->iptap_ifp, IFF_UP, IFF_UP); in iptap_clone_create()
207 error = ifnet_attach(iptap->iptap_ifp, NULL); in iptap_clone_create()
210 ifnet_release(iptap->iptap_ifp); in iptap_clone_create()
218 bpf_attach(iptap->iptap_ifp, DLT_PKTAP, sizeof(struct pktap_header), NULL, in iptap_clone_create()
220 bpf_attach(iptap->iptap_ifp, DLT_RAW, 0, NULL, in iptap_clone_create()
224 ifnet_reference(iptap->iptap_ifp); in iptap_clone_create()
231 LIST_INSERT_HEAD(&iptap_list, iptap, iptap_link); in iptap_clone_create()
234 if (error != 0 && iptap != NULL) { in iptap_clone_create()
235 kfree_type(struct iptap_softc, iptap); in iptap_clone_create()
259 struct iptap_softc *__single iptap; in iptap_tap_callback() local
261 iptap = ifp->if_softc; in iptap_tap_callback()
262 if (iptap == NULL) { in iptap_tap_callback()
270 if (iptap->iptap_dlt_raw_count > 0) { in iptap_tap_callback()
271 iptap->iptap_dlt_raw_count--; in iptap_tap_callback()
275 iptap->iptap_dlt_raw_count++; in iptap_tap_callback()
281 if (iptap->iptap_dlt_pkttap_count > 0) { in iptap_tap_callback()
282 iptap->iptap_dlt_pkttap_count--; in iptap_tap_callback()
286 iptap->iptap_dlt_pkttap_count++; in iptap_tap_callback()
347 struct iptap_softc *__single iptap; in iptap_getdrvspec() local
349 iptap = ifp->if_softc; in iptap_getdrvspec()
350 if (iptap == NULL) { in iptap_getdrvspec()
358 uint32_t tap_count = iptap->iptap_dlt_raw_count + iptap->iptap_dlt_pkttap_count; in iptap_getdrvspec()
426 struct iptap_softc *__single iptap = NULL; in iptap_detach() local
430 iptap = ifp->if_softc; in iptap_detach()
432 LIST_REMOVE(iptap, iptap_link); in iptap_detach()
442 kfree_type(struct iptap_softc, iptap); in iptap_detach()
564 struct iptap_softc *__single iptap; in iptap_bpf_tap() local
587 LIST_FOREACH(iptap, &iptap_list, iptap_link) { in iptap_bpf_tap()
588 if (iptap->iptap_dlt_raw_count > 0) { in iptap_bpf_tap()
589 bpf_tap_func(iptap->iptap_ifp, DLT_RAW, m, in iptap_bpf_tap()
592 if (iptap->iptap_dlt_pkttap_count > 0) { in iptap_bpf_tap()
624 bpf_tap_func(iptap->iptap_ifp, DLT_PKTAP, m, &hdr_buffer, in iptap_bpf_tap()