From owner-freebsd-net@FreeBSD.ORG Tue Jan 15 20:27:55 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 4F7C9891 for ; Tue, 15 Jan 2013 20:27:55 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 2EBA9642 for ; Tue, 15 Jan 2013 20:27:55 +0000 (UTC) Received: from pakbsde14.localnet (unknown [38.105.238.108]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 978DAB948; Tue, 15 Jan 2013 15:27:54 -0500 (EST) From: John Baldwin To: freebsd-net@freebsd.org Subject: Re: [PATCH] Don't imply TCP and UDP socket options are bitmasks Date: Tue, 15 Jan 2013 14:32:15 -0500 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p22; KDE/4.5.5; amd64; ; ) References: <201301141550.13577.jhb@freebsd.org> <201301141656.37175.jhb@freebsd.org> <50F483E8.2040107@mu.org> In-Reply-To: <50F483E8.2040107@mu.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201301151432.15347.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 15 Jan 2013 15:27:54 -0500 (EST) Cc: Alfred Perlstein X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jan 2013 20:27:55 -0000 On Monday, January 14, 2013 5:17:12 pm Alfred Perlstein wrote: > On 1/14/13 4:56 PM, John Baldwin wrote: > > On Monday, January 14, 2013 4:42:16 pm Alfred Perlstein wrote: > >> Wouldn't a comment over the code suffice? > >> > >> Something like your email as a header would actually work very nicely! > >> > >> I think just using decimal would be more confusing than explicitly > >> calling it out like: > >> > >> /* begin enumerated (not bitmask) socket option specifiers */ > >> #define TCP_MAXSEG 0x02 /* set maximum segment size */ > >> #define TCP_NOPUSH 0x04 /* don't push last block of write */ > >> #define TCP_NOOPT 0x08 /* don't use TCP options */ > >> #define TCP_MD5SIG 0x10 /* use MD5 digests (RFC2385) */ > >> /* end enumerated socket option specifiers */ > > I have a patch I'll post next which will add a new option as '3'. I think that > > will make it more obvious and avoid having new options follow the old pattern. > > > Any objection to adding the contents of that email as a comment > section? It really would help. We don't generally do this for other enumerations like ioctl values as it is generally obvious to the reader. I think for UDP having one constant called '1' should be obvious enough. TCP might indeed warrany a comment since it has several existing values that are powers of 2. How about this: /* * User-settable options (used with setsockopt). These are discrete * values and should not be masked together. Many values appear to be * bitmasks for legacy reasons. */ -- John Baldwin