summaryrefslogtreecommitdiffhomepage
path: root/pkg/tcpip/transport/tcp
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2021-02-11 00:43:48 +0000
committergVisor bot <gvisor-bot@google.com>2021-02-11 00:43:48 +0000
commit9994360861f68e806d4c1e2ad949015cc55d130f (patch)
tree33b9251e70f6b2d4784e11ca98e1981dbffc3442 /pkg/tcpip/transport/tcp
parentf43172c57bb01219449d807c2bcb7abba4d51ac4 (diff)
parentff04d019e3d20adf0f5ef3146fa28d3b83a4819a (diff)
Merge release-20210201.0-83-gff04d019e (automated)
Diffstat (limited to 'pkg/tcpip/transport/tcp')
-rw-r--r--pkg/tcpip/transport/tcp/snd.go5
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)
}
}