]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcp.h
Use "len", not "payload_len", as we step through the packet; use
[tcpdump] / tcp.h
diff --git a/tcp.h b/tcp.h
index 487c166a3ab6f284312265e8ef42464ea6a66668..43587ec443f00dc969e9f85ff69746d49c3f94c1 100644 (file)
--- a/tcp.h
+++ b/tcp.h
@@ -1,4 +1,4 @@
-/* @(#) $Header: /tcpdump/master/tcpdump/tcp.h,v 1.4 2000-10-03 02:26:53 itojun Exp $ (LBL) */
+/* @(#) $Header: /tcpdump/master/tcpdump/tcp.h,v 1.10 2002-12-11 07:14:11 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_int   tcp_seq;
+typedef        u_int32_t       tcp_seq;
 /*
  * TCP header.
  * Per RFC 793, September, 1981.
  */
 struct tcphdr {
-       u_short th_sport;               /* source port */
-       u_short th_dport;               /* destination port */
-       tcp_seq th_seq;                 /* sequence number */
-       tcp_seq th_ack;                 /* acknowledgement number */
-       u_char  th_x2off;
-#define TH_OFF(th)     ((th)->th_x2off & 0x0f) /* data offset, th_off */
-       u_char  th_flags;
+       u_int16_t       th_sport;               /* source port */
+       u_int16_t       th_dport;               /* destination port */
+       tcp_seq         th_seq;                 /* sequence number */
+       tcp_seq         th_ack;                 /* acknowledgement number */
+       u_int8_t        th_offx2;               /* data offset, rsvd */
+#define TH_OFF(th)     (((th)->th_offx2 & 0xf0) >> 4)
+       u_int8_t        th_flags;
 #define        TH_FIN  0x01
 #define        TH_SYN  0x02
 #define        TH_RST  0x04
 #define        TH_PUSH 0x08
 #define        TH_ACK  0x10
 #define        TH_URG  0x20
-       u_short th_win;                 /* window */
-       u_short th_sum;                 /* checksum */
-       u_short th_urp;                 /* urgent pointer */
+#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 */
 };
 
 #define        TCPOPT_EOL              0
 #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_TSTAMP_HDR      \
     (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)