[PATCH] Don't imply TCP and UDP socket options are bitmasks
John Baldwin
jhb at freebsd.org
Tue Jan 15 20:27:53 UTC 2013
On Tuesday, January 15, 2013 3:49:33 am Lawrence Stewart wrote:
> On 01/15/13 07:50, John Baldwin wrote:
> > The constants used for TCP and UDP socket options (TCP_NODELAY, etc.) are
> > currently defined as hex values that are individual bits. However, socket
> > options are never masked together, they are used as a simple enumeration of
> > discrete values. Using a bitmask forces us to run out of bits and makes it
> > harder for vendors to try to use a high range of values for local custom
> > options (hoping that they never conflict with a new option value added in
> > stock FreeBSD).
>
> Yup. Should we be explicitly #defining the boundary between "bits
> reserved for FreeBSD" and "bits for private vendor use"?
Oh, we could if you wanted. I'm using 0x1000 locally for both TCP and UDP,
but those are completely arbitrary values. Saner ones might be 0x8000000 if
we want to do that explicitly. We could perhaps just say that is true for all
socket option levels (that is, just define one SO_VENDOR constant or some such
but say it applies to all levels)?
--
John Baldwin
More information about the freebsd-net
mailing list