]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet/tcp.h
xnu-517.9.5.tar.gz
[apple/xnu.git] / bsd / netinet / tcp.h
index 5cd425b9ccbd2b8b62fde1886e0212a341bb397b..30479bd881b9eb45bf003b35a67147e1ce7bae83 100644 (file)
  * SUCH DAMAGE.
  *
  *     @(#)tcp.h       8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/tcp.h,v 1.13.2.3 2001/03/01 22:08:42 jlemon Exp $
  */
 
 #ifndef _NETINET_TCP_H_
 #define _NETINET_TCP_H_
+#include <sys/appleapiopts.h>
 
 typedef        u_int32_t tcp_seq;
 typedef u_int32_t tcp_cc;              /* connection count per rfc1644 */
@@ -87,7 +89,9 @@ struct tcphdr {
 #define        TH_PUSH 0x08
 #define        TH_ACK  0x10
 #define        TH_URG  0x20
-#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG)
+#define        TH_ECE  0x40
+#define        TH_CWR  0x80
+#define        TH_FLAGS        (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
 
        u_short th_win;                 /* window */
        u_short th_sum;                 /* checksum */
@@ -119,12 +123,23 @@ struct tcphdr {
 
 /*
  * Default maximum segment size for TCP.
- * With an IP MSS of 576, this is 536,
+ * With an IP MTU of 576, this is 536,
  * but 512 is probably more convenient.
  * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)).
  */
 #define        TCP_MSS 512
 
+/*
+ * TCP_MINMSS is defined to be 216 which is fine for the smallest
+ * link MTU (256 bytes, SLIP interface) in the Internet.
+ * However it is very unlikely to come across such low MTU interfaces
+ * these days (anno dato 2004).
+ * Probably it can be set to 512 without ill effects. But we play safe.
+ * See tcp_subr.c tcp_minmss SYSCTL declaration for more comments.
+ * Setting this to "0" disables the minmss check.
+ */
+#define        TCP_MINMSS 216
+
 /*
  * Default maximum segment size for TCP6.
  * With an IP6 MSS of 1280, this is 1220,
@@ -138,6 +153,8 @@ struct tcphdr {
 
 #define TCP_MAX_WINSHIFT       14      /* maximum window shift */
 
+#define TCP_MAXBURST           4       /* maximum segments in a burst */
+
 #define TCP_MAXHLEN    (0xf<<2)        /* max length of header in bytes */
 #define TCP_MAXOLEN    (TCP_MAXHLEN - sizeof(struct tcphdr))
                                        /* max space left for options */
@@ -149,5 +166,6 @@ struct tcphdr {
 #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_KEEPALIVE  0x10    /* idle time used when SO_KEEPALIVE is enabled */
 
 #endif