]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcp.h
From Albert Chin: IBM's C compiler, at least for AIX 4.3.3, doesn't
[tcpdump] / tcp.h
diff --git a/tcp.h b/tcp.h
index 0398868ad90303b0616a7824eb0d4db0919a7ed4..f7e7d6eac95e7c0054de4cf9a1973dd6456ae8a5 100644 (file)
--- a/tcp.h
+++ b/tcp.h
@@ -1,4 +1,4 @@
-/* @(#) $Header: /tcpdump/master/tcpdump/tcp.h,v 1.6 2000-10-03 03:14:47 itojun Exp $ (LBL) */
+/* @(#) $Header: /tcpdump/master/tcpdump/tcp.h,v 1.11 2004-03-23 07:15:37 guy Exp $ (LBL) */
 /*
  * Copyright (c) 1982, 1986, 1993
  *     The Regents of the University of California.  All rights reserved.
  *     @(#)tcp.h       8.1 (Berkeley) 6/10/93
  */
 
-#ifndef BYTE_ORDER
-#define        LITTLE_ENDIAN   1234    /* least-significant byte first (vax, pc) */
-#define        BIG_ENDIAN      4321    /* most-significant byte first (IBM, net) */
-#define        PDP_ENDIAN      3412    /* LSB first in word, MSW first in long (pdp)*/
-
-#ifdef WORDS_BIGENDIAN
-#define BYTE_ORDER     BIG_ENDIAN
-#else
-#define BYTE_ORDER     LITTLE_ENDIAN
-#endif /* WORDS_BIGENDIAN */
-#endif /* BYTE_ORDER */
-
-#if !defined(BYTE_ORDER) || \
-    (BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \
-    BYTE_ORDER != PDP_ENDIAN)
-       /* you must determine what the correct bit order is for
-        * your compiler - the next line is an intentional error
-        * which will force your compiles to bomb until you fix
-        * the above macros.
-        */
-  #error "Undefined or invalid BYTE_ORDER";
-#endif
-
 typedef        u_int32_t       tcp_seq;
 /*
  * TCP header.
@@ -76,6 +53,8 @@ struct tcphdr {
 #define        TH_PUSH 0x08
 #define        TH_ACK  0x10
 #define        TH_URG  0x20
+#define TH_ECNECHO     0x40    /* ECN Echo */
+#define TH_CWR         0x80    /* ECN Cwnd Reduced */
        u_int16_t       th_win;                 /* window */
        u_int16_t       th_sum;                 /* checksum */
        u_int16_t       th_urp;                 /* urgent pointer */
@@ -85,14 +64,21 @@ struct tcphdr {
 #define        TCPOPT_NOP              1
 #define        TCPOPT_MAXSEG           2
 #define    TCPOLEN_MAXSEG              4
-#define TCPOPT_WINDOW          3
-#define    TCPOLEN_WINDOW              3
-#define TCPOPT_SACK_PERMITTED  4               /* Experimental */
-#define    TCPOLEN_SACK_PERMITTED      2
-#define TCPOPT_SACK            5               /* Experimental */
-#define TCPOPT_TIMESTAMP       8
+#define        TCPOPT_WSCALE           3       /* window scale factor (rfc1323) */
+#define        TCPOPT_SACKOK           4       /* selective ack ok (rfc2018) */
+#define        TCPOPT_SACK             5       /* selective ack (rfc2018) */
+#define        TCPOPT_ECHO             6       /* echo (rfc1072) */
+#define        TCPOPT_ECHOREPLY        7       /* echo (rfc1072) */
+#define TCPOPT_TIMESTAMP       8       /* timestamp (rfc1323) */
 #define    TCPOLEN_TIMESTAMP           10
 #define    TCPOLEN_TSTAMP_APPA         (TCPOLEN_TIMESTAMP+2) /* appendix A */
+#define TCPOPT_CC              11      /* T/TCP CC options (rfc1644) */
+#define TCPOPT_CCNEW           12      /* T/TCP CC options (rfc1644) */
+#define TCPOPT_CCECHO          13      /* T/TCP CC options (rfc1644) */
+#define TCPOPT_SIGNATURE       19      /* Keyed MD5 (rfc2385) */
+#define    TCPOLEN_SIGNATURE           18
+
+#define TCP_SIGLEN 16                  /* length of an option 19 digest */
 
 #define TCPOPT_TSTAMP_HDR      \
     (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)