Lines Matching refs:ifp
92 static int looutput(struct ifnet *ifp, struct mbuf *m,
102 lo_clone_destroy(struct if_clone *ifc, struct ifnet *ifp, uint32_t flags) in lo_clone_destroy() argument
104 if (ifp->if_dunit == 0 && (flags & IFC_F_FORCE) == 0) in lo_clone_destroy()
109 KASSERT(V_loif != ifp, ("%s: destroying lo0", __func__)); in lo_clone_destroy()
112 bpfdetach(ifp); in lo_clone_destroy()
113 if_detach(ifp); in lo_clone_destroy()
114 if_free(ifp); in lo_clone_destroy()
123 struct ifnet *ifp; in lo_clone_create() local
125 ifp = if_alloc(IFT_LOOP); in lo_clone_create()
126 if_initname(ifp, loname, ifd->unit); in lo_clone_create()
127 ifp->if_mtu = LOMTU; in lo_clone_create()
128 ifp->if_flags = IFF_LOOPBACK | IFF_MULTICAST; in lo_clone_create()
129 ifp->if_ioctl = loioctl; in lo_clone_create()
130 ifp->if_output = looutput; in lo_clone_create()
131 ifp->if_snd.ifq_maxlen = ifqmaxlen; in lo_clone_create()
132 ifp->if_capabilities = ifp->if_capenable = in lo_clone_create()
134 ifp->if_hwassist = LO_CSUM_FEATURES | LO_CSUM_FEATURES6; in lo_clone_create()
135 if_attach(ifp); in lo_clone_create()
136 bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); in lo_clone_create()
137 *ifpp = ifp; in lo_clone_create()
196 looutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, in looutput() argument
207 error = mac_ifnet_check_transmit(ifp, m); in looutput()
219 if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); in looutput()
220 if_inc_counter(ifp, IFCOUNTER_OBYTES, m->m_pkthdr.len); in looutput()
235 if (ifp->if_capenable & IFCAP_RXCSUM) { in looutput()
248 if (ifp->if_capenable & IFCAP_RXCSUM_IPV6) { in looutput()
264 return (if_simloop(ifp, m, af, 0)); in looutput()
278 if_simloop(struct ifnet *ifp, struct mbuf *m, int af, int hlen) in if_simloop() argument
284 m->m_pkthdr.rcvif = ifp; in if_simloop()
287 mac_ifnet_create_mbuf(ifp, m); in if_simloop()
301 if (bpf_peers_present(ifp->if_bpf)) { in if_simloop()
302 bpf_mtap(ifp->if_bpf, m); in if_simloop()
306 if ((m->m_flags & M_MCAST) == 0 || V_loif == ifp) { in if_simloop()
355 if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); in if_simloop()
356 if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); in if_simloop()
365 loioctl(struct ifnet *ifp, u_long cmd, caddr_t data) in loioctl() argument
372 ifp->if_flags |= IFF_UP; in loioctl()
373 ifp->if_drv_flags |= IFF_DRV_RUNNING; in loioctl()
374 if_link_state_change(ifp, LINK_STATE_UP); in loioctl()
403 ifp->if_mtu = ifr->ifr_mtu; in loioctl()
407 if_link_state_change(ifp, (ifp->if_flags & IFF_UP) ? in loioctl()
412 mask = ifp->if_capenable ^ ifr->ifr_reqcap; in loioctl()
414 ifp->if_capenable ^= IFCAP_RXCSUM; in loioctl()
416 ifp->if_capenable ^= IFCAP_TXCSUM; in loioctl()
419 ifp->if_capenable ^= IFCAP_RXCSUM_IPV6; in loioctl()
427 ifp->if_capenable ^= IFCAP_TXCSUM_IPV6; in loioctl()
433 ifp->if_hwassist = 0; in loioctl()
434 if (ifp->if_capenable & IFCAP_TXCSUM) in loioctl()
435 ifp->if_hwassist = LO_CSUM_FEATURES; in loioctl()
437 if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) in loioctl()
438 ifp->if_hwassist |= LO_CSUM_FEATURES6; in loioctl()