Ubuntu – seeing dropped packets in the NIC stats on the Ubuntu server

ipnetworkingtcpUbuntu

I see dropped packets using ifconfig on my eth0 interface:

eth0  Link encap:Ethernet  HWaddr 00:15:17:0d:03:ca
      inet addr:10.0.1.2  Bcast:10.0.1.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:9000  Metric:1
      RX packets:30268348 errors:0 dropped:70721 overruns:0 frame:0
      TX packets:133076885 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8699434077 (8.6 GB)  TX bytes:194937313025 (194.9 GB)
      Interrupt:16 Memory:feae0000-feb00000

When i use ethtool -S i dont see anything wrong:

NIC statistics:
 rx_packets: 30267138
 tx_packets: 133074510
 rx_bytes: 8699356158
 tx_bytes: 194934147340
 rx_broadcast: 35296
 tx_broadcast: 5435
 rx_multicast: 0
 tx_multicast: 0
 rx_errors: 0
 tx_errors: 0
 tx_dropped: 0
 multicast: 0
 collisions: 0
 rx_length_errors: 0
 rx_over_errors: 0
 rx_crc_errors: 0
 rx_frame_errors: 0
 rx_no_buffer_count: 0
 rx_missed_errors: 0
 tx_aborted_errors: 0
 tx_carrier_errors: 0
 tx_fifo_errors: 0
 tx_heartbeat_errors: 0
 tx_window_errors: 0
 tx_abort_late_coll: 0
 tx_deferred_ok: 0
 tx_single_coll_ok: 0
 tx_multi_coll_ok: 0
 tx_timeout_count: 0
 tx_restart_queue: 0
 rx_long_length_errors: 0
 rx_short_length_errors: 0
 rx_align_errors: 0
 tx_tcp_seg_good: 5757001
 tx_tcp_seg_failed: 0
 rx_flow_control_xon: 8649
 rx_flow_control_xoff: 62072
 tx_flow_control_xon: 0
 tx_flow_control_xoff: 0
 rx_long_byte_count: 8699356158
 rx_csum_offload_good: 30212111
 rx_csum_offload_errors: 0
 rx_header_split: 10857552
 alloc_rx_buff_failed: 0
 tx_smbus: 0
 rx_smbus: 0
 dropped_smbus: 0
 rx_dma_failed: 0
 tx_dma_failed: 0

I am running Ubuntu 12.04 with kernel 3.2.0-30-generic #48-Ubuntu SMP
I have pinged every device on my internal network for about 24 hours, without packet loss.
Also checked my router and my interface to the WAN, also no errors there.

Does anyone have any clue?

Best Answer

New kernels use the dropped status slightly different than older ones. That's used to signify packets that were dropped for a variety of reasons:

  • Non-IP packets on the wire
  • IP packets with unknown protocol flags
  • Bad VLAN tags
  • The softnet backlog is full (measured in /proc/net/softnet_stat)

It may very well be normal in your network, and unlikely to be the fault of the box you're measuring them on.