diff options
author | gVisor bot <gvisor-bot@google.com> | 2021-02-11 00:43:48 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-02-11 00:43:48 +0000 |
commit | 9994360861f68e806d4c1e2ad949015cc55d130f (patch) | |
tree | 33b9251e70f6b2d4784e11ca98e1981dbffc3442 | |
parent | f43172c57bb01219449d807c2bcb7abba4d51ac4 (diff) | |
parent | ff04d019e3d20adf0f5ef3146fa28d3b83a4819a (diff) |
Merge release-20210201.0-83-gff04d019e (automated)
-rw-r--r-- | pkg/tcpip/transport/tcp/snd.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/pkg/tcpip/transport/tcp/snd.go b/pkg/tcpip/transport/tcp/snd.go index d6365b93d..37f064aaf 100644 --- a/pkg/tcpip/transport/tcp/snd.go +++ b/pkg/tcpip/transport/tcp/snd.go @@ -1041,6 +1041,7 @@ func (s *sender) enterRecovery() { // the 3 duplicate ACKs and are now not in flight. s.sndCwnd = s.sndSsthresh + 3 s.sackedOut = 0 + s.dupAckCount = 0 s.fr.first = s.sndUna s.fr.last = s.sndNxt - 1 s.fr.maxCwnd = s.sndCwnd + s.outstanding @@ -1174,7 +1175,6 @@ func (s *sender) detectLoss(seg *segment) (fastRetransmit bool) { } s.cc.HandleLossDetected() s.enterRecovery() - s.dupAckCount = 0 return true } @@ -1521,10 +1521,11 @@ func (s *sender) handleRcvdSegment(rcvdSeg *segment) { // the lost segments. s.cc.HandleLossDetected() s.enterRecovery() + fastRetransmit = true } if s.fr.active { - s.rc.DoRecovery(nil, true) + s.rc.DoRecovery(nil, fastRetransmit) } } |