From owner-svn-src-head@FreeBSD.ORG Sat May 23 19:14:20 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE4301065674; Sat, 23 May 2009 19:14:20 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B378D8FC0C; Sat, 23 May 2009 19:14:20 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4NJEKd9064440; Sat, 23 May 2009 19:14:20 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4NJEKMZ064439; Sat, 23 May 2009 19:14:20 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200905231914.n4NJEKMZ064439@svn.freebsd.org> From: Sam Leffler Date: Sat, 23 May 2009 19:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192660 - head/sys/arm/xscale/ixp425 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 May 2009 19:14:21 -0000 Author: sam Date: Sat May 23 19:14:20 2009 New Revision: 192660 URL: http://svn.freebsd.org/changeset/base/192660 Log: accumulate npe statistics and expose them through dev.npe.X.stats Modified: head/sys/arm/xscale/ixp425/if_npe.c Modified: head/sys/arm/xscale/ixp425/if_npe.c ============================================================================== --- head/sys/arm/xscale/ixp425/if_npe.c Sat May 23 18:44:26 2009 (r192659) +++ head/sys/arm/xscale/ixp425/if_npe.c Sat May 23 19:14:20 2009 (r192660) @@ -143,6 +143,7 @@ struct npe_softc { struct npestats *sc_stats; bus_dmamap_t sc_stats_map; bus_addr_t sc_stats_phys; /* phys addr of sc_stats */ + struct npestats sc_totals; /* accumulated sc_stats */ }; /* @@ -374,6 +375,8 @@ npe_attach(device_t dev) CTLFLAG_RW, &sc->sc_debug, 0, "control debugging printfs"); SYSCTL_ADD_INT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "tickinterval", CTLFLAG_RW, &sc->sc_tickinterval, 0, "periodic work frequency"); + SYSCTL_ADD_STRUCT(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, "stats", + CTLFLAG_RD, &sc->sc_totals, npestats, "onboard stats"); ether_ifattach(ifp, eaddr); return 0; @@ -867,12 +870,24 @@ npe_ifmedia_status(struct ifnet *ifp, st static void npe_addstats(struct npe_softc *sc) { -#define MIBADD(x) sc->mibdata.x += be32toh(ns->x) +#define NPEADD(x) sc->sc_totals.x += be32toh(ns->x) +#define MIBADD(x) do { sc->mibdata.x += be32toh(ns->x); NPEADD(x); } while (0) struct ifnet *ifp = sc->sc_ifp; struct npestats *ns = sc->sc_stats; MIBADD(dot3StatsAlignmentErrors); MIBADD(dot3StatsFCSErrors); + MIBADD(dot3StatsInternalMacReceiveErrors); + NPEADD(RxOverrunDiscards); + NPEADD(RxLearnedEntryDiscards); + NPEADD(RxLargeFramesDiscards); + NPEADD(RxSTPBlockedDiscards); + NPEADD(RxVLANTypeFilterDiscards); + NPEADD(RxVLANIdFilterDiscards); + NPEADD(RxInvalidSourceDiscards); + NPEADD(RxBlackListDiscards); + NPEADD(RxWhiteListDiscards); + NPEADD(RxUnderflowEntryDiscards); MIBADD(dot3StatsSingleCollisionFrames); MIBADD(dot3StatsMultipleCollisionFrames); MIBADD(dot3StatsDeferredTransmissions); @@ -880,10 +895,12 @@ npe_addstats(struct npe_softc *sc) MIBADD(dot3StatsExcessiveCollisions); MIBADD(dot3StatsInternalMacTransmitErrors); MIBADD(dot3StatsCarrierSenseErrors); + NPEADD(TxLargeFrameDiscards); + NPEADD(TxVLANIdFilterDiscards); + sc->mibdata.dot3StatsFrameTooLongs += be32toh(ns->RxLargeFramesDiscards) + be32toh(ns->TxLargeFrameDiscards); - MIBADD(dot3StatsInternalMacReceiveErrors); sc->mibdata.dot3StatsMissedFrames += be32toh(ns->RxOverrunDiscards) + be32toh(ns->RxUnderflowEntryDiscards); @@ -902,6 +919,7 @@ npe_addstats(struct npe_softc *sc) be32toh(ns->dot3StatsSingleCollisionFrames) + be32toh(ns->dot3StatsMultipleCollisionFrames) ; +#undef NPEADD #undef MIBADD }