From nobody Tue Feb 7 19:18:14 2023 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4PBCZt43HMz3nbG7; Tue, 7 Feb 2023 19:18:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PBCZt3RmLz4VVZ; Tue, 7 Feb 2023 19:18:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1675797494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t7TXYBzg1+vVBvF9CasLwAd8sXTcSk2Lw65KDG2vkWI=; b=lxcK4oK/k/7BGIrTpahGFclvxfSIjqJRh4pj/AYUBEEdjJTO0anWW5Va7UCPGUlE4l+CQX ztjFtaDH41QmhcRAUEaqZdGQlCJjov0waPmZVUUNV85Yo8Jh6bhro/xTYOt//J+DQHGGEB Yr+XmgF86xfTy7IMqJdTDAIW0KDyXa4mOprqvP5z5DNP5Debq5RUPShXMr1SKor03H1s26 mkpkusjhLepc/A9QZo52z01kKHtriNVSOET2qW5Nq5In7c3ysO97jKqdCSVfgJv2sjtB7i KtN8WEhHNrqvQ+x8fmUQCcZhBMJ3E8DmU4bE3XG3y/U26ToivfALu/eO+pIUbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1675797494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t7TXYBzg1+vVBvF9CasLwAd8sXTcSk2Lw65KDG2vkWI=; b=phFWbqcZ4ZIszeuQrMbBKQjg7xM1B4LCJwWi6usOBSOS+NSrQRYgp7EpT7yCLYuawAONzS wiS3BwxjiUMFaDSK2KeMcBz4Ugu04p8YoVf2opm2g/qRCwhFGaqs+A93TvOfWXZ9AvwLtl pL9SmizVTn0llsJR/E1wuWD5Oo9JHr0WNuQna48aCI6yD2qIBn/mKownPbGxRKKokDw0OP W5fPglpRpiGy8eTwKwbD4ysDY5H5aTOLa0Leoiw9OTK61lvkAvgO1yO+3Zhb5q2AoV5gY3 LALu7is1WFXOP7Tbu2y1ZGrLLBN9zCkqwwUQ/FzpMqOUp/l+OCO+jCRcvgohqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1675797494; a=rsa-sha256; cv=none; b=xoeQJA7MXtMxJxiybyAw4FyoZD8pDL5+pOU2qL7Rhs5y5ovt+v61MbNDL7mmmtroc4iJjs b290UHP8rmvtHDt/LtjDR6KnkbivD07vlfFUQTGQuPIroQ4qgELNt2gJBMIe7mzuq+A6Te mA+VdJ0VJAx3Ebv0PtR1xGvk+4v/pWEMYNcZcfBaA8/GqJQYoFgiMEFIQ2KMqLB6NTZQuH YzgnK1dNitTGH1azFkNtc/o3TJOrNcj9bxCwCNhLlW7sM48CPR/sMGu5zUVzq1bzrD/LxI /iXorYbrwQj/rRpTDtV0g1/NLenU3WR3UrrBOyR8GrGkyXcMplvDOzChUeQRvQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4PBCZt27ZdzSnX; Tue, 7 Feb 2023 19:18:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 317JIEIG049867; Tue, 7 Feb 2023 19:18:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 317JIEIK049866; Tue, 7 Feb 2023 19:18:14 GMT (envelope-from git) Date: Tue, 7 Feb 2023 19:18:14 GMT Message-Id: <202302071918.317JIEIK049866@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Justin Hibbits Subject: git: 67fd4c9d0785 - main - Mechanically convert oce(4) to IfAPI List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhibbits X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 67fd4c9d07853bf24978e57d665671bfae699fec Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by jhibbits: URL: https://cgit.FreeBSD.org/src/commit/?id=67fd4c9d07853bf24978e57d665671bfae699fec commit 67fd4c9d07853bf24978e57d665671bfae699fec Author: Justin Hibbits AuthorDate: 2022-08-19 15:51:49 +0000 Commit: Justin Hibbits CommitDate: 2023-02-07 19:16:17 +0000 Mechanically convert oce(4) to IfAPI Reviewed By: zlei Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D37829 --- sys/dev/oce/oce_hw.c | 2 +- sys/dev/oce/oce_if.c | 201 ++++++++++++++++++++++++------------------------- sys/dev/oce/oce_if.h | 10 +-- sys/dev/oce/oce_user.h | 2 +- 4 files changed, 107 insertions(+), 108 deletions(-) diff --git a/sys/dev/oce/oce_hw.c b/sys/dev/oce/oce_hw.c index aa187e76e86b..5159b7b64fce 100644 --- a/sys/dev/oce/oce_hw.c +++ b/sys/dev/oce/oce_hw.c @@ -547,7 +547,7 @@ oce_copy_maddr(void *arg, struct sockaddr_dl *sdl, u_int cnt) int oce_hw_update_multicast(POCE_SOFTC sc) { - struct ifnet *ifp = sc->ifp; + if_t ifp = sc->ifp; struct mbx_set_common_iface_multicast *req = NULL; OCE_DMA_MEM dma; int rc = 0; diff --git a/sys/dev/oce/oce_if.c b/sys/dev/oce/oce_if.c index 0fb749a5ee29..cc8cfc3eaa8c 100644 --- a/sys/dev/oce/oce_if.c +++ b/sys/dev/oce/oce_if.c @@ -137,10 +137,10 @@ static int oce_probe(device_t dev); static int oce_attach(device_t dev); static int oce_detach(device_t dev); static int oce_shutdown(device_t dev); -static int oce_ioctl(struct ifnet *ifp, u_long command, caddr_t data); +static int oce_ioctl(if_t ifp, u_long command, caddr_t data); static void oce_init(void *xsc); -static int oce_multiq_start(struct ifnet *ifp, struct mbuf *m); -static void oce_multiq_flush(struct ifnet *ifp); +static int oce_multiq_start(if_t ifp, struct mbuf *m); +static void oce_multiq_flush(if_t ifp); /* Driver interrupt routines protypes */ static void oce_intr(void *arg, int pending); @@ -150,14 +150,14 @@ static int oce_alloc_intr(POCE_SOFTC sc, int vector, void (*isr) (void *arg, int pending)); /* Media callbacks prototypes */ -static void oce_media_status(struct ifnet *ifp, struct ifmediareq *req); -static int oce_media_change(struct ifnet *ifp); +static void oce_media_status(if_t ifp, struct ifmediareq *req); +static int oce_media_change(if_t ifp); /* Transmit routines prototypes */ static int oce_tx(POCE_SOFTC sc, struct mbuf **mpp, int wq_index); static void oce_tx_restart(POCE_SOFTC sc, struct oce_wq *wq); static void oce_process_tx_completion(struct oce_wq *wq); -static int oce_multiq_transmit(struct ifnet *ifp, struct mbuf *m, +static int oce_multiq_transmit(if_t ifp, struct mbuf *m, struct oce_wq *wq); /* Receive routines prototypes */ @@ -172,11 +172,11 @@ static void oce_rx_mbuf_chain(struct oce_rq *rq, struct oce_common_cqe_info *cqe /* Helper function prototypes in this file */ static int oce_attach_ifp(POCE_SOFTC sc); -static void oce_add_vlan(void *arg, struct ifnet *ifp, uint16_t vtag); -static void oce_del_vlan(void *arg, struct ifnet *ifp, uint16_t vtag); +static void oce_add_vlan(void *arg, if_t ifp, uint16_t vtag); +static void oce_del_vlan(void *arg, if_t ifp, uint16_t vtag); static int oce_vid_config(POCE_SOFTC sc); static void oce_mac_addr_set(POCE_SOFTC sc); -static int oce_handle_passthrough(struct ifnet *ifp, caddr_t data); +static int oce_handle_passthrough(if_t ifp, caddr_t data); static void oce_local_timer(void *arg); static void oce_if_deactivate(POCE_SOFTC sc); static void oce_if_activate(POCE_SOFTC sc); @@ -460,10 +460,10 @@ oce_shutdown(device_t dev) } static int -oce_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +oce_ioctl(if_t ifp, u_long command, caddr_t data) { struct ifreq *ifr = (struct ifreq *)data; - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); struct ifi2creq i2c; uint8_t offset = 0; int rc = 0; @@ -478,21 +478,21 @@ oce_ioctl(struct ifnet *ifp, u_long command, caddr_t data) if (ifr->ifr_mtu > OCE_MAX_MTU) rc = EINVAL; else - ifp->if_mtu = ifr->ifr_mtu; + if_setmtu(ifp, ifr->ifr_mtu); break; case SIOCSIFFLAGS: - if (ifp->if_flags & IFF_UP) { - if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { - sc->ifp->if_drv_flags |= IFF_DRV_RUNNING; + if (if_getflags(ifp) & IFF_UP) { + if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) { + if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0); oce_init(sc); } device_printf(sc->dev, "Interface Up\n"); } else { LOCK(&sc->dev_lock); - sc->ifp->if_drv_flags &= - ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); + if_setdrvflagbits(sc->ifp, 0, + IFF_DRV_RUNNING | IFF_DRV_OACTIVE); oce_if_deactivate(sc); UNLOCK(&sc->dev_lock); @@ -500,10 +500,10 @@ oce_ioctl(struct ifnet *ifp, u_long command, caddr_t data) device_printf(sc->dev, "Interface Down\n"); } - if ((ifp->if_flags & IFF_PROMISC) && !sc->promisc) { + if ((if_getflags(ifp) & IFF_PROMISC) && !sc->promisc) { if (!oce_rxf_set_promiscuous(sc, (1 | (1 << 1)))) sc->promisc = TRUE; - } else if (!(ifp->if_flags & IFF_PROMISC) && sc->promisc) { + } else if (!(if_getflags(ifp) & IFF_PROMISC) && sc->promisc) { if (!oce_rxf_set_promiscuous(sc, 0)) sc->promisc = FALSE; } @@ -519,54 +519,54 @@ oce_ioctl(struct ifnet *ifp, u_long command, caddr_t data) break; case SIOCSIFCAP: - u = ifr->ifr_reqcap ^ ifp->if_capenable; + u = ifr->ifr_reqcap ^ if_getcapenable(ifp); if (u & IFCAP_TXCSUM) { - ifp->if_capenable ^= IFCAP_TXCSUM; - ifp->if_hwassist ^= (CSUM_TCP | CSUM_UDP | CSUM_IP); + if_togglecapenable(ifp, IFCAP_TXCSUM); + if_togglehwassist(ifp, (CSUM_TCP | CSUM_UDP | CSUM_IP)); - if (IFCAP_TSO & ifp->if_capenable && - !(IFCAP_TXCSUM & ifp->if_capenable)) { + if (IFCAP_TSO & if_getcapenable(ifp) && + !(IFCAP_TXCSUM & if_getcapenable(ifp))) { u &= ~IFCAP_TSO; - ifp->if_capenable &= ~IFCAP_TSO; - ifp->if_hwassist &= ~CSUM_TSO; + if_setcapenablebit(ifp, 0, IFCAP_TSO); + if_sethwassistbits(ifp, 0, CSUM_TSO); if_printf(ifp, "TSO disabled due to -txcsum.\n"); } } if (u & IFCAP_RXCSUM) - ifp->if_capenable ^= IFCAP_RXCSUM; + if_togglecapenable(ifp, IFCAP_RXCSUM); if (u & IFCAP_TSO4) { - ifp->if_capenable ^= IFCAP_TSO4; + if_togglecapenable(ifp, IFCAP_TSO4); - if (IFCAP_TSO & ifp->if_capenable) { - if (IFCAP_TXCSUM & ifp->if_capenable) - ifp->if_hwassist |= CSUM_TSO; + if (IFCAP_TSO & if_getcapenable(ifp)) { + if (IFCAP_TXCSUM & if_getcapenable(ifp)) + if_sethwassistbits(ifp, CSUM_TSO, 0); else { - ifp->if_capenable &= ~IFCAP_TSO; - ifp->if_hwassist &= ~CSUM_TSO; + if_setcapenablebit(ifp, 0, IFCAP_TSO); + if_sethwassistbits(ifp, 0, CSUM_TSO); if_printf(ifp, "Enable txcsum first.\n"); rc = EAGAIN; } } else - ifp->if_hwassist &= ~CSUM_TSO; + if_sethwassistbits(ifp, 0, CSUM_TSO); } if (u & IFCAP_VLAN_HWTAGGING) - ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; + if_togglecapenable(ifp, IFCAP_VLAN_HWTAGGING); if (u & IFCAP_VLAN_HWFILTER) { - ifp->if_capenable ^= IFCAP_VLAN_HWFILTER; + if_togglecapenable(ifp, IFCAP_VLAN_HWFILTER); oce_vid_config(sc); } #if defined(INET6) || defined(INET) if (u & IFCAP_LRO) { - ifp->if_capenable ^= IFCAP_LRO; + if_togglecapenable(ifp, IFCAP_LRO); if(sc->enable_hwlro) { - if(ifp->if_capenable & IFCAP_LRO) { + if(if_getcapenable(ifp) & IFCAP_LRO) { rc = oce_mbox_nic_set_iface_lro_config(sc, 1); }else { rc = oce_mbox_nic_set_iface_lro_config(sc, 0); @@ -629,7 +629,7 @@ oce_init(void *arg) LOCK(&sc->dev_lock); - if (sc->ifp->if_flags & IFF_UP) { + if (if_getflags(sc->ifp) & IFF_UP) { oce_if_deactivate(sc); oce_if_activate(sc); } @@ -639,9 +639,9 @@ oce_init(void *arg) } static int -oce_multiq_start(struct ifnet *ifp, struct mbuf *m) +oce_multiq_start(if_t ifp, struct mbuf *m) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); struct oce_wq *wq = NULL; int queue_index = 0; int status = 0; @@ -663,9 +663,9 @@ oce_multiq_start(struct ifnet *ifp, struct mbuf *m) } static void -oce_multiq_flush(struct ifnet *ifp) +oce_multiq_flush(if_t ifp) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); struct mbuf *m; int i = 0; @@ -895,9 +895,9 @@ oce_intr_free(POCE_SOFTC sc) ******************************************************************************/ static void -oce_media_status(struct ifnet *ifp, struct ifmediareq *req) +oce_media_status(if_t ifp, struct ifmediareq *req) { - POCE_SOFTC sc = (POCE_SOFTC) ifp->if_softc; + POCE_SOFTC sc = (POCE_SOFTC) if_getsoftc(ifp); req->ifm_status = IFM_AVALID; req->ifm_active = IFM_ETHER; @@ -945,7 +945,7 @@ oce_media_status(struct ifnet *ifp, struct ifmediareq *req) } int -oce_media_change(struct ifnet *ifp) +oce_media_change(if_t ifp) { return 0; } @@ -1248,9 +1248,9 @@ oce_process_tx_completion(struct oce_wq *wq) m_freem(m); pd->mbuf = NULL; - if (sc->ifp->if_drv_flags & IFF_DRV_OACTIVE) { + if (if_getdrvflags(sc->ifp) & IFF_DRV_OACTIVE) { if (wq->ring->num_used < (wq->ring->num_items / 2)) { - sc->ifp->if_drv_flags &= ~(IFF_DRV_OACTIVE); + if_setdrvflagbits(sc->ifp, 0, (IFF_DRV_OACTIVE)); oce_tx_restart(sc, wq); } } @@ -1260,7 +1260,7 @@ static void oce_tx_restart(POCE_SOFTC sc, struct oce_wq *wq) { - if ((sc->ifp->if_drv_flags & IFF_DRV_RUNNING) != IFF_DRV_RUNNING) + if ((if_getdrvflags(sc->ifp) & IFF_DRV_RUNNING) != IFF_DRV_RUNNING) return; if (!drbr_empty(sc->ifp, wq->br)) @@ -1339,7 +1339,7 @@ oce_tx_task(void *arg, int npending) { struct oce_wq *wq = arg; POCE_SOFTC sc = wq->parent; - struct ifnet *ifp = sc->ifp; + if_t ifp = sc->ifp; int rc = 0; LOCK(&wq->tx_lock); @@ -1352,14 +1352,14 @@ oce_tx_task(void *arg, int npending) } void -oce_start(struct ifnet *ifp) +oce_start(if_t ifp) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); struct mbuf *m; int rc = 0; int def_q = 0; /* Defualt tx queue is 0*/ - if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) return; @@ -1367,7 +1367,7 @@ oce_start(struct ifnet *ifp) return; while (true) { - IF_DEQUEUE(&sc->ifp->if_snd, m); + m = if_dequeue(sc->ifp); if (m == NULL) break; @@ -1377,8 +1377,8 @@ oce_start(struct ifnet *ifp) if (rc) { if (m != NULL) { sc->wq[def_q]->tx_stats.tx_stops ++; - ifp->if_drv_flags |= IFF_DRV_OACTIVE; - IFQ_DRV_PREPEND(&ifp->if_snd, m); + if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0); + if_sendq_prepend(ifp, m); m = NULL; } break; @@ -1426,9 +1426,9 @@ oce_wq_handler(void *arg) } static int -oce_multiq_transmit(struct ifnet *ifp, struct mbuf *m, struct oce_wq *wq) +oce_multiq_transmit(if_t ifp, struct mbuf *m, struct oce_wq *wq) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); int status = 0, queue_index = 0; struct mbuf *next = NULL; struct buf_ring *br = NULL; @@ -1436,7 +1436,7 @@ oce_multiq_transmit(struct ifnet *ifp, struct mbuf *m, struct oce_wq *wq) br = wq->br; queue_index = wq->queue_index; - if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != IFF_DRV_RUNNING) { if (m != NULL) status = drbr_enqueue(ifp, br, m); @@ -1454,7 +1454,7 @@ oce_multiq_transmit(struct ifnet *ifp, struct mbuf *m, struct oce_wq *wq) } else { drbr_putback(ifp, br, next); wq->tx_stats.tx_stops ++; - ifp->if_drv_flags |= IFF_DRV_OACTIVE; + if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0); } break; } @@ -1645,7 +1645,7 @@ oce_rx_lro(struct oce_rq *rq, struct nic_hwlro_singleton_cqe *cqe, struct nic_hw } if_inc_counter(sc->ifp, IFCOUNTER_IPACKETS, 1); - (*sc->ifp->if_input) (sc->ifp, m); + if_input(sc->ifp, m); /* Update rx stats per queue */ rq->rx_stats.rx_pkts++; @@ -1737,7 +1737,7 @@ oce_rx(struct oce_rq *rq, struct oce_nic_rx_cqe *cqe) } #endif - (*sc->ifp->if_input) (sc->ifp, m); + if_input(sc->ifp, m); #if defined(INET6) || defined(INET) post_done: #endif @@ -2111,42 +2111,41 @@ oce_attach_ifp(POCE_SOFTC sc) ifmedia_add(&sc->media, IFM_ETHER | IFM_AUTO, 0, NULL); ifmedia_set(&sc->media, IFM_ETHER | IFM_AUTO); - sc->ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST | IFF_KNOWSEPOCH; - sc->ifp->if_ioctl = oce_ioctl; - sc->ifp->if_start = oce_start; - sc->ifp->if_init = oce_init; - sc->ifp->if_mtu = ETHERMTU; - sc->ifp->if_softc = sc; - sc->ifp->if_transmit = oce_multiq_start; - sc->ifp->if_qflush = oce_multiq_flush; + if_setflags(sc->ifp, IFF_BROADCAST | IFF_MULTICAST | IFF_KNOWSEPOCH); + if_setioctlfn(sc->ifp, oce_ioctl); + if_setstartfn(sc->ifp, oce_start); + if_setinitfn(sc->ifp, oce_init); + if_setmtu(sc->ifp, ETHERMTU); + if_setsoftc(sc->ifp, sc); + if_settransmitfn(sc->ifp, oce_multiq_start); + if_setqflushfn(sc->ifp, oce_multiq_flush); if_initname(sc->ifp, device_get_name(sc->dev), device_get_unit(sc->dev)); - sc->ifp->if_snd.ifq_drv_maxlen = OCE_MAX_TX_DESC - 1; - IFQ_SET_MAXLEN(&sc->ifp->if_snd, sc->ifp->if_snd.ifq_drv_maxlen); - IFQ_SET_READY(&sc->ifp->if_snd); + if_setsendqlen(sc->ifp, OCE_MAX_TX_DESC - 1); + if_setsendqready(sc->ifp); - sc->ifp->if_hwassist = OCE_IF_HWASSIST; - sc->ifp->if_hwassist |= CSUM_TSO; - sc->ifp->if_hwassist |= (CSUM_IP | CSUM_TCP | CSUM_UDP); + if_sethwassist(sc->ifp, OCE_IF_HWASSIST); + if_sethwassistbits(sc->ifp, CSUM_TSO, 0); + if_sethwassistbits(sc->ifp, (CSUM_IP | CSUM_TCP | CSUM_UDP), 0); - sc->ifp->if_capabilities = OCE_IF_CAPABILITIES; - sc->ifp->if_capabilities |= IFCAP_HWCSUM; - sc->ifp->if_capabilities |= IFCAP_VLAN_HWFILTER; + if_setcapabilities(sc->ifp, OCE_IF_CAPABILITIES); + if_setcapabilitiesbit(sc->ifp, IFCAP_HWCSUM, 0); + if_setcapabilitiesbit(sc->ifp, IFCAP_VLAN_HWFILTER, 0); #if defined(INET6) || defined(INET) - sc->ifp->if_capabilities |= IFCAP_TSO; - sc->ifp->if_capabilities |= IFCAP_LRO; - sc->ifp->if_capabilities |= IFCAP_VLAN_HWTSO; + if_setcapabilitiesbit(sc->ifp, IFCAP_TSO, 0); + if_setcapabilitiesbit(sc->ifp, IFCAP_LRO, 0); + if_setcapabilitiesbit(sc->ifp, IFCAP_VLAN_HWTSO, 0); #endif - sc->ifp->if_capenable = sc->ifp->if_capabilities; - sc->ifp->if_baudrate = IF_Gbps(10); + if_setcapenable(sc->ifp, if_getcapabilities(sc->ifp)); + if_setbaudrate(sc->ifp, IF_Gbps(10)); - sc->ifp->if_hw_tsomax = 65536 - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN); - sc->ifp->if_hw_tsomaxsegcount = OCE_MAX_TX_ELEMENTS; - sc->ifp->if_hw_tsomaxsegsize = 4096; + if_sethwtsomax(sc->ifp, 65536 - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN)); + if_sethwtsomaxsegcount(sc->ifp, OCE_MAX_TX_ELEMENTS); + if_sethwtsomaxsegsize(sc->ifp, 4096); ether_ifattach(sc->ifp, sc->macaddr.mac_addr); @@ -2154,11 +2153,11 @@ oce_attach_ifp(POCE_SOFTC sc) } static void -oce_add_vlan(void *arg, struct ifnet *ifp, uint16_t vtag) +oce_add_vlan(void *arg, if_t ifp, uint16_t vtag) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); - if (ifp->if_softc != arg) + if (if_getsoftc(ifp) != arg) return; if ((vtag == 0) || (vtag > 4095)) return; @@ -2170,11 +2169,11 @@ oce_add_vlan(void *arg, struct ifnet *ifp, uint16_t vtag) } static void -oce_del_vlan(void *arg, struct ifnet *ifp, uint16_t vtag) +oce_del_vlan(void *arg, if_t ifp, uint16_t vtag) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); - if (ifp->if_softc != arg) + if (if_getsoftc(ifp) != arg) return; if ((vtag == 0) || (vtag > 4095)) return; @@ -2196,7 +2195,7 @@ oce_vid_config(POCE_SOFTC sc) int status = 0; if ((sc->vlans_added <= MAX_VLANFILTER_SIZE) && - (sc->ifp->if_capenable & IFCAP_VLAN_HWFILTER)) { + (if_getcapenable(sc->ifp) & IFCAP_VLAN_HWFILTER)) { for (i = 0; i < MAX_VLANS; i++) { if (sc->vlan_tag[i]) { vtags[ntags].vtag = i; @@ -2218,16 +2217,16 @@ oce_mac_addr_set(POCE_SOFTC sc) uint32_t old_pmac_id = sc->pmac_id; int status = 0; - status = bcmp((IF_LLADDR(sc->ifp)), sc->macaddr.mac_addr, + status = bcmp((if_getlladdr(sc->ifp)), sc->macaddr.mac_addr, sc->macaddr.size_of_struct); if (!status) return; - status = oce_mbox_macaddr_add(sc, (uint8_t *)(IF_LLADDR(sc->ifp)), + status = oce_mbox_macaddr_add(sc, (uint8_t *)(if_getlladdr(sc->ifp)), sc->if_id, &sc->pmac_id); if (!status) { status = oce_mbox_macaddr_del(sc, sc->if_id, old_pmac_id); - bcopy((IF_LLADDR(sc->ifp)), sc->macaddr.mac_addr, + bcopy((if_getlladdr(sc->ifp)), sc->macaddr.mac_addr, sc->macaddr.size_of_struct); } if (status) @@ -2236,9 +2235,9 @@ oce_mac_addr_set(POCE_SOFTC sc) } static int -oce_handle_passthrough(struct ifnet *ifp, caddr_t data) +oce_handle_passthrough(if_t ifp, caddr_t data) { - POCE_SOFTC sc = ifp->if_softc; + POCE_SOFTC sc = if_getsoftc(ifp); struct ifreq *ifr = (struct ifreq *)data; int rc = ENXIO; char cookie[32] = {0}; @@ -2516,7 +2515,7 @@ oce_if_deactivate(POCE_SOFTC sc) struct oce_wq *wq; struct oce_eq *eq; - sc->ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); + if_setdrvflagbits(sc->ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)); oce_tx_compl_clean(sc); @@ -2563,7 +2562,7 @@ oce_if_activate(POCE_SOFTC sc) struct oce_wq *wq; int i, rc = 0; - sc->ifp->if_drv_flags |= IFF_DRV_RUNNING; + if_setdrvflagbits(sc->ifp, IFF_DRV_RUNNING , 0); oce_hw_intr_disable(sc); diff --git a/sys/dev/oce/oce_if.h b/sys/dev/oce/oce_if.h index c7386aab68f8..6c24bc7d0134 100644 --- a/sys/dev/oce/oce_if.h +++ b/sys/dev/oce/oce_if.h @@ -818,7 +818,7 @@ typedef struct oce_softc { int intr_count; int roce_intr_count; - struct ifnet *ifp; + if_t ifp; struct ifmedia media; uint8_t link_status; @@ -1080,7 +1080,7 @@ uint16_t oce_mq_handler(void *arg); * Transmit functions ************************************************************/ uint16_t oce_wq_handler(void *arg); -void oce_start(struct ifnet *ifp); +void oce_start(if_t ifp); void oce_tx_task(void *arg, int npending); /************************************************************ @@ -1129,9 +1129,9 @@ extern uint32_t oce_rq_buf_size; #define ADDR_HI(x) ((uint32_t)((uint64_t)(x) >> 32)) #define ADDR_LO(x) ((uint32_t)((uint64_t)(x) & 0xffffffff)); -#define IF_LRO_ENABLED(sc) (((sc)->ifp->if_capenable & IFCAP_LRO) ? 1:0) -#define IF_LSO_ENABLED(sc) (((sc)->ifp->if_capenable & IFCAP_TSO4) ? 1:0) -#define IF_CSUM_ENABLED(sc) (((sc)->ifp->if_capenable & IFCAP_HWCSUM) ? 1:0) +#define IF_LRO_ENABLED(sc) ((if_getcapenable((sc)->ifp) & IFCAP_LRO) ? 1:0) +#define IF_LSO_ENABLED(sc) ((if_getcapenable((sc)->ifp) & IFCAP_TSO4) ? 1:0) +#define IF_CSUM_ENABLED(sc) ((if_getcapenable((sc)->ifp) & IFCAP_HWCSUM) ? 1:0) #define OCE_LOG2(x) (oce_highbit(x)) static inline uint32_t oce_highbit(uint32_t x) diff --git a/sys/dev/oce/oce_user.h b/sys/dev/oce/oce_user.h index b38665898270..46d68bb1b64e 100644 --- a/sys/dev/oce/oce_user.h +++ b/sys/dev/oce/oce_user.h @@ -54,7 +54,7 @@ enum oce_interrupt_mode { struct oce_dev_info { device_t dev; - struct ifnet *ifp; + if_t ifp; struct oce_softc *softc; bus_space_handle_t db_bhandle;