inet6: Set default traffic class
authorGerrit Renker <gerrit@erg.abdn.ac.uk>
Sun, 9 Aug 2009 08:12:49 +0000 (08:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Aug 2009 23:43:32 +0000 (16:43 -0700)
commit26ced1e4aa181c01379b0b7ef156a29c000d1f8c
treee5f2544f678c081582b70ce88281af3e4e2b28cd
parente651f03afe833326faa0abe55948c1c6cfd0b8ac
inet6: Set default traffic class

This patch addresses:
 * assigning -1 to np->tclass as it is currently done is not very meaningful,
   since it turns into 0xff;
 * RFC 3542, 6.5 allows -1 for clearing the sticky IPV6_TCLASS option
   and specifies -1 to mean "use kernel default":
   - RFC 2460, 7. requires that the default traffic class must be zero for
     all 8 bits,
   - this is consistent with RFC 2474, 4.1 which recommends a default PHB of 0,
     in combination with a value of the ECN field of "non-ECT" (RFC 3168, 5.).

This patch changes the meaning of -1 from assigning 255 to mean the RFC 2460
default, which at the same time allows to satisfy clearing the sticky TCLASS
option as per RFC 3542, 6.5.

(When passing -1 as ancillary data, the fallback remains np->tclass, which
 has either been set via socket options, or contains the default value.)

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ipv6_sockglue.c