Subject: Re: Difference between device statistics from ifconfig and ip -s l l

From: Patrick McHardy <[email-masked]>
Date: Wed, 17 Oct 2007 11:36:30 +0200

Milan Kocian wrote:
> hello,
> 
> see dropped packets, please:
> 
> sit:~# ifconfig eth0
> eth0      Link encap:Ethernet  HWaddr 00:04:23:D6:D5:DE  
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:522284892 errors:0 dropped:16800 overruns:0 frame:0
>           TX packets:506064445 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000 
>           RX bytes:1405350664 (1.3 GiB)  TX bytes:4082649020 (3.8 GiB)
>           Base address:0xac00 Memory:ff6e0000-ff700000 
> 
> see via ip l l (here are no dropped packets):
> 
> sit:~# ip -s l l dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc htb qlen 1000
>     link/ether 00:04:23:d6:d5:de brd ff:ff:ff:ff:ff:ff
>     RX: bytes  packets  errors  dropped overrun mcast   
>     2494988681 523755694 0       0       0       57458  
>     TX: bytes  packets  errors  dropped carrier collsns 
>     453184821  507470461 0       0       0       0      
> 
> but see more detailed stats (dropped packet are as missed in RX errors ?!):
> 
> sit:~# ip -s -s l l dev eth0
> 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc htb qlen 1000
>     link/ether 00:04:23:d6:d5:de brd ff:ff:ff:ff:ff:ff
>     RX: bytes  packets  errors  dropped overrun mcast   
>     2752159866 524110163 0       0       0       57485  
>     RX errors: length  crc     frame   fifo    missed
>                0        0       0       0       16800  
>     TX: bytes  packets  errors  dropped carrier collsns 
>     607359337  507807361 0       0       0       0      
>     TX errors: aborted fifo    window  heartbeat
>                0        0       0       0      
> 
> Is this bug or feature ? From my point of view is somewhere lost any sum.
> Or is it driver dependent? Kernel 2.6.23.1 (in 2.6.20.20 is the same behavior), 
> driver e1000. iproute2-ss070313; net-tools 1.60, ifconfig 1.42 (2001-04-13)

ifconfig gets its data from /proc/net/dev, which adds up rx_errors
and rx_missed.