Date: Wed, 25 Mar 2015 16:40:09 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> 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 Message-ID: <201503251640.t2PGe9HY071325@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503251640.t2PGe9HY071325>