Enabling PMTUD with double-sided probing (0x3) (may be this func is like PLPMTUD not depend on ICMP)can reduce UL throughput to about 1/10. DL throughput does not appear to be affected.
Current Workaround: Set max_pkt_out_size = 1400 as a fixed value with PMTUD disabled (bef7f72).
This yields dgram_mss=1384, udp_mss=1382, satisfying the IPv6 minimum link MTU of 1280.
Total IP packet size is 1428 bytes, fitting within PPPoE (1492) and standard Ethernet (1500) paths.
Investigation TODOs
- Determine how xquic PMTUD probing affects BBR2 bandwidth estimation
- Probing packet loss may be counted as real loss by BBR2
- Continuous probing at pmtud_probing_interval (default 500ms) may be the cause
- Test whether enable_pmtud = 0x1 (client-side probing only) improves results
- Determine if an xquic-side fix is needed (e.g., exclude probing packet loss from BBR2)
- Verify behavior on low-MTU paths (< 1400)
Related Commits
- bfb84fd — Enabled PMTUD (problematic commit)
- bef7f72 — Changed to max_pkt_out_size=1400 (WA)
Enabling PMTUD with double-sided probing (0x3) (may be this func is like PLPMTUD not depend on ICMP)can reduce UL throughput to about 1/10. DL throughput does not appear to be affected.
Current Workaround: Set max_pkt_out_size = 1400 as a fixed value with PMTUD disabled (bef7f72).
This yields dgram_mss=1384, udp_mss=1382, satisfying the IPv6 minimum link MTU of 1280.
Total IP packet size is 1428 bytes, fitting within PPPoE (1492) and standard Ethernet (1500) paths.
Investigation TODOs
Related Commits