about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-01-09 23:04:32 -0800
committerDavid S. Miller <davem@davemloft.net>2013-01-09 23:09:43 -0800
commitb5407047839c1f0df26196597c9ec6fbbde4cac1 (patch)
treea2a8d69a6b319f987649cfa1b2d037a9dbf59405
parent318cd0b1809e203ab57b6c1afe4928bc439ea7ee (diff)
downloadglibc-b5407047839c1f0df26196597c9ec6fbbde4cac1.tar.gz
glibc-b5407047839c1f0df26196597c9ec6fbbde4cac1.tar.xz
glibc-b5407047839c1f0df26196597c9ec6fbbde4cac1.zip
Sync netinet/tcp.h with upstream Linux kernel.
	[BZ# 15003]
	* sysdeps/gnu/netinet/tcp.h (TCP_COOKIE_TRANSACTIONS,
	TCP_THIN_LINEAR_TIMEOUTS, TCP_THIN_DUPACK, TCP_USER_TIMEOUT,
	TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS,
	TCP_FASTOPEN): Define.
	(tcp_repair_opt): New structure.
	(TCP_NO_QUEUE, TCP_RECV_QUEUE, TCP_SEND_QUEUE, TCP_QUEUES_NR): New
	enum values.
	(TCP_COOKIE_MIN, TCP_COOKIE_MAX, TCP_COOKIE_PAIR_SIZE,
	TCP_COOKIE_IN_ALWAYS, TCP_COOKIE_OUT_NEVER, TCP_S_DATA_IN,
	TCP_S_DATA_OUT, TCP_MSS_DEFAULT, TCP_MSS_DESIRED): Define.
	(tcp_cookie_transactions): New structure.
-rw-r--r--ChangeLog15
-rw-r--r--NEWS2
-rw-r--r--sysdeps/gnu/netinet/tcp.h80
3 files changed, 82 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 53cdfa16e0..b3a214c292 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2013-01-09  David S. Miller  <davem@davemloft.net>
+
+	[BZ# 15003]
+	* sysdeps/gnu/netinet/tcp.h (TCP_COOKIE_TRANSACTIONS,
+	TCP_THIN_LINEAR_TIMEOUTS, TCP_THIN_DUPACK, TCP_USER_TIMEOUT,
+	TCP_REPAIR, TCP_REPAIR_QUEUE, TCP_QUEUE_SEQ, TCP_REPAIR_OPTIONS,
+	TCP_FASTOPEN): Define.
+	(tcp_repair_opt): New structure.
+	(TCP_NO_QUEUE, TCP_RECV_QUEUE, TCP_SEND_QUEUE, TCP_QUEUES_NR): New
+	enum values.
+	(TCP_COOKIE_MIN, TCP_COOKIE_MAX, TCP_COOKIE_PAIR_SIZE,
+	TCP_COOKIE_IN_ALWAYS, TCP_COOKIE_OUT_NEVER, TCP_S_DATA_IN,
+	TCP_S_DATA_OUT, TCP_MSS_DEFAULT, TCP_MSS_DESIRED): Define.
+	(tcp_cookie_transactions): New structure.
+
 2013-01-09  Andreas Jaeger  <aj@suse.de>
 
 	* sysdeps/gnu/netinet/tcp.h (TCPI_OPT_SYN_DATA)
diff --git a/NEWS b/NEWS
index 3a155555d1..619d0f2205 100644
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,7 @@ Version 2.17
   14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805,
   14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835,
   14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879,
-  14889, 14893, 14898, 14914.
+  14889, 14893, 14898, 14914, 15003.
 
 * Optimization of memcpy for MIPS.
 
diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h
index 278fc9d8a5..b62a696e5b 100644
--- a/sysdeps/gnu/netinet/tcp.h
+++ b/sysdeps/gnu/netinet/tcp.h
@@ -37,20 +37,29 @@
 /*
  * User-settable options (used with setsockopt).
  */
-#define	TCP_NODELAY	 1	/* Don't delay send to coalesce packets  */
-#define	TCP_MAXSEG	 2	/* Set maximum segment size  */
-#define TCP_CORK	 3	/* Control sending of partial frames  */
-#define TCP_KEEPIDLE	 4	/* Start keeplives after this period */
-#define TCP_KEEPINTVL	 5	/* Interval between keepalives */
-#define TCP_KEEPCNT	 6	/* Number of keepalives before death */
-#define TCP_SYNCNT	 7	/* Number of SYN retransmits */
-#define TCP_LINGER2	 8	/* Life time of orphaned FIN-WAIT-2 state */
-#define TCP_DEFER_ACCEPT 9	/* Wake up listener only when data arrive */
-#define TCP_WINDOW_CLAMP 10	/* Bound advertised window */
-#define TCP_INFO	 11	/* Information about this connection. */
-#define	TCP_QUICKACK	 12	/* Bock/reenable quick ACKs.  */
-#define TCP_CONGESTION	 13	/* Congestion control algorithm.  */
-#define TCP_MD5SIG	 14	/* TCP MD5 Signature (RFC2385) */
+#define	TCP_NODELAY		 1  /* Don't delay send to coalesce packets  */
+#define	TCP_MAXSEG		 2  /* Set maximum segment size  */
+#define TCP_CORK		 3  /* Control sending of partial frames  */
+#define TCP_KEEPIDLE		 4  /* Start keeplives after this period */
+#define TCP_KEEPINTVL		 5  /* Interval between keepalives */
+#define TCP_KEEPCNT		 6  /* Number of keepalives before death */
+#define TCP_SYNCNT		 7  /* Number of SYN retransmits */
+#define TCP_LINGER2		 8  /* Life time of orphaned FIN-WAIT-2 state */
+#define TCP_DEFER_ACCEPT	 9  /* Wake up listener only when data arrive */
+#define TCP_WINDOW_CLAMP	 10 /* Bound advertised window */
+#define TCP_INFO		 11 /* Information about this connection. */
+#define	TCP_QUICKACK		 12 /* Bock/reenable quick ACKs.  */
+#define TCP_CONGESTION		 13 /* Congestion control algorithm.  */
+#define TCP_MD5SIG		 14 /* TCP MD5 Signature (RFC2385) */
+#define TCP_COOKIE_TRANSACTIONS	 15 /* TCP Cookie Transactions */
+#define TCP_THIN_LINEAR_TIMEOUTS 16 /* Use linear timeouts for thin streams*/
+#define TCP_THIN_DUPACK		 17 /* Fast retrans. after 1 dupack */
+#define TCP_USER_TIMEOUT	 18 /* How long for loss retry before timeout */
+#define TCP_REPAIR		 19 /* TCP sock is under repair right now */
+#define TCP_REPAIR_QUEUE	 20 /* Set TCP queue to repair */
+#define TCP_QUEUE_SEQ		 21 /* Set sequence number of repaired queue. */
+#define TCP_REPAIR_OPTIONS	 22 /* Repair TCP connection options */
+#define TCP_FASTOPEN		 23 /* Enable FastOpen on listeners */
 
 #ifdef __USE_MISC
 # include <sys/types.h>
@@ -243,6 +252,49 @@ struct tcp_md5sig
   u_int8_t	tcpm_key[TCP_MD5SIG_MAXKEYLEN];	/* Key (binary).  */
 };
 
+/* For socket repair options.  */
+struct tcp_repair_opt
+{
+  u_int32_t	opt_code;
+  u_int32_t	opt_val;
+};
+
+/* Queue to repair, for TCP_REPAIR_QUEUE.  */
+enum
+{
+  TCP_NO_QUEUE,
+  TCP_RECV_QUEUE,
+  TCP_SEND_QUEUE,
+  TCP_QUEUES_NR,
+};
+
+/* For cookie transactions socket options.  */
+#define TCP_COOKIE_MIN		8		/*  64-bits */
+#define TCP_COOKIE_MAX		16		/* 128-bits */
+#define TCP_COOKIE_PAIR_SIZE	(2*TCP_COOKIE_MAX)
+
+/* Flags for both getsockopt and setsockopt */
+#define TCP_COOKIE_IN_ALWAYS	(1 << 0)	/* Discard SYN without cookie */
+#define TCP_COOKIE_OUT_NEVER	(1 << 1)	/* Prohibit outgoing cookies,
+						 * supercedes everything. */
+
+/* Flags for getsockopt */
+#define TCP_S_DATA_IN		(1 << 2)	/* Was data received? */
+#define TCP_S_DATA_OUT		(1 << 3)	/* Was data sent? */
+
+#define TCP_MSS_DEFAULT		 536U	/* IPv4 (RFC1122, RFC2581) */
+#define TCP_MSS_DESIRED		1220U	/* IPv6 (tunneled), EDNS0 (RFC3226) */
+
+struct tcp_cookie_transactions
+{
+  u_int16_t	tcpct_flags;
+  u_int8_t	__tcpct_pad1;
+  u_int8_t	tcpct_cookie_desired;
+  u_int16_t	tcpct_s_data_desired;
+  u_int16_t	tcpct_used;
+  u_int8_t	tcpct_value[TCP_MSS_DEFAULT];
+};
+
 #endif /* Misc.  */
 
 #endif /* netinet/tcp.h */