aiortc / aioquic

QUIC and HTTP/3 implementation in Python
BSD 3-Clause "New" or "Revised" License
1.6k stars 229 forks source link

Do not fully clear ACK ranges when ACK is acknowledged #514

Closed jlaine closed 2 weeks ago

jlaine commented 2 weeks ago

When a packet containing an ACK is acknowledged, we are allowed to discard ACK ranges up to and including the highest acknowledged packet in the sent ACK:

https://datatracker.ietf.org/doc/html/rfc9000#ack-tracking

However, doing so prevents us from reporting a gap if the immediately following packet(s) are lost. We therefore retain at least the highest acknowledged packet in our ACK ranges.

Fixes: #495.

codecov[bot] commented 2 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (ff3281f) to head (90d153a).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #514 +/- ## ========================================= Coverage 100.00% 100.00% ========================================= Files 25 25 Lines 4999 4999 ========================================= Hits 4999 4999 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.