tcp: extend ECN sysctl to allow server-side only ECN
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Mon, 4 May 2009 18:07:36 +0000 (11:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 May 2009 18:07:36 +0000 (11:07 -0700)
commit255cac91c3c9ce7dca7713b93ab03c75b7902e0e
tree5af8ef9d4644615a57a0d560dd942cca42d88851
parent513de11bba246b7a67df4c314d9fc936b6a75d0e
tcp: extend ECN sysctl to allow server-side only ECN

This should be very safe compared with full enabled, so I see
no reason why it shouldn't be done right away. As ECN can only
be negotiated if the SYN sending party is also supporting it,
somebody in the loop probably knows what he/she is doing. If
SYN does not ask for ECN, the server side SYN-ACK is identical
to what it is without ECN. Thus it's quite safe.

The chosen value is safe w.r.t to existing configs which
choose to currently set manually either 0 or 1 but
silently upgrades those who have not explicitly requested
ECN off.

Whether to just enable both sides comes up time to time but
unless that gets done now we can at least make the servers
aware of ECN already. As there are some known problems to occur
if ECN is enabled, it's currently questionable whether there's
any real gain from enabling clients as servers mostly won't
support it anyway (so we'd hit just the negative sides). After
enabling the servers and getting that deployed, the client end
enable really has some potential gain too.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/ip-sysctl.txt
net/ipv4/tcp_input.c
net/ipv4/tcp_output.c