From owner-svn-src-projects@FreeBSD.ORG Wed Mar 25 16:40:12 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CE8A3BE2; Wed, 25 Mar 2015 16:40:12 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AEA05FB6; Wed, 25 Mar 2015 16:40:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t2PGeCs1071340; Wed, 25 Mar 2015 16:40:12 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t2PGe9HY071325; Wed, 25 Mar 2015 16:40:09 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201503251640.t2PGe9HY071325@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 25 Mar 2015 16:40:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r280625 - in projects/ifnet/sys: dev/bge dev/e1000 dev/msk dev/virtio/network dev/xl net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Mar 2015 16:40:13 -0000 Author: glebius Date: Wed Mar 25 16:40:08 2015 New Revision: 280625 URL: https://svnweb.freebsd.org/changeset/base/280625 Log: In the new ifnet world order, drivers are responsible to update their IFCOUNTER_IBYTES. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/bge/if_bge.c projects/ifnet/sys/dev/e1000/if_igb.c projects/ifnet/sys/dev/msk/if_msk.c projects/ifnet/sys/dev/virtio/network/if_vtnet.c projects/ifnet/sys/dev/xl/if_xl.c projects/ifnet/sys/net/if.h projects/ifnet/sys/net/if_ethersubr.c projects/ifnet/sys/net/if_vlan.c Modified: projects/ifnet/sys/dev/bge/if_bge.c ============================================================================== --- projects/ifnet/sys/dev/bge/if_bge.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/dev/bge/if_bge.c Wed Mar 25 16:40:08 2015 (r280625) @@ -4378,7 +4378,6 @@ bge_rxeof(struct bge_softc *sc, uint16_t BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT); } - if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); #ifndef __NO_STRICT_ALIGNMENT /* * For architectures with strict alignment we must make sure @@ -4392,6 +4391,8 @@ bge_rxeof(struct bge_softc *sc, uint16_t #endif m->m_pkthdr.len = m->m_len = cur_rx->bge_len - ETHER_CRC_LEN; m->m_pkthdr.rcvif = ifp; + if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); + if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); if (sc->bge_capenable & IFCAP_RXCSUM) bge_rxcsum(sc, cur_rx, m); Modified: projects/ifnet/sys/dev/e1000/if_igb.c ============================================================================== --- projects/ifnet/sys/dev/e1000/if_igb.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/dev/e1000/if_igb.c Wed Mar 25 16:40:08 2015 (r280625) @@ -4824,6 +4824,8 @@ igb_rxeof(struct igb_queue *que, int cou rxr->packets++; rxr->bytes += rxr->fmp->m_pkthdr.len; rxr->rx_bytes += rxr->fmp->m_pkthdr.len; + if_inc_counter(ifp, IFCOUNTER_IBYTES, + rxr->fmp->m_pkthdr.len); if ((adapter->if_capenable & IFCAP_RXCSUM) != 0) igb_rx_checksum(staterr, rxr->fmp, ptype); Modified: projects/ifnet/sys/dev/msk/if_msk.c ============================================================================== --- projects/ifnet/sys/dev/msk/if_msk.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/dev/msk/if_msk.c Wed Mar 25 16:40:08 2015 (r280625) @@ -3209,6 +3209,7 @@ msk_rxeof(struct msk_if_softc *sc_if, ui msk_fixup_rx(m); #endif if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); + if_inc_counter(ifp, IFCOUNTER_IBYTES, len); if ((sc_if->msk_capenable & IFCAP_RXCSUM) != 0) msk_rxcsum(sc_if, control, m); /* Check for VLAN tagged packets. */ Modified: projects/ifnet/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- projects/ifnet/sys/dev/virtio/network/if_vtnet.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/dev/virtio/network/if_vtnet.c Wed Mar 25 16:40:08 2015 (r280625) @@ -2466,6 +2466,8 @@ vtnet_get_counter(if_t ifp, ift_counter switch (cnt) { case IFCOUNTER_IPACKETS: return (rxaccum.vrxs_ipackets); + case IFCOUNTER_IBYTES: + return (rxaccum.vrxs_ibytes); case IFCOUNTER_IQDROPS: return (rxaccum.vrxs_iqdrops); case IFCOUNTER_IERRORS: Modified: projects/ifnet/sys/dev/xl/if_xl.c ============================================================================== --- projects/ifnet/sys/dev/xl/if_xl.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/dev/xl/if_xl.c Wed Mar 25 16:40:08 2015 (r280625) @@ -1899,9 +1899,10 @@ again: bus_dmamap_sync(sc->xl_ldata.xl_rx_tag, sc->xl_ldata.xl_rx_dmamap, BUS_DMASYNC_PREWRITE); - if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); m->m_pkthdr.rcvif = ifp; m->m_pkthdr.len = m->m_len = total_len; + if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1); + if_inc_counter(ifp, IFCOUNTER_IBYTES, total_len); if (sc->xl_capenable & IFCAP_RXCSUM) { /* Do IP checksum checking. */ Modified: projects/ifnet/sys/net/if.h ============================================================================== --- projects/ifnet/sys/net/if.h Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/net/if.h Wed Mar 25 16:40:08 2015 (r280625) @@ -232,7 +232,6 @@ enum { #define IFCAP_NETMAP 0x100000 /* netmap mode supported/enabled */ #define IFCAP_RXCSUM_IPV6 0x200000 /* can offload checksum on IPv6 RX */ #define IFCAP_TXCSUM_IPV6 0x400000 /* can offload checksum on IPv6 TX */ -#define IFCAP_HWSTATS 0x800000 /* manages counters internally */ #define IFCAP_HWCSUM_IPV6 (IFCAP_RXCSUM_IPV6 | IFCAP_TXCSUM_IPV6) Modified: projects/ifnet/sys/net/if_ethersubr.c ============================================================================== --- projects/ifnet/sys/net/if_ethersubr.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/net/if_ethersubr.c Wed Mar 25 16:40:08 2015 (r280625) @@ -452,9 +452,6 @@ ether_input_internal(struct ifnet *ifp, m->m_flags &= ~M_HASFCS; } - if (!(ifp->if_capenable & IFCAP_HWSTATS)) - if_inc_counter(ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); - /* Allow monitor mode to claim this frame, after stats are updated. */ if (ifp->if_flags & IFF_MONITOR) { m_freem(m); Modified: projects/ifnet/sys/net/if_vlan.c ============================================================================== --- projects/ifnet/sys/net/if_vlan.c Wed Mar 25 16:13:44 2015 (r280624) +++ projects/ifnet/sys/net/if_vlan.c Wed Mar 25 16:40:08 2015 (r280625) @@ -1145,6 +1145,7 @@ vlan_input(struct ifnet *ifp, struct mbu m->m_pkthdr.rcvif = ifv->ifv_ifp; if_inc_counter(ifv->ifv_ifp, IFCOUNTER_IPACKETS, 1); + if_inc_counter(ifv->ifv_ifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); /* Pass it back through the parent's input routine. */ if_input(ifv->ifv_ifp, m);