Driver forgot to update the transmitted bytes counter. Originally done in rtl8169_start_xmit() by Realtek. drivers/net/r8169.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/net/r8169.c~r8169-missing-tx-stats drivers/net/r8169.c --- linux-2.6.0-test11/drivers/net/r8169.c~r8169-missing-tx-stats 2003-11-29 22:34:10.000000000 +0100 +++ linux-2.6.0-test11-fr/drivers/net/r8169.c 2003-11-30 00:26:09.000000000 +0100 @@ -1303,10 +1303,13 @@ rtl8169_tx_interrupt(struct net_device * int cur = dirty_tx % NUM_TX_DESC; struct sk_buff *skb = tp->Tx_skbuff[cur]; + /* FIXME: is it really accurate for TxErr ? */ + tp->stats.tx_bytes += skb->len >= ETH_ZLEN ? + skb->len : ETH_ZLEN; + tp->stats.tx_packets++; rtl8169_unmap_tx_skb(tp->pci_dev, tp->Tx_skbuff + cur, tp->TxDescArray + cur); dev_kfree_skb_irq(skb); - tp->stats.tx_packets++; dirty_tx++; tx_left--; entry++; _