]> git.baikalelectronics.ru Git - kernel.git/commit
net: tcp: add flag for ca to indicate that ECN is required
authorDaniel Borkmann <dborkman@redhat.com>
Fri, 26 Sep 2014 20:37:33 +0000 (22:37 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Sep 2014 04:13:10 +0000 (00:13 -0400)
commitf2b94ea5f1d004ba5dcbc4d8305490f67717b479
tree6a56bc051b629e3c0914c3a519d201f357e79ada
parent1246f9f093802baaabce5dc59e98dbf0e8998819
net: tcp: add flag for ca to indicate that ECN is required

This patch adds a flag to TCP congestion algorithms that allows
for requesting to mark IPv4/IPv6 sockets with transport as ECN
capable, that is, ECT(0), when required by a congestion algorithm.

It is currently used and needed in DataCenter TCP (DCTCP), as it
requires both peers to assert ECT on all IP packets sent - it
uses ECN feedback (i.e. CE, Congestion Encountered information)
from switches inside the data center to derive feedback to the
end hosts.

Therefore, simply add a new flag to icsk_ca_ops. Note that DCTCP's
algorithm/behaviour slightly diverges from RFC3168, therefore this
is only (!) enabled iff the assigned congestion control ops module
has requested this. By that, we can tightly couple this logic really
only to the provided congestion control ops.

Joint work with Florian Westphal and Glenn Judd.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Glenn Judd <glenn.judd@morganstanley.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c