summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2007-05-19 13:56:23 -0700
committerDavid S. Miller <davem@davemloft.net>2007-05-19 13:56:23 -0700
commit463236557db4b5d4de9eb3fafa2e7d7905ac65ab (patch)
tree70c31be3870865686a45d763ca1899304416bd34
parentb6ccc67d8e42e38936df330b26ee6d022dda8a64 (diff)
downloadlinux-3.10-463236557db4b5d4de9eb3fafa2e7d7905ac65ab.tar.gz
linux-3.10-463236557db4b5d4de9eb3fafa2e7d7905ac65ab.tar.bz2
linux-3.10-463236557db4b5d4de9eb3fafa2e7d7905ac65ab.zip
[TCP] FRTO: Add missing ECN CWR sending to one of the responses
The conservative spurious RTO response did not queue CWR even though the sending rate was lowered. Whenever reduction happens regardless of reason, CWR should be sent (forgetting to send it is not very fatal though). A better approach would be to queue CWR when one of the sending rate reducing responses (rate-halving one or this conservative response) is used already at RTO. Doing that would allow CWR to be sent along with the two new data segments that are sent during FRTO. However, it's a bit "racy" because userland could tune the response sysctl to a more aggressive one in between. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/tcp_input.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 7641b2761a1..7ecdc89229e 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -2608,6 +2608,7 @@ static void tcp_conservative_spur_to_response(struct tcp_sock *tp)
{
tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh);
tp->snd_cwnd_cnt = 0;
+ TCP_ECN_queue_cwr(tp);
tcp_moderate_cwnd(tp);
}