Context
Parent design: docs/plans/2026-03-18-relay-refactoring-design.md - Stage 5/5
Bottlenecks: 64KB buffers below BDP, .to_vec() copies on non-FEC path, flush() after every TCP write.
Changes
5a. Profile-scaled TCP buffers: 128KB terrestrial, 256KB satellite (cap at diminishing returns)
5b. Zero-copy on non-FEC path: use slice reference instead of .to_vec()
5c. Remove flush() on exit side: TCP kernel flushes naturally
Files: bins/quick-entry/src/tunnel.rs, bins/quick-exit/src/tunnel.rs
Acceptance Criteria
Dependencies
Requires #112 (backpressure) merged first. Can be done in parallel with final benchmarks.
Expected Impact
Polish: +5-10% throughput, reduced memory allocations
Context
Parent design: docs/plans/2026-03-18-relay-refactoring-design.md - Stage 5/5
Bottlenecks: 64KB buffers below BDP, .to_vec() copies on non-FEC path, flush() after every TCP write.
Changes
5a. Profile-scaled TCP buffers: 128KB terrestrial, 256KB satellite (cap at diminishing returns)
5b. Zero-copy on non-FEC path: use slice reference instead of .to_vec()
5c. Remove flush() on exit side: TCP kernel flushes naturally
Files: bins/quick-entry/src/tunnel.rs, bins/quick-exit/src/tunnel.rs
Acceptance Criteria
Dependencies
Requires #112 (backpressure) merged first. Can be done in parallel with final benchmarks.
Expected Impact
Polish: +5-10% throughput, reduced memory allocations