svn commit: r247525 - in stable/9/sys: netinet sys
John Baldwin
jhb at FreeBSD.org
Fri Mar 1 03:04:58 UTC 2013
Author: jhb
Date: Fri Mar 1 03:04:57 2013
New Revision: 247525
URL: http://svnweb.freebsd.org/changeset/base/247525
Log:
MFC 245823,245824,246210
- Use decimal values for UDP, TCP, and UNIX domain socket options rather
than hex to avoid implying that these constants should be treated as bit
masks.
- Add placeholder constants to reserve a portion of the socket option
name space for use by downstream vendors to add custom options.
Modified:
stable/9/sys/netinet/tcp.h
stable/9/sys/netinet/udp.h
stable/9/sys/sys/socket.h
stable/9/sys/sys/un.h
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/netinet/tcp.h
==============================================================================
--- stable/9/sys/netinet/tcp.h Fri Mar 1 02:59:56 2013 (r247524)
+++ stable/9/sys/netinet/tcp.h Fri Mar 1 03:04:57 2013 (r247525)
@@ -149,20 +149,25 @@ struct tcphdr {
#endif /* __BSD_VISIBLE */
/*
- * User-settable options (used with setsockopt).
+ * User-settable options (used with setsockopt). These are discrete
+ * values and are not masked together. Some values appear to be
+ * bitmasks for historical reasons.
*/
-#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */
+#define TCP_NODELAY 1 /* don't delay send to coalesce packets */
#if __BSD_VISIBLE
-#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) */
-#define TCP_INFO 0x20 /* retrieve tcp_info structure */
-#define TCP_CONGESTION 0x40 /* get/set congestion control algorithm */
-#define TCP_KEEPINIT 0x80 /* N, time to establish connection */
-#define TCP_KEEPIDLE 0x100 /* L,N,X start keeplives after this period */
-#define TCP_KEEPINTVL 0x200 /* L,N interval between keepalives */
-#define TCP_KEEPCNT 0x400 /* L,N number of keepalives before close */
+#define TCP_MAXSEG 2 /* set maximum segment size */
+#define TCP_NOPUSH 4 /* don't push last block of write */
+#define TCP_NOOPT 8 /* don't use TCP options */
+#define TCP_MD5SIG 16 /* use MD5 digests (RFC2385) */
+#define TCP_INFO 32 /* retrieve tcp_info structure */
+#define TCP_CONGESTION 64 /* get/set congestion control algorithm */
+#define TCP_KEEPINIT 128 /* N, time to establish connection */
+#define TCP_KEEPIDLE 256 /* L,N,X start keeplives after this period */
+#define TCP_KEEPINTVL 512 /* L,N interval between keepalives */
+#define TCP_KEEPCNT 1024 /* L,N number of keepalives before close */
+
+/* Start of reserved space for third-party user-settable options. */
+#define TCP_VENDOR SO_VENDOR
#define TCP_CA_NAME_MAX 16 /* max congestion control name length */
Modified: stable/9/sys/netinet/udp.h
==============================================================================
--- stable/9/sys/netinet/udp.h Fri Mar 1 02:59:56 2013 (r247524)
+++ stable/9/sys/netinet/udp.h Fri Mar 1 03:04:57 2013 (r247525)
@@ -48,8 +48,10 @@ struct udphdr {
/*
* User-settable options (used with setsockopt).
*/
-#define UDP_ENCAP 0x01
+#define UDP_ENCAP 1
+/* Start of reserved space for third-party user-settable options. */
+#define UDP_VENDOR SO_VENDOR
/*
* UDP Encapsulation of IPsec Packets options.
Modified: stable/9/sys/sys/socket.h
==============================================================================
--- stable/9/sys/sys/socket.h Fri Mar 1 02:59:56 2013 (r247524)
+++ stable/9/sys/sys/socket.h Fri Mar 1 03:04:57 2013 (r247525)
@@ -143,6 +143,15 @@ typedef __uid_t uid_t;
#endif
/*
+ * Space reserved for new socket options added by third-party vendors.
+ * This range applies to all socket option levels. New socket options
+ * in FreeBSD should always use an option value less than SO_VENDOR.
+ */
+#if __BSD_VISIBLE
+#define SO_VENDOR 0x80000000
+#endif
+
+/*
* Structure used for manipulating linger option.
*/
struct linger {
Modified: stable/9/sys/sys/un.h
==============================================================================
--- stable/9/sys/sys/un.h Fri Mar 1 02:59:56 2013 (r247524)
+++ stable/9/sys/sys/un.h Fri Mar 1 03:04:57 2013 (r247525)
@@ -53,9 +53,12 @@ struct sockaddr_un {
#if __BSD_VISIBLE
/* Socket options. */
-#define LOCAL_PEERCRED 0x001 /* retrieve peer credentials */
-#define LOCAL_CREDS 0x002 /* pass credentials to receiver */
-#define LOCAL_CONNWAIT 0x004 /* connects block until accepted */
+#define LOCAL_PEERCRED 1 /* retrieve peer credentials */
+#define LOCAL_CREDS 2 /* pass credentials to receiver */
+#define LOCAL_CONNWAIT 4 /* connects block until accepted */
+
+/* Start of reserved space for third-party socket options. */
+#define LOCAL_VENDOR SO_VENDOR
#ifndef _KERNEL
More information about the svn-src-stable-9
mailing list