From: Ilpo Järvinen Date: Sat, 19 May 2007 20:56:23 +0000 (-0700) Subject: [TCP] FRTO: Add missing ECN CWR sending to one of the responses X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=463236557db4b5d4de9eb3fafa2e7d7905ac65ab;p=openwrt%2Fstaging%2Fblogic.git [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 Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 7641b2761a14..7ecdc89229e8 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); }