bsnmpd not showing out octets for vlan interfaces

John Baldwin jhb at freebsd.org
Thu Dec 29 16:24:27 UTC 2011


On Monday, December 26, 2011 11:05:51 pm Gleb Smirnoff wrote:
> 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.

I didn't really change it, I just unindented it when the loop was removed
during the transition to if_transmit. :)  However, this patch looks good to
me.

-- 
John Baldwin


More information about the freebsd-net mailing list