David S. Miller wrote:
On Mon, 15 Dec 2003 12:03:58 -0800
Ben Greear <greearb@xxxxxxxxxxxxxxx> wrote:
Is there an agreed upon standard for exactly what ethernet drivers
should be counting for rx-bytes and tx-bytes? For example, should the
counters include the 4-byte FCS? Should they include the ethernet header?
Good question.
It should be that all drivers use what skb->len ends up with at
rx/tx time.
A more noticeable problem is what I found in e100: It was adding
skb->len after doing eth_type_trans, which yanks off the ethernet
header... I moved it before the eth_type_trans and I am getting
much better numbers. It does appear that the e1000 is counting the
FCS in transmitted bytes, however, and unless we tell the e100 to
receive the FCS, it will not count those on receive.
However, it is often faster to just let the hardware keep track
of these statistics (tg3 is one example of a chip that can do
this). And sometimes these mechanisms take the FCS or whatever
into account and this as you note makes the numbers different.
Maybe the stats-polling code in the driver could do the necessary subtraction
to remove the FCS from the results (ie, subtract (packets-since-last-sample *
4) bytes.
Thanks,
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
|