Lines Matching refs:ifp
82 struct ifnet *ifp; /* per-interface network data */ member
93 static void ng_eiface_start(struct ifnet *ifp);
94 static int ng_eiface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
96 static void ng_eiface_print_ioctl(struct ifnet *ifp, int cmd, caddr_t data);
134 ng_eiface_ioctl(struct ifnet *ifp, u_long command, caddr_t data) in ng_eiface_ioctl() argument
136 const priv_p priv = (priv_p)ifp->if_softc; in ng_eiface_ioctl()
141 ng_eiface_print_ioctl(ifp, command, data); in ng_eiface_ioctl()
146 error = ether_ioctl(ifp, command, data); in ng_eiface_ioctl()
157 if (ifp->if_flags & IFF_UP) { in ng_eiface_ioctl()
158 if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { in ng_eiface_ioctl()
159 ifp->if_drv_flags &= ~(IFF_DRV_OACTIVE); in ng_eiface_ioctl()
160 ifp->if_drv_flags |= IFF_DRV_RUNNING; in ng_eiface_ioctl()
163 if (ifp->if_drv_flags & IFF_DRV_RUNNING) in ng_eiface_ioctl()
164 ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | in ng_eiface_ioctl()
175 ifp->if_mtu = ifr->ifr_mtu; in ng_eiface_ioctl()
181 error = ifmedia_ioctl(ifp, ifr, &priv->media, command); in ng_eiface_ioctl()
204 struct ifnet *ifp = sc->ifp; in ng_eiface_init() local
206 ifp->if_drv_flags |= IFF_DRV_RUNNING; in ng_eiface_init()
207 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; in ng_eiface_init()
218 struct ifnet *ifp = arg1; in ng_eiface_start2() local
219 const priv_p priv = (priv_p)ifp->if_softc; in ng_eiface_start2()
225 if (!((ifp->if_flags & IFF_UP) && in ng_eiface_start2()
226 (ifp->if_drv_flags & IFF_DRV_RUNNING))) in ng_eiface_start2()
233 IF_DEQUEUE(&ifp->if_snd, m); in ng_eiface_start2()
247 BPF_MTAP(ifp, m); in ng_eiface_start2()
249 if (ifp->if_flags & IFF_MONITOR) { in ng_eiface_start2()
250 if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); in ng_eiface_start2()
267 if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1); in ng_eiface_start2()
269 if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); in ng_eiface_start2()
272 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; in ng_eiface_start2()
291 ng_eiface_start(struct ifnet *ifp) in ng_eiface_start() argument
293 const priv_p priv = (priv_p)ifp->if_softc; in ng_eiface_start()
296 if (ifp->if_drv_flags & IFF_DRV_OACTIVE) in ng_eiface_start()
299 ifp->if_drv_flags |= IFF_DRV_OACTIVE; in ng_eiface_start()
301 if (ng_send_fn(priv->node, NULL, &ng_eiface_start2, ifp, 0) != 0) in ng_eiface_start()
302 ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; in ng_eiface_start()
311 ng_eiface_print_ioctl(struct ifnet *ifp, int command, caddr_t data) in ng_eiface_print_ioctl() argument
332 ifp->if_xname, in ng_eiface_print_ioctl()
344 ng_eiface_mediachange(struct ifnet *ifp) in ng_eiface_mediachange() argument
346 const priv_p priv = (priv_p)ifp->if_softc; in ng_eiface_mediachange()
352 ifp->if_baudrate = ifmedia_baudrate(IFM_ETHER | IFM_1000_T); in ng_eiface_mediachange()
354 ifp->if_baudrate = ifmedia_baudrate(ifm->ifm_media); in ng_eiface_mediachange()
360 ng_eiface_mediastatus(struct ifnet *ifp, struct ifmediareq *ifmr) in ng_eiface_mediastatus() argument
362 const priv_p priv = (priv_p)ifp->if_softc; in ng_eiface_mediastatus()
385 struct ifnet *ifp; in ng_eiface_constructor() local
391 ifp = priv->ifp = if_alloc(IFT_ETHER); in ng_eiface_constructor()
394 ifp->if_softc = priv; in ng_eiface_constructor()
404 if_initname(ifp, NG_EIFACE_EIFACE_NAME, priv->unit); in ng_eiface_constructor()
405 ifp->if_init = ng_eiface_init; in ng_eiface_constructor()
406 ifp->if_output = ether_output; in ng_eiface_constructor()
407 ifp->if_start = ng_eiface_start; in ng_eiface_constructor()
408 ifp->if_ioctl = ng_eiface_ioctl; in ng_eiface_constructor()
409 ifp->if_snd.ifq_maxlen = ifqmaxlen; in ng_eiface_constructor()
410 ifp->if_flags = (IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST); in ng_eiface_constructor()
411 ifp->if_capabilities = IFCAP_VLAN_MTU | IFCAP_JUMBO_MTU; in ng_eiface_constructor()
412 ifp->if_capenable = IFCAP_VLAN_MTU | IFCAP_JUMBO_MTU; in ng_eiface_constructor()
427 if (ng_name_node(node, ifp->if_xname) != 0) in ng_eiface_constructor()
429 ifp->if_xname); in ng_eiface_constructor()
432 ether_gen_addr(ifp, &eaddr); in ng_eiface_constructor()
433 ether_ifattach(ifp, eaddr.octet); in ng_eiface_constructor()
434 ifp->if_baudrate = ifmedia_baudrate(IFM_ETHER | IFM_1000_T); in ng_eiface_constructor()
447 struct ifnet *ifp = priv->ifp; in ng_eiface_newhook() local
458 CURVNET_SET_QUIET(ifp->if_vnet); in ng_eiface_newhook()
459 if_link_state_change(ifp, LINK_STATE_UP); in ng_eiface_newhook()
472 struct ifnet *const ifp = priv->ifp; in ng_eiface_rcvmsg() local
487 error = if_setlladdr(priv->ifp, in ng_eiface_rcvmsg()
498 strlcpy(resp->data, ifp->if_xname, IFNAMSIZ); in ng_eiface_rcvmsg()
511 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) in ng_eiface_rcvmsg()
522 CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { in ng_eiface_rcvmsg()
527 ifp->if_xname); in ng_eiface_rcvmsg()
544 CURVNET_SET_QUIET(ifp->if_vnet); in ng_eiface_rcvmsg()
548 if_link_state_change(ifp, LINK_STATE_UP); in ng_eiface_rcvmsg()
552 if_link_state_change(ifp, LINK_STATE_DOWN); in ng_eiface_rcvmsg()
575 struct ifnet *const ifp = priv->ifp; in ng_eiface_rcvdata() local
581 if (!((ifp->if_flags & IFF_UP) && in ng_eiface_rcvdata()
582 (ifp->if_drv_flags & IFF_DRV_RUNNING))) { in ng_eiface_rcvdata()
594 m->m_pkthdr.rcvif = ifp; in ng_eiface_rcvdata()
597 if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); in ng_eiface_rcvdata()
599 (*ifp->if_input)(ifp, m); in ng_eiface_rcvdata()
612 struct ifnet *const ifp = priv->ifp; in ng_eiface_rmnode() local
618 CURVNET_SET_QUIET(ifp->if_vnet); in ng_eiface_rmnode()
619 ether_ifdetach(ifp); in ng_eiface_rmnode()
621 if_free(ifp); in ng_eiface_rmnode()
640 CURVNET_SET_QUIET(priv->ifp->if_vnet); in ng_eiface_disconnect()
641 if_link_state_change(priv->ifp, LINK_STATE_DOWN); in ng_eiface_disconnect()