When LRO is enabled, the received packet and byte counters represent the
LRO'd packets, not the packets/bytes on the wire. The Intel 82599 NIC has
registers that keep count of the physical packets. Add these counters to
the ethtool stats. The byte counters are 36-bit, but the high 4 bits were
being ignored in the 2.6.31 ixgbe driver: Read those as well to allow
longer time between polling the stats to detect wraps.
Signed-off-by: Ben Greear <redacted>
Please do not apply this until the ixgbe authors ACK it. There may
have been reasons for not reading the high 4 bits, or they may dislike
this approach entirely.
Here is ethtool stats output with LRO enabled, with patch applied:
#ethtool -S eth20
NIC statistics:
rx_packets: 15944000
tx_packets: 12339293
rx_bytes: 272306022656
tx_bytes: 940244184
rx_pkts_nic: 187747191
tx_pkts_nic: 12340822
rx_bytes_nic: 284695533402
tx_bytes_nic: 989725050
lsc_int: 3
...
Thanks,
Ben
--
Ben Greear [off-list ref]
Candela Technologies Inc http://www.candelatech.com