diff options
author | Ayush Ranjan <ayushranjan@google.com> | 2021-02-11 17:17:00 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-02-11 17:19:47 -0800 |
commit | 91cf7b3ca48b9388c9058962ffe798c37e951990 (patch) | |
tree | c96f1153e83a6849ede78c8477f95241f1d26da2 /pkg/gate | |
parent | 4314bb0b2b96cc3a84e8dead29812ccb1bfcebe2 (diff) |
[netstack] Fix recovery entry and exit checks.
Entry check:
- Earlier implementation was preventing us from entering recovery even if
SND.UNA is lost but dupAckCount is still below threshold. Fixed that.
- We should only enter recovery when at least one more byte of data beyond the
highest byte that was outstanding when fast retransmit was last entered is
acked. Added that check.
Exit check:
- Earlier we were checking if SEG.ACK is in range [SND.UNA, SND.NXT]. The
intention was to check if any unacknowledged data was ACKed. Note that
(SEG.ACK - 1) is actually the sequence number which was ACKed. So we were
incorrectly including (SND.UNA - 1) in the range. Fixed the check to now be
(SEG.ACK - 1) in range [SND.UNA, SND.NXT).
Additionally, moved a RACK specific test to the rack tests file.
Added tests for the changes I made.
PiperOrigin-RevId: 357091322
Diffstat (limited to 'pkg/gate')
0 files changed, 0 insertions, 0 deletions