Page MenuHomeFreeBSD

D47541.id146453.diff
No OneTemporary

D47541.id146453.diff

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2813,7 +2813,7 @@
tcp_sack_adjust(tp);
tp->snd_cwnd +=
(tp->t_dupacks - tp->snd_limited) *
- maxseg;
+ maxseg - tcp_sack_adjust(tp);
/*
* Only call tcp_output when there
* is new data available to be sent
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -292,7 +292,8 @@
len = 0;
p = NULL;
if ((tp->t_flags & TF_SACK_PERMIT) &&
- (IN_FASTRECOVERY(tp->t_flags) || SEQ_LT(tp->snd_nxt, tp->snd_max)) &&
+ (IN_FASTRECOVERY(tp->t_flags) ||
+ (SEQ_LT(tp->snd_nxt, tp->snd_max) && (tp->t_dupacks >= tcprexmtthresh))) &&
(p = tcp_sack_output(tp, &sack_bytes_rxmt))) {
int32_t cwin;

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 22, 9:18 PM (4 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14767291
Default Alt Text
D47541.id146453.diff (873 B)

Event Timeline