Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Mar 2023 16:24:14 GMT
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 935b194ded5d - main - Mechanically convert usb ethernet drivers to DrvAPI
Message-ID:  <202303061624.326GOEYA006731@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jhibbits:

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

commit 935b194ded5dc555fc14e3d2f4c72e58cff39566
Author:     Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2023-02-07 16:10:10 +0000
Commit:     Justin Hibbits <jhibbits@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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202303061624.326GOEYA006731>