[Bug 276760] vtnet driver incorrectly calculates checksums

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 14 Oct 2025 13:13:31 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276760

--- Comment #19 from vova@fbsd.ru ---
Interesting results:

14.3p4  ifconfig_vtnet0="DHCP -tso4 -tso6 -lro -rxcsum"

Download: 1938.88 Mbps
Upload: 789.48 Mbps 

# speedtest-go

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 128.140.36.15 (Hetzner Online) [53.5774, 10.0785]
✓ Found 20 Public Servers

✓ Test Server: [69030] 467.36km Nuremberg (Germany) by Advin Services LLC
✓ Latency: 974.539µs Jitter: 342.617µs Min: 659.889µs Max: 1.746697ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 1938.88 Mbps (Used: 2298.54MB) (Latency: 2ms Jitter: 1ms Min: 0ms
Max: 5ms)
✓ Upload: 789.48 Mbps (Used: 983.55MB) (Latency: 4ms Jitter: 5ms Min: 0ms Max:
20ms)
✓ Packet Loss: N/A


in vnet container (under pf nat):
  Speedtest by Ookla

      Server: Advin Services LLC - Nuremberg (id: 69030)
         ISP: Hetzner Online
Idle Latency:     0.40 ms   (jitter: 0.06ms, low: 0.36ms, high: 0.49ms)
    Download:  1504.38 Mbps (data used: 2.4 GB)
                  5.13 ms   (jitter: 15.33ms, low: 0.36ms, high: 226.18ms)
      Upload:  1425.73 Mbps (data used: 1.9 GB)
                  2.02 ms   (jitter: 5.17ms, low: 0.33ms, high: 379.86ms)
 Packet Loss:     0.0%


14.3p4  ifconfig_vtnet0="DHCP"

dramatically worse:
Download: 719.23 Mbps
Upload: 485.25 Mbps

# ifconfig vtnet0
vtnet0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0
mtu 1500
       
options=ec07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS>


speedtest-go

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 128.140.36.15 (Hetzner Online) [53.5774, 10.0785]
✓ Found 20 Public Servers

✓ Test Server: [60469] 467.36km Nuremberg (Germany) by netcup GmbH
✓ Latency: 1.107351ms Jitter: 172.438µs Min: 800.457µs Max: 1.378362ms
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 719.23 Mbps (Used: 770.40MB) (Latency: 1ms Jitter: 0ms Min: 0ms
Max: 2ms)
✓ Upload: 485.25 Mbps (Used: 945.52MB) (Latency: 1ms Jitter: 0ms Min: 0ms Max:
4ms)
✓ Packet Loss: 0.48% (Sent: 415/Dup: 0/Max: 416)

in vnet container (under pf nat):
  Speedtest by Ookla

      Server: Advin Services LLC - Nuremberg (id: 69030)
         ISP: Hetzner Online
Idle Latency:     0.67 ms   (jitter: 0.77ms, low: 0.34ms, high: 1.50ms)
    Download:   166.12 Mbps (data used: 243.8 MB)
                  0.77 ms   (jitter: 0.51ms, low: 0.37ms, high: 5.65ms)
      Upload:  1595.95 Mbps (data used: 2.1 GB)
                  7.03 ms   (jitter: 6.94ms, low: 0.70ms, high: 256.62ms)
 Packet Loss:     0.0%



14.3-STABLE stable/14-087fc6ae0a8c  ifconfig_vtnet0="DHCP"

Still not that good as before, but in vnet container - event better
Download: 972.67 Mbps 
Upload: 523.19 Mbps 

# speedtest-go

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 128.140.36.15 (Hetzner Online) [53.5774, 10.0785]
✓ Found 20 Public Servers

✓ Test Server: [60469] 467.36km Nuremberg (Germany) by netcup GmbH
✓ Latency: 905.265µs Jitter: 54.375µs Min: 808.469µs Max: 983.836µs
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 972.67 Mbps (Used: 1283.25MB) (Latency: 1ms Jitter: 0ms Min: 0ms
Max: 3ms)
✓ Upload: 523.19 Mbps (Used: 661.66MB) (Latency: 5ms Jitter: 6ms Min: 0ms Max:
24ms)
✓ Packet Loss: 0.00% (Sent: 283/Dup: 0/Max: 282)

in vnet container (under pf nat):
   Speedtest by Ookla

      Server: Advin Services LLC - Nuremberg (id: 69030)
         ISP: Hetzner Online
Idle Latency:     0.40 ms   (jitter: 0.10ms, low: 0.32ms, high: 0.48ms)
    Download:  1813.96 Mbps (data used: 1.2 GB)
                 10.73 ms   (jitter: 14.93ms, low: 1.37ms, high: 97.34ms)
      Upload:  1624.39 Mbps (data used: 2.8 GB)
                  3.16 ms   (jitter: 8.67ms, low: 0.37ms, high: 325.18ms)
 Packet Loss:     0.0%

and after returning to no offload:

Download: 2052.35 Mbps
Upload: 772.36 Mbps

# ifconfig vtnet0 -tso4 -tso6 -lro -rxcsum
# ifconfig vtnet0
vtnet0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0
mtu 1500
       
options=cc00ba<TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE,TXCSUM_IPV6,HWSTATS>

# speedtest-go

    speedtest-go v1.7.10 (git-dev) @showwin

✓ ISP: 128.140.36.15 (Hetzner Online) [53.5774, 10.0785]
✓ Found 20 Public Servers

✓ Test Server: [69030] 467.36km Nuremberg (Germany) by Advin Services LLC
✓ Latency: 662.361µs Jitter: 113.466µs Min: 527.393µs Max: 883.733µs
✓ Packet Loss Analyzer: Running in background (<= 30 Secs)
✓ Download: 2052.35 Mbps (Used: 2593.14MB) (Latency: 3ms Jitter: 2ms Min: 0ms
Max: 8ms)
✓ Upload: 772.36 Mbps (Used: 992.49MB) (Latency: 5ms Jitter: 3ms Min: 0ms Max:
12ms)
✓ Packet Loss: N/A

in vnet container (under pf nat):
  Speedtest by Ookla

      Server: Advin Services LLC - Nuremberg (id: 69030)
         ISP: Hetzner Online
Idle Latency:     0.43 ms   (jitter: 0.03ms, low: 0.37ms, high: 0.44ms)
    Download:  2085.06 Mbps (data used: 1.1 GB)
                 12.66 ms   (jitter: 21.69ms, low: 3.21ms, high: 237.03ms)
      Upload:  1584.51 Mbps (data used: 1.9 GB)
                  3.69 ms   (jitter: 11.17ms, low: 0.41ms, high: 224.69ms)

All measurements may be not that percise - virtual machine is chipest possible.

-- 
You are receiving this mail because:
You are on the CC list for the bug.