ipv6: restore correct ECN handling on TCP xmit
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 6 May 2011 23:44:46 +0000 (23:44 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 May 2011 22:52:14 +0000 (18:52 -0400)
commitca06707022d6ba4744198a8ebbe4994786b0c613
tree829c4c904b4e3c21c9ae5dd05e5262cc430502c9
parent2592a7354092afd304a8c067319b15ab1e441e35
ipv6: restore correct ECN handling on TCP xmit

Since commit e9df2e8fd8fbc9 (Use appropriate sock tclass setting for
routing lookup) we lost ability to properly add ECN codemarks to ipv6
TCP frames.

It seems like TCP_ECN_send() calls INET_ECN_xmit(), which only sets the
ECN bit in the IPv4 ToS field (inet_sk(sk)->tos), but after the patch,
what's checked is inet6_sk(sk)->tclass, which is a completely different
field.

Close bug https://bugzilla.kernel.org/show_bug.cgi?id=34322

[Eric Dumazet] : added the INET_ECN_dontxmit() fix and replace macros
by inline functions for clarity.

Signed-off-by: Steinar H. Gunderson <sgunderson@bigfoot.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_ecn.h