Linux – What exactly is an ifconfig dropped RX packet

linuxnetworkingwifi

I'm seeing very high RX dropped packets in the output of ifconfig: Thousands of packets per second, an order of magnitude more than regular RX packets.

wlan0     Link encap:Ethernet  HWaddr 74:da:38:3a:f4:bb  
          inet addr:192.168.99.147  Bcast:192.168.99.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31741 errors:0 dropped:646737 overruns:0 frame:0
          TX packets:18424 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:90393262 (86.2 MiB)  TX bytes:2348219 (2.2 MiB)

I'm testing WiFi dongles. Both have this problem, and the one with the higher drop rate actually performs better in ping floods. The one with low dropped packets suffers from extreme Ping RTTs, while the other never skips a beat.

  • What does Linux consider a dropped packet?
  • Why am I seeing so many of them?
  • Why doesn't it seem to affect performance?

There are lots of questions around with answers that say a dropped packet could be one of the following but that doesn't help me very much, because those possibilities don't seem to make sense in this scenario.

Best Answer

Packet Dropped seen from ifconfig could be due to many reasons, you should dig deeper into NIC statistics to figure out real reason. Below are some general reasons

  • NIC ring buffers getting full and unable to cope-up with incoming bursts of traffic
  • CPU receiving NIC interrupts is very busy and unable to process
  • some cable/hardware/duplex issues
  • some bug in NIC driver

Look at the output of

  • ethtool -S wlan0
  • iwconfig wlan0

and the content of /proc/net/wireless for any further information.

Related Question