Date: Tue, 27 Dec 2011 08:05:51 +0400 From: Gleb Smirnoff <glebius@FreeBSD.org> To: YongHyeon PYUN <pyunyh@gmail.com> Cc: "freebsd-net@freebsd.org" <freebsd-net@FreeBSD.org>, Joe Holden <lists@rewt.org.uk>, jhb@FreeBSD.org Subject: Re: bsnmpd not showing out octets for vlan interfaces Message-ID: <20111227040551.GH8035@FreeBSD.org> In-Reply-To: <20111227032528.GA1844@michelle.cdnetworks.com> References: <4EF8D0A2.5010604@rewt.org.uk> <20111227032528.GA1844@michelle.cdnetworks.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 26, 2011 at 07:25:29PM -0800, YongHyeon PYUN wrote: Y> Index: sys/net/if_vlan.c Y> =================================================================== Y> --- sys/net/if_vlan.c (revision 228906) Y> +++ sys/net/if_vlan.c (working copy) Y> @@ -1012,10 +1012,12 @@ Y> { Y> struct ifvlan *ifv; Y> struct ifnet *p; Y> - int error; Y> + int error, len, mcast; Y> Y> ifv = ifp->if_softc; Y> p = PARENT(ifv); Y> + len = m->m_pkthdr.len; Y> + mcast = (m->m_flags & (M_MCAST | M_BCAST)) ? 1 : 0; Y> Y> BPF_MTAP(ifp, m); Y> Y> @@ -1025,7 +1027,7 @@ Y> */ Y> if (!UP_AND_RUNNING(p)) { Y> m_freem(m); Y> - ifp->if_collisions++; Y> + ifp->if_oerrors++; Y> return (0); Y> } Y> Y> @@ -1081,9 +1083,11 @@ Y> * Send it, precisely as ether_output() would have. Y> */ Y> error = (p->if_transmit)(p, m); Y> - if (!error) Y> + if (!error) { Y> ifp->if_opackets++; Y> - else Y> + ifp->if_omcasts += mcast; Y> + ifp->if_obytes += len; Y> + } else Y> ifp->if_oerrors++; Y> return (error); Y> } Thanks, Pyun! You can count me in as reviewer. I have also added jhb@ to Cc, the author of changed code, so that he can review, too. -- Totus tuus, Glebius.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111227040551.GH8035>