summaryrefslogtreecommitdiff
path: root/src/ipcpd/unicast/addr-auth
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-05-19 22:25:47 +0200
committerSander Vrijders <sander@ouroboros.rocks>2026-05-20 08:17:07 +0200
commit1566d9b6e273510b376adaa1ce920152a089132f (patch)
tree418867b780d8144fae0892404809c60aa581ac1b /src/ipcpd/unicast/addr-auth
parentcbf7f953a49a98adfc4803340475ffeccefbe9fb (diff)
downloadouroboros-1566d9b6e273510b376adaa1ce920152a089132f.tar.gz
ouroboros-1566d9b6e273510b376adaa1ce920152a089132f.zip
lib: Skip DRF rebase on same-epoch retransmit
On some stalls the receiver can go inactive and NACK-driven HoL retransmits and brief snd-window drains can deliver a DRF-flagged packet that's still part of the current receive epoch (rxm_pkt_prepare preserves the original flags). This treats in-window DRF and RXM-flagged DRF arrivals as same-epoch once the window is seeded and skip the release_rq + lwe/rwe rebase that would otherwise wipe valid OOO fragments from rq[]. Bootstrap (lwe == rwe) still rebases unconditionally so a NACK-driven retransmit of a lost initial DRF can seed the receiver. Harden seqno_rotate to redraw the ISN until it falls outside the peer's current rcv window, closing the ~RQ_SIZE / 2^32 collision where a true new epoch would be misclassified as same-epoch. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/unicast/addr-auth')
0 files changed, 0 insertions, 0 deletions