Do not increment if_opackets in if_output(). It might make sense to do
authormpi <mpi@openbsd.org>
Wed, 20 May 2015 08:28:54 +0000 (08:28 +0000)
committermpi <mpi@openbsd.org>
Wed, 20 May 2015 08:28:54 +0000 (08:28 +0000)
that later but all drivers should be adapated.

Should fix a double output packet accounting, reported by Hrvoje Popovski.

sys/net/if.c
sys/net/if_tun.c
sys/net/if_vlan.c

index 81461ef..b740c41 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if.c,v 1.332 2015/05/19 11:09:24 mpi Exp $    */
+/*     $OpenBSD: if.c,v 1.333 2015/05/20 08:28:54 mpi Exp $    */
 /*     $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $  */
 
 /*
@@ -466,7 +466,6 @@ if_output(struct ifnet *ifp, struct mbuf *m)
        if (mflags & M_MCAST)
                ifp->if_omcasts++;
 
-       ifp->if_opackets++;
        if_start(ifp);
 
        splx(s);
index 06a747b..c66c95b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_tun.c,v 1.142 2015/05/19 15:10:59 mpi Exp $        */
+/*     $OpenBSD: if_tun.c,v 1.143 2015/05/20 08:28:54 mpi Exp $        */
 /*     $NetBSD: if_tun.c,v 1.24 1996/05/07 02:40:48 thorpej Exp $      */
 
 /*
@@ -576,6 +576,7 @@ tun_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
                ifp->if_collisions++;
                return (error);
        }
+       ifp->if_opackets++;
 
        tun_wakeup(tp);
        return (0);
index 19b2438..7ba86fe 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: if_vlan.c,v 1.121 2015/05/19 11:21:42 mpi Exp $       */
+/*     $OpenBSD: if_vlan.c,v 1.122 2015/05/20 08:28:54 mpi Exp $       */
 
 /*
  * Copyright 1998 Massachusetts Institute of Technology
@@ -253,6 +253,7 @@ vlan_start(struct ifnet *ifp)
                        ifp->if_oerrors++;
                        continue;
                }
+               ifp->if_opackets++;
        }
 }