Context
Split out of #119 (2026-06-01 comments) so it doesn't die with that issue's stale NAT64 premise.
There is a live NIC-offload config divergence between the FreeBSD core routers:
cr1-nl1: FreeBSD 14.3-RELEASE-p3; active vtnet0 options include RXCSUM,TXCSUM,TSO4,TSO6,LRO,TXCSUM_IPV6.
cr1-de1: FreeBSD 15.0-RELEASE; /etc/rc.conf explicitly sets ifconfig_vtnet0="... -rxcsum -txcsum -tso4 -tso6 -lro".
A live A/B test on 2026-06-01 (enabling offloads on cr1-de1, retesting the slow OVH/CloudFront flows, reverting) showed no meaningful throughput change — this is not the cause of the CDN path slowness (that's tracked in #351/#138). It's a correctness/consistency cleanup:
- LRO must not be enabled on interfaces that forward packets. It coalesces TCP segments before the stack sees them, which breaks forwarding semantics (resegmentation, reordering, PMTU transparency). cr1-nl1 is a router forwarding overlay/WireGuard traffic on
vtnet0 — cr1-de1's explicit disable is the correct configuration, cr1-nl1's default-enabled state is the defect.
- TSO/checksum offload on virtio under Xen/KVM has a history of subtle corruption bugs; the conservative router convention is to disable the lot, as cr1-de1 already does.
Action items
- Decide the convention: offloads disabled on all forwarding interfaces of FreeBSD core routers (recommend adopting cr1-de1's
-rxcsum -txcsum -tso4 -tso6 -lro line as the standard).
- Apply to
cr1-nl1 vtnet0 live (low-risk, revertible with ifconfig), with before/after throughput probes sourced from 2a0c:b641:b50::a so we have data rather than vibes.
- Check
cr1-ch1 (newest FreeBSD node, Securebit/SBIX) against the same convention — it was built after the DE box and may have inherited defaults rather than the explicit disables.
- Persist in
/etc/rc.conf on each host and mirror into the repo (configs/cr1-nl1/, configs/cr1-ch1/ headers/docs) so the convention survives reprovisioning.
- Note the FreeBSD version skew while in there (nl1 on 14.3, de1 on 15.0) — not this issue's scope, but worth a line in the upgrade planning.
Related
Context
Split out of #119 (2026-06-01 comments) so it doesn't die with that issue's stale NAT64 premise.
There is a live NIC-offload config divergence between the FreeBSD core routers:
cr1-nl1: FreeBSD 14.3-RELEASE-p3; activevtnet0options includeRXCSUM,TXCSUM,TSO4,TSO6,LRO,TXCSUM_IPV6.cr1-de1: FreeBSD 15.0-RELEASE;/etc/rc.confexplicitly setsifconfig_vtnet0="... -rxcsum -txcsum -tso4 -tso6 -lro".A live A/B test on 2026-06-01 (enabling offloads on cr1-de1, retesting the slow OVH/CloudFront flows, reverting) showed no meaningful throughput change — this is not the cause of the CDN path slowness (that's tracked in #351/#138). It's a correctness/consistency cleanup:
vtnet0— cr1-de1's explicit disable is the correct configuration, cr1-nl1's default-enabled state is the defect.Action items
-rxcsum -txcsum -tso4 -tso6 -lroline as the standard).cr1-nl1vtnet0live (low-risk, revertible withifconfig), with before/after throughput probes sourced from2a0c:b641:b50::aso we have data rather than vibes.cr1-ch1(newest FreeBSD node, Securebit/SBIX) against the same convention — it was built after the DE box and may have inherited defaults rather than the explicit disables./etc/rc.confon each host and mirror into the repo (configs/cr1-nl1/,configs/cr1-ch1/headers/docs) so the convention survives reprovisioning.Related
configs/cr1-nl1/,configs/cr1-de1/— live router configs in-repo