diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-05-21 21:42:57 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-05-22 08:13:50 +0200 |
| commit | 6a8b532870cf8c642adb1b7554691cadb8be5257 (patch) | |
| tree | 115296bbc7343852cbaf29987dc004d99165c3d5 /src/ipcpd/unicast/addr-auth.h | |
| parent | 3cde856b4b68b5d6bbb9d6bb2d1b995f0babe109 (diff) | |
| download | ouroboros-6a8b532870cf8c642adb1b7554691cadb8be5257.tar.gz ouroboros-6a8b532870cf8c642adb1b7554691cadb8be5257.zip | |
lib: Further align FRCP with TCP RFCs
Only the HoL slot retransmits on RTO; non-HoL slots defer and rely on
SACK/RACK fast-rxm for recovery. Matches RFC 6298 §5.4 + RFC 8985 §3
and Linux tcp_retransmit_skb(head, 1). Eliminates the spurious-RTO
storm where ~50-66% of retransmits arrived as duplicates at the peer.
Co-fixes for three latent state-machine bugs that the previous
spurious-retx mask was hiding:
- recovery_enter: seal recovery_high at the false→true edge only
(RFC 6582 §3.2). Previously extended on every gap-SACK, which
trapped the sender in NewReno indefinitely once any cum-ACK fell
behind the moving recovery_high.
- rtt_sample_eligible: drop the in_recovery super-gate. Karn at the
per-slot SND_RTX|SND_TLP level is already correct (matches Linux).
- rxm_due defer interval: use base RTO, not rto<<rto_mul. Inheriting
HoL's backoff parked deferred slots tens of seconds in the future.
Bring RACK reorder-window scaling into RFC 8985 §7.2 compliance:
reo_wnd_mult widens at most once per RTT, gated via a srtt-elapsed
check in reo_wnd_on_dsack.
Stat refactor for clearer attribution: rename rxm_snd → rxm_rto (now
RTO-driven sends only), add rxm_nack and rxm_due_defer, split rxm_rcv
into total FRCT_RXM arrivals and rxm_dup_rcv (duplicates). Expose
rx/tx ring queue depths as RIB stats.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/unicast/addr-auth.h')
0 files changed, 0 insertions, 0 deletions
