Update if_obytes and if_omcast after successful transmit.
While I'm here update if_oerrors if parent interface of vlan is not up and running. Previously it updated collision counter and it was confusing to interprete it. PR: kern/163478 Reviewed by: glebius, jhb Tested by: Joe Holden < lists <> rewt dot org dot uk >
This commit is contained in:
parent
7a0151720c
commit
69a9d9792b
@ -1012,10 +1012,12 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m)
|
||||
{
|
||||
struct ifvlan *ifv;
|
||||
struct ifnet *p;
|
||||
int error;
|
||||
int error, len, mcast;
|
||||
|
||||
ifv = ifp->if_softc;
|
||||
p = PARENT(ifv);
|
||||
len = m->m_pkthdr.len;
|
||||
mcast = (m->m_flags & (M_MCAST | M_BCAST)) ? 1 : 0;
|
||||
|
||||
BPF_MTAP(ifp, m);
|
||||
|
||||
@ -1025,7 +1027,7 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m)
|
||||
*/
|
||||
if (!UP_AND_RUNNING(p)) {
|
||||
m_freem(m);
|
||||
ifp->if_collisions++;
|
||||
ifp->if_oerrors++;
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -1081,9 +1083,11 @@ vlan_transmit(struct ifnet *ifp, struct mbuf *m)
|
||||
* Send it, precisely as ether_output() would have.
|
||||
*/
|
||||
error = (p->if_transmit)(p, m);
|
||||
if (!error)
|
||||
if (!error) {
|
||||
ifp->if_opackets++;
|
||||
else
|
||||
ifp->if_omcasts += mcast;
|
||||
ifp->if_obytes += len;
|
||||
} else
|
||||
ifp->if_oerrors++;
|
||||
return (error);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user