From marka@isc.org  Mon Feb 20 01:13:48 2012
Return-Path: <marka@isc.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D3D59106566C
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 20 Feb 2012 01:13:48 +0000 (UTC)
	(envelope-from marka@isc.org)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [IPv6:2001:4f8:0:2::2b])
	by mx1.freebsd.org (Postfix) with ESMTP id B0CBF8FC13
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 20 Feb 2012 01:13:48 +0000 (UTC)
Received: from bikeshed.isc.org (bikeshed.isc.org [IPv6:2001:4f8:3:d::19])
	(using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
	(Client CN "mail.isc.org", Issuer "RapidSSL CA" (not verified))
	by mx.pao1.isc.org (Postfix) with ESMTPS id 139C7C941E
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 20 Feb 2012 01:13:28 +0000 (UTC)
	(envelope-from marka@isc.org)
Received: from sex.dv.isc.org (sex.dv.isc.org [IPv6:2001:470:1f00:820:218:f3ff:feba:9a37])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(Client did not present a certificate)
	by bikeshed.isc.org (Postfix) with ESMTPSA id A6E0B216C31
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 20 Feb 2012 01:13:27 +0000 (UTC)
	(envelope-from marka@isc.org)
Received: from sex.dv.isc.org (localhost [127.0.0.1])
	by sex.dv.isc.org (8.14.5/8.14.5) with ESMTP id q1K1DPLs012539
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 20 Feb 2012 12:13:25 +1100 (EST)
	(envelope-from marka@sex.dv.isc.org)
Received: (from marka@localhost)
	by sex.dv.isc.org (8.14.5/8.14.5/Submit) id q1K1DOCX012538;
	Mon, 20 Feb 2012 12:13:24 +1100 (EST)
	(envelope-from marka)
Message-Id: <201202200113.q1K1DOCX012538@sex.dv.isc.org>
Date: Mon, 20 Feb 2012 12:13:24 +1100 (EST)
From: Mark Andrews <marka@isc.org>
Reply-To: Mark Andrews <marka@isc.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: Feature parity between IP_TOS and IPV6_TCLASS
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         165305
>Category:       kern
>Synopsis:       [ip6] [request] Feature parity between IP_TOS and IPV6_TCLASS
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-net
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 20 01:20:10 UTC 2012
>Closed-Date:    
>Last-Modified:  Tue Mar 19 23:10:01 UTC 2013
>Originator:     Mark Andrews
>Release:        FreeBSD 8.2-STABLE i386
>Organization:
ISC
>Environment:
System: FreeBSD sex.dv.isc.org 8.2-STABLE FreeBSD 8.2-STABLE #15: Thu Dec 29 08:21:01 EST 2011 marka@sex.dv.isc.org:/usr/obj/usr/src/sys/DEBUG i386


>Description:

	IPV6_TCLASS can be set on both a socket basis and on a per
	packet basis.  Additionally IPV6_TCLASS can be received via
	a control message by setting IPV6_RECVTCLASS on the socket.

	IP_TOS can only be set socket basis with no per packet
	control which makes it setting different the TOS in UDP
	replies difficult (i.e.  require raw sockets to be used).

	Additionally the only way to obtain the IP_TOS field is to
	use raw sockets or use a packet filter.
	
>How-To-Repeat:
>Fix:

	Extend control_msg to support setting IP_TOS on a per packet
	basis.

	Add a new setsockopt (IP_RECVTOS to be consistent with
	linux's extension to the socket API) and return the value
	via a control_msg.
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-net 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Mon Feb 20 01:56:52 UTC 2012 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=165305 

From: Mark Andrews <marka@isc.org>
To: bug-followup@FreeBSD.org,
 marka@isc.org
Cc:  
Subject: Re: kern/165305: [ip6] [request] Feature parity between IP_TOS and IPV6_TCLASS
Date: Wed, 20 Mar 2013 10:05:41 +1100

 As a further followup on the size issue.  It should be possible to =
 accept either int or char
 as the kernel checks the size.=

From: Mark Andrews <marka@isc.org>
To: bug-followup@FreeBSD.org,
 marka@isc.org
Cc:  
Subject: Re: kern/165305: [ip6] [request] Feature parity between IP_TOS and IPV6_TCLASS
Date: Wed, 20 Mar 2013 10:01:49 +1100

 Thanks for adding this.  It appears to work with FreeBSD 8.4-BETA1 #25 =
 r248493M.
 
 The only point of contention is using sizeof(char) rather than =
 sizeof(int).   Using char
 is extending the exception from recvmsg and IP_TOS.  =
 sendmsg/recvmsg/setsockopt
 should all be using the same size.  I had to read the kernel code to =
 work out that it
 was a 'char' as the header files say 'int' and that is what setsockopt =
 uses.
 
 Mark=
>Unformatted:
