summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-10-21 16:04:13 -0200
committerRenato Botelho <renato@netgate.com>2015-10-21 16:04:13 -0200
commit6dfdfbb12b356dae762c3bce132809457ed60d97 (patch)
tree4e87edfd6f7353e79d923ab457270e9351daec3d /sys/netinet
parent13010d6b0da4d97e56243edbea0a585b8285cd3e (diff)
parentd621159ed6a7d1c98cf81f17e313dffc64bf7c4f (diff)
downloadFreeBSD-src-6dfdfbb12b356dae762c3bce132809457ed60d97.zip
FreeBSD-src-6dfdfbb12b356dae762c3bce132809457ed60d97.tar.gz
Merge branch 'stable/10' into devel
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/tcp_input.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index f75de7f..631cd2e 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2521,6 +2521,16 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
tp->snd_nxt = onxt;
goto drop;
} else if (V_tcp_do_rfc3042) {
+ /*
+ * Process first and second duplicate
+ * ACKs. Each indicates a segment
+ * leaving the network, creating room
+ * for more. Make sure we can send a
+ * packet on reception of each duplicate
+ * ACK by increasing snd_cwnd by one
+ * segment. Restore the original
+ * snd_cwnd after packet transmission.
+ */
cc_ack_received(tp, th, CC_DUPACK);
u_long oldcwnd = tp->snd_cwnd;
tcp_seq oldsndmax = tp->snd_max;
OpenPOWER on IntegriCloud