Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are meanings of fields in /proc/net/dev?

Tags:

linux

tcp

The Linux file /proc/net/dev reads like this:

[me@host ~]$ cat /proc/net/dev Inter-|   Receive                                                |  Transmit  face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed 

What do fields drop and errs mean?

Are some errs packets also counted in the drop packets?

Why is a packet considered errs , is it because that it suffers from checksum error?

Why is a packet dropped? Is it because that the system has no enough buffer of because there is some burst on the NIC?

Do the two fields take packets that are destined to another host (e.g. when the NIC is working in promiscuous mode) into consider?

like image 482
Utoah Avatar asked Aug 19 '10 12:08

Utoah


People also ask

What is Proc net in Linux?

This directory provides a comprehensive look at various networking parameters and statistics. Each directory and virtual file within this directory describes aspects of the system's network configuration.

What is Proc net UDP?

Holds a dump of the UDP socket table. Much of the information is not of use apart from debugging. The "sl" value is the kernel hash slot for the socket, the "local_address" is the local address and port number pair. The "rem_address" is the remote address and port number pair (if connected).

What is Proc Net Unix?

The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures. It is commonly mounted at /proc.


2 Answers

You can have a look at net/core/dev.c in the source tree to see what it means:

seq_printf(seq, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu "        "%8lu %7lu %4lu %4lu %4lu %5lu %7lu %10lu\n",        dev->name,        stats->rx_bytes,        stats->rx_packets,        stats->rx_errors,        stats->rx_dropped + stats->rx_missed_errors,        stats->rx_fifo_errors,        stats->rx_length_errors + stats->rx_over_errors +         stats->rx_crc_errors + stats->rx_frame_errors,        stats->rx_compressed,        stats->multicast,        stats->tx_bytes,        stats->tx_packets,        stats->tx_errors,        stats->tx_dropped,        stats->tx_fifo_errors,        stats->collisions,        stats->tx_carrier_errors + stats->tx_aborted_errors +         stats->tx_window_errors + stats->tx_heartbeat_errors,        stats->tx_compressed); 

So:

  • receive errors means any kind of invalid packet, e.g. invalid length or invalid checksum
  • transmit errors are
    • carrier errors
    • aborted errors
    • window errors
    • heartbeat errors
      (whatever they all mean)

And yes, I think drops means when the device dropped a packet because it ran out of buffer space.

like image 147
Mikel Avatar answered Oct 04 '22 14:10

Mikel


According to http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html, the meanings of each of the columns are:

bytes The total number of bytes of data transmitted or received by the interface.

packets The total number of packets of data transmitted or received by the interface.

errs The total number of transmit or receive errors detected by the device driver.

drop The total number of packets dropped by the device driver.

fifo The number of FIFO buffer errors.

frame The number of packet framing errors.

colls The number of collisions detected on the interface.

compressed The number of compressed packets transmitted or received by the device driver. (This appears to be unused in the 2.2.15 kernel.)

carrier The number of carrier losses detected by the device driver.

multicast The number of multicast frames transmitted or received by the device driver.

like image 20
Naishy Avatar answered Oct 04 '22 14:10

Naishy