Hello,
This patch should add support for -1 as "default" IPv6 traffic class, as
specified in IETF RFC3542 §6.5. Within the kernel, it seems tclass < 0
is already handled, but setsockopt, getsockopt and recvmsg calls won't
accept it from userland.
Signed-off-by: Remi Denis-Courmont <[EMAIL PROTECTED]>
diff -Nru linux-2.6.18-rc5-git6.orig/net/ipv6/datagram.c
linux-2.6.18-rc5-git6/net/ipv6/datagram.c
--- linux-2.6.18-rc5-git6.orig/net/ipv6/datagram.c 2006-03-20
07:53:29.000000000 +0200
+++ linux-2.6.18-rc5-git6/net/ipv6/datagram.c 2006-09-03
09:42:03.000000000 +0300
@@ -696,7 +696,7 @@
}
tc = *(int *)CMSG_DATA(cmsg);
- if (tc < 0 || tc > 0xff)
+ if (tc < -1 || tc > 0xff)
goto exit_f;
err = 0;
diff -Nru linux-2.6.18-rc5-git6.orig/net/ipv6/ipv6_sockglue.c
linux-2.6.18-rc5-git6/net/ipv6/ipv6_sockglue.c
--- linux-2.6.18-rc5-git6.orig/net/ipv6/ipv6_sockglue.c 2006-09-03
09:47:10.000000000 +0300
+++ linux-2.6.18-rc5-git6/net/ipv6/ipv6_sockglue.c 2006-09-03
09:41:31.000000000 +0300
@@ -362,7 +362,7 @@
break;
case IPV6_TCLASS:
- if (val < 0 || val > 0xff)
+ if (val < -1 || val > 0xff)
goto e_inval;
np->tclass = val;
retv = 0;
@@ -947,6 +947,8 @@
case IPV6_TCLASS:
val = np->tclass;
+ if (val < 0)
+ val = 0;
break;
case IPV6_RECVTCLASS:
--
Rémi Denis-Courmont
http://www.remlab.net/
--
VGER BF report: U 0.93636
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html