The branch main has been updated by jhibbits:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=935b194ded5dc555fc14e3d2f4c72e58cff39566

commit 935b194ded5dc555fc14e3d2f4c72e58cff39566
Author:     Justin Hibbits <jhibb...@freebsd.org>
AuthorDate: 2023-02-07 16:10:10 +0000
Commit:     Justin Hibbits <jhibb...@freebsd.org>
CommitDate: 2023-03-06 16:04:15 +0000

    Mechanically convert usb ethernet drivers to DrvAPI
    
    Reviewed by:    zlei
    Sponsored by:   Juniper Networks, Inc.
    Differential Revision: https://reviews.freebsd.org/D37812
---
 sys/dev/usb/net/if_aue.c     |  40 +++++++--------
 sys/dev/usb/net/if_axe.c     | 119 +++++++++++++++++++++----------------------
 sys/dev/usb/net/if_axge.c    | 111 ++++++++++++++++++++--------------------
 sys/dev/usb/net/if_cdce.c    |  57 ++++++++++-----------
 sys/dev/usb/net/if_cdceem.c  |  16 +++---
 sys/dev/usb/net/if_cue.c     |  30 +++++------
 sys/dev/usb/net/if_ipheth.c  |   8 +--
 sys/dev/usb/net/if_kue.c     |  24 ++++-----
 sys/dev/usb/net/if_mos.c     |  38 +++++++-------
 sys/dev/usb/net/if_muge.c    | 115 +++++++++++++++++++++--------------------
 sys/dev/usb/net/if_rue.c     |  40 +++++++--------
 sys/dev/usb/net/if_smsc.c    | 105 +++++++++++++++++++-------------------
 sys/dev/usb/net/if_udav.c    |  38 +++++++-------
 sys/dev/usb/net/if_ure.c     | 113 ++++++++++++++++++++--------------------
 sys/dev/usb/net/if_urndis.c  |  14 ++---
 sys/dev/usb/net/if_usie.c    |  79 ++++++++++++++--------------
 sys/dev/usb/net/if_usievar.h |   2 +-
 sys/dev/usb/net/uhso.c       |  77 ++++++++++++++--------------
 sys/dev/usb/usb_pf.c         |  35 +++++++------
 sys/dev/usb/wlan/if_rsu.c    |  14 ++---
 sys/dev/usb/wlan/if_run.c    |  10 ++--
 sys/dev/usb/wlan/if_upgt.c   |   2 +-
 22 files changed, 539 insertions(+), 548 deletions(-)

diff --git a/sys/dev/usb/net/if_aue.c b/sys/dev/usb/net/if_aue.c
index 3e4251cf1562..4b31d0302f91 100644
--- a/sys/dev/usb/net/if_aue.c
+++ b/sys/dev/usb/net/if_aue.c
@@ -225,8 +225,8 @@ static uint16_t     aue_eeprom_getword(struct aue_softc *, 
int);
 static void    aue_reset(struct aue_softc *);
 static void    aue_reset_pegasus_II(struct aue_softc *);
 
-static int     aue_ifmedia_upd(struct ifnet *);
-static void    aue_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int     aue_ifmedia_upd(if_t);
+static void    aue_ifmedia_sts(if_t, struct ifmediareq *);
 
 static const struct usb_config aue_config[AUE_N_TRANSFER] = {
        [AUE_BULK_DT_WR] = {
@@ -554,13 +554,13 @@ static void
 aue_setmulti(struct usb_ether *ue)
 {
        struct aue_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
        uint32_t i;
        uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
 
        AUE_LOCK_ASSERT(sc, MA_OWNED);
 
-       if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+       if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
                AUE_SETBIT(sc, AUE_CTL0, AUE_CTL0_ALLMULTI);
                return;
        }
@@ -740,7 +740,7 @@ static void
 aue_intr_callback(struct usb_xfer *xfer, usb_error_t error)
 {
        struct aue_softc *sc = usbd_xfer_softc(xfer);
-       struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+       if_t ifp = uether_getifp(&sc->sc_ue);
        struct aue_intrpkt pkt;
        struct usb_page_cache *pc;
        int actlen;
@@ -750,7 +750,7 @@ aue_intr_callback(struct usb_xfer *xfer, usb_error_t error)
        switch (USB_GET_STATE(xfer)) {
        case USB_ST_TRANSFERRED:
 
-               if ((ifp->if_drv_flags & IFF_DRV_RUNNING) &&
+               if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) &&
                    actlen >= (int)sizeof(pkt)) {
                        pc = usbd_xfer_get_frame(xfer, 0);
                        usbd_copy_out(pc, 0, &pkt, sizeof(pkt));
@@ -783,7 +783,7 @@ aue_bulk_read_callback(struct usb_xfer *xfer, usb_error_t 
error)
 {
        struct aue_softc *sc = usbd_xfer_softc(xfer);
        struct usb_ether *ue = &sc->sc_ue;
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
        struct aue_rxpkt stat;
        struct usb_page_cache *pc;
        int actlen;
@@ -847,7 +847,7 @@ static void
 aue_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
 {
        struct aue_softc *sc = usbd_xfer_softc(xfer);
-       struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+       if_t ifp = uether_getifp(&sc->sc_ue);
        struct usb_page_cache *pc;
        struct mbuf *m;
        uint8_t buf[2];
@@ -870,7 +870,7 @@ tr_setup:
                         */
                        return;
                }
-               IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+               m = if_dequeue(ifp);
 
                if (m == NULL)
                        return;
@@ -959,7 +959,7 @@ static void
 aue_init(struct usb_ether *ue)
 {
        struct aue_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
        int i;
 
        AUE_LOCK_ASSERT(sc, MA_OWNED);
@@ -971,7 +971,7 @@ aue_init(struct usb_ether *ue)
 
        /* Set MAC address */
        for (i = 0; i != ETHER_ADDR_LEN; i++)
-               aue_csr_write_1(sc, AUE_PAR0 + i, IF_LLADDR(ifp)[i]);
+               aue_csr_write_1(sc, AUE_PAR0 + i, if_getlladdr(ifp)[i]);
 
        /* update promiscuous setting */
        aue_setpromisc(ue);
@@ -986,7 +986,7 @@ aue_init(struct usb_ether *ue)
 
        usbd_xfer_set_stall(sc->sc_xfer[AUE_BULK_DT_WR]);
 
-       ifp->if_drv_flags |= IFF_DRV_RUNNING;
+       if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
        aue_start(ue);
 }
 
@@ -994,12 +994,12 @@ static void
 aue_setpromisc(struct usb_ether *ue)
 {
        struct aue_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
 
        AUE_LOCK_ASSERT(sc, MA_OWNED);
 
        /* if we want promiscuous mode, set the allframes bit: */
-       if (ifp->if_flags & IFF_PROMISC)
+       if (if_getflags(ifp) & IFF_PROMISC)
                AUE_SETBIT(sc, AUE_CTL2, AUE_CTL2_RX_PROMISC);
        else
                AUE_CLRBIT(sc, AUE_CTL2, AUE_CTL2_RX_PROMISC);
@@ -1009,9 +1009,9 @@ aue_setpromisc(struct usb_ether *ue)
  * Set media options.
  */
 static int
-aue_ifmedia_upd(struct ifnet *ifp)
+aue_ifmedia_upd(if_t ifp)
 {
-       struct aue_softc *sc = ifp->if_softc;
+       struct aue_softc *sc = if_getsoftc(ifp);
        struct mii_data *mii = GET_MII(sc);
        struct mii_softc *miisc;
        int error;
@@ -1029,9 +1029,9 @@ aue_ifmedia_upd(struct ifnet *ifp)
  * Report current media status.
  */
 static void
-aue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+aue_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
 {
-       struct aue_softc *sc = ifp->if_softc;
+       struct aue_softc *sc = if_getsoftc(ifp);
        struct mii_data *mii = GET_MII(sc);
 
        AUE_LOCK(sc);
@@ -1049,11 +1049,11 @@ static void
 aue_stop(struct usb_ether *ue)
 {
        struct aue_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
 
        AUE_LOCK_ASSERT(sc, MA_OWNED);
 
-       ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+       if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
        sc->sc_flags &= ~AUE_FLAG_LINK;
 
        /*
diff --git a/sys/dev/usb/net/if_axe.c b/sys/dev/usb/net/if_axe.c
index 257761f4c48b..f0c8ce58d297 100644
--- a/sys/dev/usb/net/if_axe.c
+++ b/sys/dev/usb/net/if_axe.c
@@ -205,8 +205,8 @@ static uether_fn_t axe_setmulti;
 static uether_fn_t axe_setpromisc;
 
 static int     axe_attach_post_sub(struct usb_ether *);
-static int     axe_ifmedia_upd(struct ifnet *);
-static void    axe_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int     axe_ifmedia_upd(if_t);
+static void    axe_ifmedia_sts(if_t, struct ifmediareq *);
 static int     axe_cmd(struct axe_softc *, int, int, int, void *);
 static void    axe_ax88178_init(struct axe_softc *);
 static void    axe_ax88772_init(struct axe_softc *);
@@ -214,7 +214,7 @@ static void axe_ax88772_phywake(struct axe_softc *);
 static void    axe_ax88772a_init(struct axe_softc *);
 static void    axe_ax88772b_init(struct axe_softc *);
 static int     axe_get_phyno(struct axe_softc *, int);
-static int     axe_ioctl(struct ifnet *, u_long, caddr_t);
+static int     axe_ioctl(if_t, u_long, caddr_t);
 static int     axe_rx_frame(struct usb_ether *, struct usb_page_cache *, int);
 static int     axe_rxeof(struct usb_ether *, struct usb_page_cache *,
                    unsigned offset, unsigned, struct axe_csum_hdr *);
@@ -373,7 +373,7 @@ axe_miibus_statchg(device_t dev)
 {
        struct axe_softc *sc = device_get_softc(dev);
        struct mii_data *mii = GET_MII(sc);
-       struct ifnet *ifp;
+       if_t ifp;
        uint16_t val;
        int err, locked;
 
@@ -383,7 +383,7 @@ axe_miibus_statchg(device_t dev)
 
        ifp = uether_getifp(&sc->sc_ue);
        if (mii == NULL || ifp == NULL ||
-           (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+           (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
                goto done;
 
        sc->sc_flags &= ~AXE_FLAG_LINK;
@@ -448,9 +448,9 @@ done:
  * Set media options.
  */
 static int
-axe_ifmedia_upd(struct ifnet *ifp)
+axe_ifmedia_upd(if_t ifp)
 {
-       struct axe_softc *sc = ifp->if_softc;
+       struct axe_softc *sc = if_getsoftc(ifp);
        struct mii_data *mii = GET_MII(sc);
        struct mii_softc *miisc;
        int error;
@@ -467,9 +467,9 @@ axe_ifmedia_upd(struct ifnet *ifp)
  * Report current media status.
  */
 static void
-axe_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+axe_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
 {
-       struct axe_softc *sc = ifp->if_softc;
+       struct axe_softc *sc = if_getsoftc(ifp);
        struct mii_data *mii = GET_MII(sc);
 
        AXE_LOCK(sc);
@@ -495,7 +495,7 @@ static void
 axe_setmulti(struct usb_ether *ue)
 {
        struct axe_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
        uint16_t rxmode;
        uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
 
@@ -504,7 +504,7 @@ axe_setmulti(struct usb_ether *ue)
        axe_cmd(sc, AXE_CMD_RXCTL_READ, 0, 0, &rxmode);
        rxmode = le16toh(rxmode);
 
-       if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
+       if (if_getflags(ifp) & (IFF_ALLMULTI | IFF_PROMISC)) {
                rxmode |= AXE_RXCMD_ALLMULTI;
                axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, rxmode, NULL);
                return;
@@ -865,25 +865,24 @@ static int
 axe_attach_post_sub(struct usb_ether *ue)
 {
        struct axe_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        u_int adv_pause;
        int error;
 
        sc = uether_getsc(ue);
        ifp = ue->ue_ifp;
-       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-       ifp->if_start = uether_start;
-       ifp->if_ioctl = axe_ioctl;
-       ifp->if_init = uether_init;
-       IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
-       ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
-       IFQ_SET_READY(&ifp->if_snd);
+       if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+       if_setstartfn(ifp, uether_start);
+       if_setioctlfn(ifp, axe_ioctl);
+       if_setinitfn(ifp, uether_init);
+       if_setsendqlen(ifp, ifqmaxlen);
+       if_setsendqready(ifp);
 
        if (AXE_IS_178_FAMILY(sc))
-               ifp->if_capabilities |= IFCAP_VLAN_MTU;
+               if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
        if (sc->sc_flags & AXE_FLAG_772B) {
-               ifp->if_capabilities |= IFCAP_TXCSUM | IFCAP_RXCSUM;
-               ifp->if_hwassist = AXE_CSUM_FEATURES;
+               if_setcapabilitiesbit(ifp, IFCAP_TXCSUM | IFCAP_RXCSUM, 0);
+               if_sethwassist(ifp, AXE_CSUM_FEATURES);
                /*
                 * Checksum offloading of AX88772B also works with VLAN
                 * tagged frames but there is no way to take advantage
@@ -894,7 +893,7 @@ axe_attach_post_sub(struct usb_ether *ue)
                 * not possible to announce IFCAP_VLAN_HWTAGGING.
                 */
        }
-       ifp->if_capenable = ifp->if_capabilities;
+       if_setcapenable(ifp, if_getcapabilities(ifp));
        if (sc->sc_flags & (AXE_FLAG_772A | AXE_FLAG_772B | AXE_FLAG_178))
                adv_pause = MIIF_DOPAUSE;
        else
@@ -1106,7 +1105,7 @@ static int
 axe_rxeof(struct usb_ether *ue, struct usb_page_cache *pc, unsigned offset,
     unsigned len, struct axe_csum_hdr *csum_hdr)
 {
-       struct ifnet *ifp = ue->ue_ifp;
+       if_t ifp = ue->ue_ifp;
        struct mbuf *m;
 
        if (len < ETHER_HDR_LEN || len > MCLBYTES - ETHER_ALIGN) {
@@ -1157,7 +1156,7 @@ axe_bulk_write_callback(struct usb_xfer *xfer, 
usb_error_t error)
 {
        struct axe_softc *sc = usbd_xfer_softc(xfer);
        struct axe_sframe_hdr hdr;
-       struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+       if_t ifp = uether_getifp(&sc->sc_ue);
        struct usb_page_cache *pc;
        struct mbuf *m;
        int nframes, pos;
@@ -1165,12 +1164,12 @@ axe_bulk_write_callback(struct usb_xfer *xfer, 
usb_error_t error)
        switch (USB_GET_STATE(xfer)) {
        case USB_ST_TRANSFERRED:
                DPRINTFN(11, "transfer complete\n");
-               ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
                /* FALLTHROUGH */
        case USB_ST_SETUP:
 tr_setup:
                if ((sc->sc_flags & AXE_FLAG_LINK) == 0 ||
-                   (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
+                   (if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0) {
                        /*
                         * Don't send anything if there is no link or
                         * controller is busy.
@@ -1179,8 +1178,8 @@ tr_setup:
                }
 
                for (nframes = 0; nframes < 16 &&
-                   !IFQ_DRV_IS_EMPTY(&ifp->if_snd); nframes++) {
-                       IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+                   !if_sendq_empty(ifp); nframes++) {
+                       m = if_dequeue(ifp);
                        if (m == NULL)
                                break;
                        usbd_xfer_set_frame_offset(xfer, nframes * MCLBYTES,
@@ -1196,7 +1195,7 @@ tr_setup:
                                 * computed checksum for checksum offloading
                                 * enabled controller.
                                 */
-                               if (ifp->if_capabilities & IFCAP_TXCSUM) {
+                               if (if_getcapabilities(ifp) & IFCAP_TXCSUM) {
                                        if ((m->m_pkthdr.csum_flags &
                                            AXE_CSUM_FEATURES) != 0)
                                                hdr.len |= htole16(
@@ -1246,7 +1245,7 @@ tr_setup:
                if (nframes != 0) {
                        usbd_xfer_set_frames(xfer, nframes);
                        usbd_transfer_submit(xfer);
-                       ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+                       if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
                }
                return;
                /* NOTREACHED */
@@ -1255,7 +1254,7 @@ tr_setup:
                    usbd_errstr(error));
 
                if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
-               ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
 
                if (error != USB_ERR_CANCELLED) {
                        /* try to clear stall first */
@@ -1298,7 +1297,7 @@ static void
 axe_csum_cfg(struct usb_ether *ue)
 {
        struct axe_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint16_t csum1, csum2;
 
        sc = uether_getsc(ue);
@@ -1308,13 +1307,13 @@ axe_csum_cfg(struct usb_ether *ue)
                ifp = uether_getifp(ue);
                csum1 = 0;
                csum2 = 0;
-               if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
+               if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
                        csum1 |= AXE_TXCSUM_IP | AXE_TXCSUM_TCP |
                            AXE_TXCSUM_UDP;
                axe_cmd(sc, AXE_772B_CMD_WRITE_TXCSUM, csum2, csum1, NULL);
                csum1 = 0;
                csum2 = 0;
-               if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+               if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
                        csum1 |= AXE_RXCSUM_IP | AXE_RXCSUM_IPVE |
                            AXE_RXCSUM_TCP | AXE_RXCSUM_UDP | AXE_RXCSUM_ICMP |
                            AXE_RXCSUM_IGMP;
@@ -1326,12 +1325,12 @@ static void
 axe_init(struct usb_ether *ue)
 {
        struct axe_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
        uint16_t rxmode;
 
        AXE_LOCK_ASSERT(sc, MA_OWNED);
 
-       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
                return;
 
        /* Cancel pending I/O */
@@ -1341,11 +1340,11 @@ axe_init(struct usb_ether *ue)
 
        /* Set MAC address and transmitter IPG values. */
        if (AXE_IS_178_FAMILY(sc)) {
-               axe_cmd(sc, AXE_178_CMD_WRITE_NODEID, 0, 0, IF_LLADDR(ifp));
+               axe_cmd(sc, AXE_178_CMD_WRITE_NODEID, 0, 0, if_getlladdr(ifp));
                axe_cmd(sc, AXE_178_CMD_WRITE_IPG012, sc->sc_ipgs[2],
                    (sc->sc_ipgs[1] << 8) | (sc->sc_ipgs[0]), NULL);
        } else {
-               axe_cmd(sc, AXE_172_CMD_WRITE_NODEID, 0, 0, IF_LLADDR(ifp));
+               axe_cmd(sc, AXE_172_CMD_WRITE_NODEID, 0, 0, if_getlladdr(ifp));
                axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->sc_ipgs[0], NULL);
                axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->sc_ipgs[1], NULL);
                axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->sc_ipgs[2], NULL);
@@ -1354,7 +1353,7 @@ axe_init(struct usb_ether *ue)
        if (AXE_IS_178_FAMILY(sc)) {
                sc->sc_flags &= ~(AXE_FLAG_STD_FRAME | AXE_FLAG_CSUM_FRAME);
                if ((sc->sc_flags & AXE_FLAG_772B) != 0 &&
-                   (ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+                   (if_getcapenable(ifp) & IFCAP_RXCSUM) != 0) {
                        sc->sc_lenmask = AXE_CSUM_HDR_LEN_MASK;
                        sc->sc_flags |= AXE_FLAG_CSUM_FRAME;
                } else {
@@ -1388,7 +1387,7 @@ axe_init(struct usb_ether *ue)
                         * header size.
                         */
                        rxmode |= AXE_772B_RXCMD_HDR_TYPE_1;
-                       if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+                       if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
                                rxmode |= AXE_772B_RXCMD_IPHDR_ALIGN;
                } else {
                        /*
@@ -1402,10 +1401,10 @@ axe_init(struct usb_ether *ue)
        }
 
        /* If we want promiscuous mode, set the allframes bit. */
-       if (ifp->if_flags & IFF_PROMISC)
+       if (if_getflags(ifp) & IFF_PROMISC)
                rxmode |= AXE_RXCMD_PROMISC;
 
-       if (ifp->if_flags & IFF_BROADCAST)
+       if (if_getflags(ifp) & IFF_BROADCAST)
                rxmode |= AXE_RXCMD_BROADCAST;
 
        axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, rxmode, NULL);
@@ -1415,7 +1414,7 @@ axe_init(struct usb_ether *ue)
 
        usbd_xfer_set_stall(sc->sc_xfer[AXE_BULK_DT_WR]);
 
-       ifp->if_drv_flags |= IFF_DRV_RUNNING;
+       if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
        /* Switch to selected media. */
        axe_ifmedia_upd(ifp);
 }
@@ -1424,14 +1423,14 @@ static void
 axe_setpromisc(struct usb_ether *ue)
 {
        struct axe_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
        uint16_t rxmode;
 
        axe_cmd(sc, AXE_CMD_RXCTL_READ, 0, 0, &rxmode);
 
        rxmode = le16toh(rxmode);
 
-       if (ifp->if_flags & IFF_PROMISC) {
+       if (if_getflags(ifp) & IFF_PROMISC) {
                rxmode |= AXE_RXCMD_PROMISC;
        } else {
                rxmode &= ~AXE_RXCMD_PROMISC;
@@ -1446,11 +1445,11 @@ static void
 axe_stop(struct usb_ether *ue)
 {
        struct axe_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
 
        AXE_LOCK_ASSERT(sc, MA_OWNED);
 
-       ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+       if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
        sc->sc_flags &= ~AXE_FLAG_LINK;
 
        /*
@@ -1461,9 +1460,9 @@ axe_stop(struct usb_ether *ue)
 }
 
 static int
-axe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+axe_ioctl(if_t ifp, u_long cmd, caddr_t data)
 {
-       struct usb_ether *ue = ifp->if_softc;
+       struct usb_ether *ue = if_getsoftc(ifp);
        struct axe_softc *sc;
        struct ifreq *ifr;
        int error, mask, reinit;
@@ -1474,23 +1473,23 @@ axe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
        reinit = 0;
        if (cmd == SIOCSIFCAP) {
                AXE_LOCK(sc);
-               mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+               mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
                if ((mask & IFCAP_TXCSUM) != 0 &&
-                   (ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
-                       ifp->if_capenable ^= IFCAP_TXCSUM;
-                       if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
-                               ifp->if_hwassist |= AXE_CSUM_FEATURES;
+                   (if_getcapabilities(ifp) & IFCAP_TXCSUM) != 0) {
+                       if_togglecapenable(ifp, IFCAP_TXCSUM);
+                       if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
+                               if_sethwassistbits(ifp, AXE_CSUM_FEATURES, 0);
                        else
-                               ifp->if_hwassist &= ~AXE_CSUM_FEATURES;
+                               if_sethwassistbits(ifp, 0, AXE_CSUM_FEATURES);
                        reinit++;
                }
                if ((mask & IFCAP_RXCSUM) != 0 &&
-                   (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
-                       ifp->if_capenable ^= IFCAP_RXCSUM;
+                   (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+                       if_togglecapenable(ifp, IFCAP_RXCSUM);
                        reinit++;
                }
-               if (reinit > 0 && ifp->if_drv_flags & IFF_DRV_RUNNING)
-                       ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+               if (reinit > 0 && if_getdrvflags(ifp) & IFF_DRV_RUNNING)
+                       if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                else
                        reinit = 0;
                AXE_UNLOCK(sc);
diff --git a/sys/dev/usb/net/if_axge.c b/sys/dev/usb/net/if_axge.c
index b49feb1d09fc..cd01f949992b 100644
--- a/sys/dev/usb/net/if_axge.c
+++ b/sys/dev/usb/net/if_axge.c
@@ -130,9 +130,9 @@ static void axge_chip_init(struct axge_softc *);
 static void    axge_reset(struct axge_softc *);
 
 static int     axge_attach_post_sub(struct usb_ether *);
-static int     axge_ifmedia_upd(struct ifnet *);
-static void    axge_ifmedia_sts(struct ifnet *, struct ifmediareq *);
-static int     axge_ioctl(struct ifnet *, u_long, caddr_t);
+static int     axge_ifmedia_upd(if_t);
+static void    axge_ifmedia_sts(if_t, struct ifmediareq *);
+static int     axge_ioctl(if_t, u_long, caddr_t);
 static void    axge_rx_frame(struct usb_ether *, struct usb_page_cache *, int);
 static void    axge_rxeof(struct usb_ether *, struct usb_page_cache *,
                    unsigned, unsigned, uint32_t);
@@ -328,7 +328,7 @@ axge_miibus_statchg(device_t dev)
 {
        struct axge_softc *sc;
        struct mii_data *mii;
-       struct ifnet *ifp;
+       if_t ifp;
        uint8_t link_status, tmp[5];
        uint16_t val;
        int locked;
@@ -341,7 +341,7 @@ axge_miibus_statchg(device_t dev)
 
        ifp = uether_getifp(&sc->sc_ue);
        if (mii == NULL || ifp == NULL ||
-           (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+           (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
                goto done;
 
        sc->sc_flags &= ~AXGE_FLAG_LINK;
@@ -450,21 +450,20 @@ axge_attach_post(struct usb_ether *ue)
 static int
 axge_attach_post_sub(struct usb_ether *ue)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        int error;
 
        ifp = ue->ue_ifp;
-       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-       ifp->if_start = uether_start;
-       ifp->if_ioctl = axge_ioctl;
-       ifp->if_init = uether_init;
-       IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
-       ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
-       IFQ_SET_READY(&ifp->if_snd);
-
-       ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_TXCSUM | IFCAP_RXCSUM;
-       ifp->if_hwassist = AXGE_CSUM_FEATURES;
-       ifp->if_capenable = ifp->if_capabilities;
+       if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+       if_setstartfn(ifp, uether_start);
+       if_setioctlfn(ifp, axge_ioctl);
+       if_setinitfn(ifp, uether_init);
+       if_setsendqlen(ifp, ifqmaxlen);
+       if_setsendqready(ifp);
+
+       if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU | IFCAP_TXCSUM | 
IFCAP_RXCSUM, 0);
+       if_sethwassist(ifp, AXGE_CSUM_FEATURES);
+       if_setcapenable(ifp, if_getcapabilities(ifp));
 
        bus_topo_lock();
        error = mii_attach(ue->ue_dev, &ue->ue_miibus, ifp,
@@ -479,14 +478,14 @@ axge_attach_post_sub(struct usb_ether *ue)
  * Set media options.
  */
 static int
-axge_ifmedia_upd(struct ifnet *ifp)
+axge_ifmedia_upd(if_t ifp)
 {
        struct axge_softc *sc;
        struct mii_data *mii;
        struct mii_softc *miisc;
        int error;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        mii = GET_MII(sc);
        AXGE_LOCK_ASSERT(sc, MA_OWNED);
 
@@ -501,12 +500,12 @@ axge_ifmedia_upd(struct ifnet *ifp)
  * Report current media status.
  */
 static void
-axge_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+axge_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
 {
        struct axge_softc *sc;
        struct mii_data *mii;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        mii = GET_MII(sc);
        AXGE_LOCK(sc);
        mii_pollstat(mii);
@@ -655,7 +654,7 @@ static void
 axge_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
 {
        struct axge_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        struct usb_page_cache *pc;
        struct mbuf *m;
        struct axge_frame_txhdr txhdr;
@@ -666,12 +665,12 @@ axge_bulk_write_callback(struct usb_xfer *xfer, 
usb_error_t error)
 
        switch (USB_GET_STATE(xfer)) {
        case USB_ST_TRANSFERRED:
-               ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
                /* FALLTHROUGH */
        case USB_ST_SETUP:
 tr_setup:
                if ((sc->sc_flags & AXGE_FLAG_LINK) == 0 ||
-                   (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
+                   (if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0) {
                        /*
                         * Don't send anything if there is no link or
                         * controller is busy.
@@ -680,8 +679,8 @@ tr_setup:
                }
 
                for (nframes = 0; nframes < AXGE_N_FRAMES &&
-                   !IFQ_DRV_IS_EMPTY(&ifp->if_snd); nframes++) {
-                       IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+                   !if_sendq_empty(ifp); nframes++) {
+                       m = if_dequeue(ifp);
                        if (m == NULL)
                                break;
                        usbd_xfer_set_frame_offset(xfer, nframes * MCLBYTES,
@@ -689,7 +688,7 @@ tr_setup:
                        pc = usbd_xfer_get_frame(xfer, nframes);
                        txhdr.mss = 0;
                        txhdr.len = htole32(AXGE_TXBYTES(m->m_pkthdr.len));
-                       if ((ifp->if_capenable & IFCAP_TXCSUM) != 0 &&
+                       if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0 &&
                            (m->m_pkthdr.csum_flags & AXGE_CSUM_FEATURES) == 0)
                                txhdr.len |= htole32(AXGE_CSUM_DISABLE);
 
@@ -723,13 +722,13 @@ tr_setup:
                        if_inc_counter(ifp, IFCOUNTER_OPACKETS, nframes);
                        usbd_xfer_set_frames(xfer, nframes);
                        usbd_transfer_submit(xfer);
-                       ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+                       if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
                }
                return;
                /* NOTREACHED */
        default:
                if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
-               ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
 
                if (error != USB_ERR_CANCELLED) {
                        usbd_xfer_set_stall(xfer);
@@ -768,7 +767,7 @@ static void
 axge_rxfilter(struct usb_ether *ue)
 {
        struct axge_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint16_t rxmode;
        uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
 
@@ -785,10 +784,10 @@ axge_rxfilter(struct usb_ether *ue)
         * to worry about alignment.
         */
        rxmode = RCR_DROP_CRCERR | RCR_START;
-       if (ifp->if_flags & IFF_BROADCAST)
+       if (if_getflags(ifp) & IFF_BROADCAST)
                rxmode |= RCR_ACPT_BCAST;
-       if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
-               if (ifp->if_flags & IFF_PROMISC)
+       if (if_getflags(ifp) & (IFF_ALLMULTI | IFF_PROMISC)) {
+               if (if_getflags(ifp) & IFF_PROMISC)
                        rxmode |= RCR_PROMISC;
                rxmode |= RCR_ACPT_ALL_MCAST;
                axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR, rxmode);
@@ -819,13 +818,13 @@ static void
 axge_init(struct usb_ether *ue)
 {
        struct axge_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
 
        sc = uether_getsc(ue);
        ifp = uether_getifp(ue);
        AXGE_LOCK_ASSERT(sc, MA_OWNED);
 
-       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
                return;
 
        /*
@@ -837,7 +836,7 @@ axge_init(struct usb_ether *ue)
 
        /* Set MAC address. */
        axge_write_mem(sc, AXGE_ACCESS_MAC, ETHER_ADDR_LEN, AXGE_NIDR,
-           IF_LLADDR(ifp), ETHER_ADDR_LEN);
+           if_getlladdr(ifp), ETHER_ADDR_LEN);
 
        axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PWLLR, 0x34);
        axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PWLHR, 0x52);
@@ -864,7 +863,7 @@ axge_init(struct usb_ether *ue)
 
        usbd_xfer_set_stall(sc->sc_xfer[AXGE_BULK_DT_WR]);
 
-       ifp->if_drv_flags |= IFF_DRV_RUNNING;
+       if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
        /* Switch to selected media. */
        axge_ifmedia_upd(ifp);
 }
@@ -873,7 +872,7 @@ static void
 axge_stop(struct usb_ether *ue)
 {
        struct axge_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint16_t val;
 
        sc = uether_getsc(ue);
@@ -886,7 +885,7 @@ axge_stop(struct usb_ether *ue)
        axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_MSR, val);
 
        if (ifp != NULL)
-               ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+               if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
        sc->sc_flags &= ~AXGE_FLAG_LINK;
 
        /*
@@ -897,37 +896,37 @@ axge_stop(struct usb_ether *ue)
 }
 
 static int
-axge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+axge_ioctl(if_t ifp, u_long cmd, caddr_t data)
 {
        struct usb_ether *ue;
        struct axge_softc *sc;
        struct ifreq *ifr;
        int error, mask, reinit;
 
-       ue = ifp->if_softc;
+       ue = if_getsoftc(ifp);
        sc = uether_getsc(ue);
        ifr = (struct ifreq *)data;
        error = 0;
        reinit = 0;
        if (cmd == SIOCSIFCAP) {
                AXGE_LOCK(sc);
-               mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+               mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
                if ((mask & IFCAP_TXCSUM) != 0 &&
-                   (ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
-                       ifp->if_capenable ^= IFCAP_TXCSUM;
-                       if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
-                               ifp->if_hwassist |= AXGE_CSUM_FEATURES;
+                   (if_getcapabilities(ifp) & IFCAP_TXCSUM) != 0) {
+                       if_togglecapenable(ifp, IFCAP_TXCSUM);
+                       if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
+                               if_sethwassistbits(ifp, AXGE_CSUM_FEATURES, 0);
                        else
-                               ifp->if_hwassist &= ~AXGE_CSUM_FEATURES;
+                               if_sethwassistbits(ifp, 0, AXGE_CSUM_FEATURES);
                        reinit++;
                }
                if ((mask & IFCAP_RXCSUM) != 0 &&
-                   (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
-                       ifp->if_capenable ^= IFCAP_RXCSUM;
+                   (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+                       if_togglecapenable(ifp, IFCAP_RXCSUM);
                        reinit++;
                }
-               if (reinit > 0 && ifp->if_drv_flags & IFF_DRV_RUNNING)
-                       ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+               if (reinit > 0 && if_getdrvflags(ifp) & IFF_DRV_RUNNING)
+                       if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                else
                        reinit = 0;
                AXGE_UNLOCK(sc);
@@ -1000,7 +999,7 @@ static void
 axge_rxeof(struct usb_ether *ue, struct usb_page_cache *pc, unsigned offset,
     unsigned len, uint32_t status)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        struct mbuf *m;
 
        ifp = ue->ue_ifp;
@@ -1023,7 +1022,7 @@ axge_rxeof(struct usb_ether *ue, struct usb_page_cache 
*pc, unsigned offset,
 
        usbd_copy_out(pc, offset, mtod(m, uint8_t *), len);
 
-       if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+       if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0) {
                if ((status & AXGE_RX_L3_CSUM_ERR) == 0 &&
                    (status & AXGE_RX_L3_TYPE_MASK) == AXGE_RX_L3_TYPE_IPV4)
                        m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED |
@@ -1045,7 +1044,7 @@ static void
 axge_csum_cfg(struct usb_ether *ue)
 {
        struct axge_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint8_t csum;
 
        sc = uether_getsc(ue);
@@ -1053,12 +1052,12 @@ axge_csum_cfg(struct usb_ether *ue)
        ifp = uether_getifp(ue);
 
        csum = 0;
-       if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
+       if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
                csum |= CTCR_IP | CTCR_TCP | CTCR_UDP;
        axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CTCR, csum);
 
        csum = 0;
-       if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+       if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
                csum |= CRCR_IP | CRCR_TCP | CRCR_UDP;
        axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CRCR, csum);
 }
diff --git a/sys/dev/usb/net/if_cdce.c b/sys/dev/usb/net/if_cdce.c
index 3cad74a11022..2950fec8c618 100644
--- a/sys/dev/usb/net/if_cdce.c
+++ b/sys/dev/usb/net/if_cdce.c
@@ -112,9 +112,9 @@ static uether_fn_t cdce_start;
 static uether_fn_t cdce_setmulti;
 static uether_fn_t cdce_setpromisc;
 static int cdce_attach_post_sub(struct usb_ether *);
-static int cdce_ioctl(struct ifnet *, u_long, caddr_t);
-static int cdce_media_change_cb(struct ifnet *);
-static void cdce_media_status_cb(struct ifnet *, struct ifmediareq *);
+static int cdce_ioctl(if_t, u_long, caddr_t);
+static int cdce_media_change_cb(if_t);
+static void cdce_media_status_cb(if_t, struct ifmediareq *);
 
 static uint32_t        cdce_m_crc32(struct mbuf *, uint32_t, uint32_t);
 static void    cdce_set_filter(struct usb_ether *);
@@ -574,16 +574,15 @@ static int
 cdce_attach_post_sub(struct usb_ether *ue)
 {
        struct cdce_softc *sc = uether_getsc(ue);
-       struct ifnet *ifp = uether_getifp(ue);
+       if_t ifp = uether_getifp(ue);
 
        /* mostly copied from usb_ethernet.c */
-       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-       ifp->if_start = uether_start;
-       ifp->if_ioctl = cdce_ioctl;
-       ifp->if_init = uether_init;
-       IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
-       ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
-       IFQ_SET_READY(&ifp->if_snd);
+       if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+       if_setstartfn(ifp, uether_start);
+       if_setioctlfn(ifp, cdce_ioctl);
+       if_setinitfn(ifp, uether_init);
+       if_setsendqlen(ifp, ifqmaxlen);
+       if_setsendqready(ifp);
 
        if ((sc->sc_flags & CDCE_FLAG_VLAN) == CDCE_FLAG_VLAN)
                if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
@@ -811,9 +810,9 @@ cdce_start(struct usb_ether *ue)
 }
 
 static int
-cdce_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+cdce_ioctl(if_t ifp, u_long command, caddr_t data)
 {
-       struct usb_ether *ue = ifp->if_softc;
+       struct usb_ether *ue = if_getsoftc(ifp);
        struct cdce_softc *sc = uether_getsc(ue);
        struct ifreq *ifr = (struct ifreq *)data;
        int error;
@@ -846,14 +845,14 @@ cdce_free_queue(struct mbuf **ppm, uint8_t n)
 }
 
 static int
-cdce_media_change_cb(struct ifnet *ifp)
+cdce_media_change_cb(if_t ifp)
 {
 
        return (EOPNOTSUPP);
 }
 
 static void
-cdce_media_status_cb(struct ifnet *ifp, struct ifmediareq *ifmr)
+cdce_media_status_cb(if_t ifp, struct ifmediareq *ifmr)
 {
 
        if ((if_getflags(ifp) & IFF_UP) == 0)
@@ -862,14 +861,14 @@ cdce_media_status_cb(struct ifnet *ifp, struct ifmediareq 
*ifmr)
        ifmr->ifm_active = IFM_ETHER;
        ifmr->ifm_status = IFM_AVALID;
        ifmr->ifm_status |=
-           ifp->if_link_state == LINK_STATE_UP ? IFM_ACTIVE : 0;
+           if_getlinkstate(ifp) == LINK_STATE_UP ? IFM_ACTIVE : 0;
 }
 
 static void
 cdce_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
 {
        struct cdce_softc *sc = usbd_xfer_softc(xfer);
-       struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+       if_t ifp = uether_getifp(&sc->sc_ue);
        struct mbuf *m;
        struct mbuf *mt;
        uint32_t crc;
@@ -894,7 +893,7 @@ cdce_bulk_write_callback(struct usb_xfer *xfer, usb_error_t 
error)
        case USB_ST_SETUP:
 tr_setup:
                for (x = 0; x != CDCE_FRAMES_MAX; x++) {
-                       IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+                       m = if_dequeue(ifp);
*** 2573 LINES SKIPPED ***


Reply via email to