/* * Start transfer */ static void lgue_start(struct ifnet *ifp, struct ifaltq_subque *ifsq) { struct lgue_softc *sc; struct mbuf *m_head; ASSERT_ALTQ_SQ_DEFAULT(ifp, ifsq); sc = ifp->if_softc; if (sc->lgue_dying) return; if (ifq_is_oactive(&ifp->if_snd)) { return; } /* To internal queue */ while ((m_head = ifq_dequeue(&ifp->if_snd, NULL)) != NULL) { if (lgue_encap(sc, m_head)) { m_freem(m_head); break; } /* Filter */ BPF_MTAP(ifp, m_head); } lgue_start_transfer(sc); }
/* * Start transfer */ static void lgue_start(struct ifnet *ifp) { struct lgue_softc *sc; struct mbuf *m_head; sc = ifp->if_softc; if (sc->lgue_dying) return; if (ifp->if_flags & IFF_OACTIVE) { return; } /* To internal queue */ while ((m_head = ifq_dequeue(&ifp->if_snd, NULL)) != NULL) { if (lgue_encap(sc, m_head)) { m_freem(m_head); break; } /* Filter */ BPF_MTAP(ifp, m_head); } lgue_start_transfer(sc); }