tcp: ECN blackhole should not force quickack mode
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 22 Sep 2011 20:02:19 +0000 (20:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Sep 2011 04:58:44 +0000 (00:58 -0400)
commit7a269ffad72f3604b8982fa09c387670e0d2ee14
tree3655a22066bcb1011e5e1b717a00a108143dfd85
parent0bdb0bd0139f3b6afa252de1487e3ce82a494db9
tcp: ECN blackhole should not force quickack mode

While playing with a new ADSL box at home, I discovered that ECN
blackhole can trigger suboptimal quickack mode on linux : We send one
ACK for each incoming data frame, without any delay and eventual
piggyback.

This is because TCP_ECN_check_ce() considers that if no ECT is seen on a
segment, this is because this segment was a retransmit.

Refine this heuristic and apply it only if we seen ECT in a previous
segment, to detect ECN blackhole at IP level.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Jamal Hadi Salim <jhs@mojatatu.com>
CC: Jerry Chu <hkchu@google.com>
CC: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
CC: Jim Gettys <jg@freedesktop.org>
CC: Dave Taht <dave.taht@gmail.com>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c