diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-05-20 18:15:10 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-05-22 08:13:50 +0200 |
| commit | 40cc98c427186a54ddf27fbd10763d7457fffb30 (patch) | |
| tree | 7a914349b249a3f24fd5e1219daaa8926097f31e /src/lib/qoscube.c | |
| parent | ac994f2456681bada8371d6cb379467313acddfa (diff) | |
| download | ouroboros-40cc98c427186a54ddf27fbd10763d7457fffb30.tar.gz ouroboros-40cc98c427186a54ddf27fbd10763d7457fffb30.zip | |
lib: Add tail loss probe (TLP) to FRCP
The previous bugfixes that fixed a false-positive inactivity timer
check unmasked the need for the tail loss probe (TLP) to quickly
recover from loss of the HoL.
When the sender finishes its app data with packets still inflight,
RACK fast-rxm cannot fire (no ACK arrives), pre-DRF NACK is gated on
rcv_cr.inact, and rto_mul climbs into seconds before the next RXM fire
— recv-side deadline expires first.
This adds the RFC 8985 §7.2 TLP: PTO = 2*SRTT + max_ack_delay (t_a),
capped by the HoL slot's current RTO deadline. Probe fires from
frcti_snd and after frcti_ack_rcv; per §7.3 at most one TLP per
recovery episode, tracked via tlp_high_seq. On fire, re-emit HoL via
fast_rxm_send and hand off to RTO — no PTO self re-arm. A new SND_TLP
slot flag is Karn-skipped for RTT sampling, cleared by RTO retransmit
or NACK-driven fast-rxm, and clears rto_mul on its TLP-ACK (rto_mul
carries no CC meaning in FRCP). Also caps MAX_RTO_MUL at 8 instead of
20.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/qoscube.c')
0 files changed, 0 insertions, 0 deletions
