System Configuration:
-
Module: Jetson Orin AGX 64GB on devkit
-
Jetpack Version: Jetpack 7.2 (L4T r36.x / r38.x equivalent)
-
Kernel Version:
6.8.12-1021-tegra -
Interface:
eth0(1G EQOS controller,2310000.ethernet) -
Driver:
nvethernet
Description of the Issue:
When monitoring network traffic on a Jetson Orin AGX running Jetpack 7.2, the kernel software statistics in /sys/class/net/eth0/statistics/tx_bytes (and /proc/net/dev) occasionally reporting mathematically impossible values (on the order of 159 Petabytes).
This causes monitoring agents like Prometheus node_exporter to report active transmit rates of over 1 TB/s (7 TiB/s).
The issue is caused by an integer underflow in the nvethernet driver’s software byte-accounting when TCP Segmentation Offload (TSO) is active. The physical MAC registers count the transmitted bytes correctly, but the driver occasionally passes a negative delta to the kernel’s network statistics struct, wrapping the unsigned 64-bit integer to a massive value.
How to Reproduce:
-
Ensure TCP Segmentation Offload is enabled (default state):
Bash
sudo ethtool -K eth0 tso on gso on gro on -
Generate active TCP transmit traffic (e.g., via
iperf3or transferring large files). -
Check the kernel’s reported transmit bytes:
Bash
cat /sys/class/net/eth0/statistics/tx_bytesExpected Behavior: Realistic byte count matching physical traffic. Actual Behavior: The counter jumps to an astronomical 18-digit number (e.g.,
159400201039313555bytes).
Technical Evidence (Debugging Logs):
1. Corrupted Kernel Counter (Software):
Bash
$ cat /sys/class/net/eth0/statistics/tx_bytes
159400201039313555
2. Accurate Hardware Registers (ethtool -S):
The physical hardware counters on the Orin NIC prove that the physical MAC is counting normally and has only actually sent ~473 GB, not 159 PB:
Bash
$ sudo ethtool -S eth0 | grep -i tx
mmc_tx_octetcount_gb: 473348121972
mmc_tx_framecount_gb: 340560245
tx_tso_pkt_n: 37212641
(Note the high tx_tso_pkt_n count, confirming heavy TSO usage during the bug occurrence).
3. Driver Information:
Bash
$ sudo ethtool -i eth0
driver: nvethernet
version: 6.8.12-1021-tegra
bus-info: 2310000.ethernet
Workaround:
Disabling hardware offloads immediately stops the thrashing/underflow and stabilizes the /sys/ counters:
Bash
sudo ethtool -K eth0 tso off gso off gro off
Request to NVIDIA Engineering:
Please review the nvethernet driver source code (specifically where it handles DMA ring buffer completion and updates the kernel socket buffer skb statistics). A calculation logic error during TSO packet segmentation is causing a negative byte subtraction, resulting in this uint64 underflow.