The collisions statistic of the 3c59x driver seems to be not correct.
While looking closer to the update_stats() function of the 3c59x driver I found
that vp->stats.collisions counts just the value of the
SingleCollisions register. The SingleCollisions register counts the number
of packets that are transmitted without error after one and only one collision.
Packets with multiple collisions are not counted. Therefore the value
of the SingleCollisions register is just a lower bound on the total number of
collisions.
As far as I know, vp->stats.collisions should count the total number of
collisions during the transmisson of each packet (not just the number of packets
which are transmitted after a single collision).
Unfortunately it seems to be impossible to calculate the total number of
collisions from the statistic counters of the NIC. But it would be possible
to count the total number of packets with collisions during the transmission in
vp->stats.collisions.
IMHO this is better then just counting packets with a single collision
in vp->stats.collisions.
Steffen
|