From nobody Fri Jan 30 10:01:59 2026 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 4f2Wkv5LK5z6R5q3 for ; Fri, 30 Jan 2026 10:01:59 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f2Wkv1mLBz3LX8 for ; Fri, 30 Jan 2026 10:01:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769767319; 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=8mrRYBcyXufyUrN3MFNH0dR53IyaBEWNTUoB8FF0IJQ=; b=OR0ezySrXZPo2lmG6AlFXhyPWNpvyxTsoDnzohbLJDTPlTDJmXf0udlJvIyFuEsl3Wk1/T G+dogNmGwo21rlCMNZHVYDHuLNXcVI6jNCrPpvDDWn9gecmuP8b1C9ytCJqOI1yN4plwe5 vsNbxDXallYPZhLk3vlvuYo53A5Krm3YMH87ZSxM0tYa5Xk1oRlE0O2CQZXgwXQXAgatv/ goT5/HCIYud3dmJFHck70umRQ4aZgoNOSuLzJDPUxK1qEAkHQrxxvSBd++jjgpq0ESXPtO XUtBlPr2QsYZpk8QGieXNquLo+vpUREEzFEaLm4QvMzmvgecA2Pzl/pdlB+4EQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769767319; a=rsa-sha256; cv=none; b=tP+ftxLkeki5yhmUAB2Cq57C6HTCo0yOhZGcNMKHNVPIpXTerJxqGducxseulCXQJL8Fjf v3Oz4vNND14pQAGwfvMuX7Ifsuo0frcKaJ/pBIQrPqHngB4y5o9KGUmmodWDiz2j+bWaXb NCXYuq6hLVwrlmaMRXXGdszCdjkOZ+vDeS2pgg6KUJ5uElyHrFggcqfMxZ7LqQ1+SEhC0j Fx22IvUM7rCWvhfq3sAnzM5mi3KqCjAsZTb6Cvkp5Kjl5QVtzARxOEJs2eU/DrBMZwjLfd 0T3ly9OBs6Tgp3HR516zdz7NKI35n/u07+Cq6YooG2CgRO/bnv2IUnqDgvUtDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769767319; 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=8mrRYBcyXufyUrN3MFNH0dR53IyaBEWNTUoB8FF0IJQ=; b=kg6RfsYTxQujjdRbFgrSAk5KXH6yKWOr0mBtoFEEdBO6krTjMRhNMI470HD1jfpht7Mkqz rbbSvzhhNvfGVC8mTns+Ysg8ztBXecPs519i/MsIhp3REm5+9IhUI1955epoYhZ84V1TPD tUDaTL9DSoSYXRNn5YzmvR6GrYgm/aTbESW2HxRhKniYlgPjHkI8sOTbtgoWBcODXeCUWT QzAyI2R9tUTIf0hXjI1ew5PANsPIhSIJQsk6lB0VMObJtCPlyjvY4AE2ftYXTqCGtCnsu9 bf0XK7Sg9nKHI6UhRYDJDzab4uPjPoHMNiYNEFzbYQTk+PEKwSqvGV3tI8F73A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f2Wkv0tmFz1Hbm for ; Fri, 30 Jan 2026 10:01:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37486 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 30 Jan 2026 10:01:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Michael Tuexen Subject: git: 33596d92555e - main - dpaa2: add support for several interface counters 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: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 33596d92555e5b1632fca14eb9af295e4b8f751c Auto-Submitted: auto-generated Date: Fri, 30 Jan 2026 10:01:59 +0000 Message-Id: <697c8197.37486.13906707@gitrepo.freebsd.org> The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=33596d92555e5b1632fca14eb9af295e4b8f751c commit 33596d92555e5b1632fca14eb9af295e4b8f751c Author: Michael Tuexen AuthorDate: 2026-01-30 09:58:57 +0000 Commit: Michael Tuexen CommitDate: 2026-01-30 09:58:57 +0000 dpaa2: add support for several interface counters Add support for IFCOUNTER_IPACKETS, IFCOUNTER_OPACKETS, IFCOUNTER_OBYTES, IFCOUNTER_OMCASTS, IFCOUNTER_OERRORS, and IFCOUNTER_OQDROPS. This allows tools like systat to report the incoming and outgoing bandwidth. Reviewed by: dsl, Timo Völker MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54893 --- sys/dev/dpaa2/dpaa2_ni.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sys/dev/dpaa2/dpaa2_ni.c b/sys/dev/dpaa2/dpaa2_ni.c index 5f796e6e472b..c72e68b8a62f 100644 --- a/sys/dev/dpaa2/dpaa2_ni.c +++ b/sys/dev/dpaa2/dpaa2_ni.c @@ -2532,6 +2532,7 @@ dpaa2_ni_transmit(if_t ifp, struct mbuf *m) ch = sc->channels[chidx]; error = buf_ring_enqueue(ch->xmit_br, m); if (__predict_false(error != 0)) { + if_inc_counter(ifp, IFCOUNTER_OQDROPS, 1); m_freem(m); } else { taskqueue_enqueue(ch->cleanup_tq, &ch->cleanup_task); @@ -2943,6 +2944,8 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, bus_dma_segment_t segs[DPAA2_TX_SEGLIMIT]; int rc, nsegs; int error; + int len; + bool mcast; mtx_assert(&tx->lock, MA_NOTOWNED); mtx_lock(&tx->lock); @@ -2957,6 +2960,8 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, buf->m = m; sgt = buf->sgt; } + len = m->m_pkthdr.len; + mcast = (m->m_flags & M_MCAST) != 0; #if defined(INVARIANTS) struct dpaa2_ni_tx_ring *btx = (struct dpaa2_ni_tx_ring *)buf->opt; @@ -2974,6 +2979,7 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, if (md == NULL) { device_printf(dev, "%s: m_collapse() failed\n", __func__); fq->chan->tx_dropped++; + if_inc_counter(sc->ifp, IFCOUNTER_OERRORS, 1); goto err; } @@ -2984,6 +2990,7 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, device_printf(dev, "%s: bus_dmamap_load_mbuf_sg() " "failed: error=%d\n", __func__, error); fq->chan->tx_dropped++; + if_inc_counter(sc->ifp, IFCOUNTER_OERRORS, 1); goto err; } } @@ -2993,6 +3000,7 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, device_printf(dev, "%s: failed to build frame descriptor: " "error=%d\n", __func__, error); fq->chan->tx_dropped++; + if_inc_counter(sc->ifp, IFCOUNTER_OERRORS, 1); goto err_unload; } @@ -3010,8 +3018,13 @@ dpaa2_ni_tx(struct dpaa2_ni_softc *sc, struct dpaa2_channel *ch, if (rc != 1) { fq->chan->tx_dropped++; + if_inc_counter(sc->ifp, IFCOUNTER_OERRORS, 1); goto err_unload; } else { + if (mcast) + if_inc_counter(sc->ifp, IFCOUNTER_OMCASTS, 1); + if_inc_counter(sc->ifp, IFCOUNTER_OPACKETS, 1); + if_inc_counter(sc->ifp, IFCOUNTER_OBYTES, len); fq->chan->tx_frames++; } return; @@ -3190,6 +3203,7 @@ dpaa2_ni_rx(struct dpaa2_channel *ch, struct dpaa2_ni_fq *fq, struct dpaa2_fd *f m->m_pkthdr.rcvif = sc->ifp; m->m_pkthdr.flowid = fq->fqid; M_HASHTYPE_SET(m, M_HASHTYPE_OPAQUE); + if_inc_counter(sc->ifp, IFCOUNTER_IPACKETS, 1); if (ctx->head == NULL) { KASSERT(ctx->tail == NULL, ("%s: tail already given?", __func__));