I am writing a program that collects and displays network interface metrics located in the /sys/class/net/ folder.

When I was reading about the meaning of rx_dropped value, I came to the conclusion that this value as many possible causes, such as the ones specified in the first answer of this post:


However, I cannot find any information on the tx_dropped value. I first though it would be related to TCP segments sent that did not get an Aknowledge and would therefore be dropped from the queue.

However, I was running curl, which would obviously result in retransmissions that I could watch in Wireshark, but the tx_dropped value remained 0.

Actually, in all the times I've run my program, I've never seen tx_dropped with a value other than 0.

What situation would make tx_dropped increase?

1 Answer 1


The tx_dropped (and rx_dropped) counters are driver specific and you have to check documentation or source of the code the driver you're using to figure out what those fields exactly mean.

For example, the tg3 driver used for 10G Intel NICs has only following codepath to increase the tx_dropped counter: https://github.com/torvalds/linux/blob/fb054096aea0576f0c0a61c598e5e9676443ee86/drivers/net/ethernet/broadcom/tg3.c#L8139

I seems to be that most of the locations that end up calling goto drop; are related to TSO and GSO offloading or about ignoring packets with VLAN tags because of failing checksum. Other than those, only DMA memory allocation failure should cause tx_dropped to increase.

If you're seeing tx_dropped increasing, I'd recommend trying to disable all offloading features of the NIC and see if that helps.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .