]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcp.h
Avoid -E and -M options inconsistencies with no libcrypto
[tcpdump] / tcp.h
diff --git a/tcp.h b/tcp.h
index 1084db9a2250dcd8ab631319b998b7d0c7c335ac..6be42737f5dda7613a6056683d24c2c0870c1879 100644 (file)
--- a/tcp.h
+++ b/tcp.h
  *     @(#)tcp.h       8.1 (Berkeley) 6/10/93
  */
 
-typedef        uint32_t        tcp_seq;
 /*
  * TCP header.
  * Per RFC 793, September, 1981.
  */
 struct tcphdr {
-       uint16_t        th_sport;               /* source port */
-       uint16_t        th_dport;               /* destination port */
-       tcp_seq         th_seq;                 /* sequence number */
-       tcp_seq         th_ack;                 /* acknowledgement number */
-       uint8_t         th_offx2;               /* data offset, rsvd */
-       uint8_t         th_flags;
-       uint16_t        th_win;                 /* window */
-       uint16_t        th_sum;                 /* checksum */
-       uint16_t        th_urp;                 /* urgent pointer */
-} UNALIGNED;
+       nd_uint16_t     th_sport;               /* source port */
+       nd_uint16_t     th_dport;               /* destination port */
+       nd_uint32_t     th_seq;                 /* sequence number */
+       nd_uint32_t     th_ack;                 /* acknowledgement number */
+       nd_uint8_t      th_offx2;               /* data offset, rsvd */
+       nd_uint8_t      th_flags;
+       nd_uint16_t     th_win;                 /* window */
+       nd_uint16_t     th_sum;                 /* checksum */
+       nd_uint16_t     th_urp;                 /* urgent pointer */
+};
 
-#define TH_OFF(th)     (((th)->th_offx2 & 0xf0) >> 4)
+#define TH_OFF(th)     ((GET_U_1((th)->th_offx2) & 0xf0) >> 4)
+#define tcp_get_flags(th)      ((GET_U_1((th)->th_flags)) | \
+                       ((GET_U_1((th)->th_offx2) & 0x0f) << 8))
 
 /* TCP flags */
 #define        TH_FIN     0x01
@@ -61,6 +62,8 @@ struct tcphdr {
 #define        TH_URG     0x20
 #define TH_ECNECHO 0x40        /* ECN Echo */
 #define TH_CWR    0x80 /* ECN Cwnd Reduced */
+#define        TH_AE     0x100 /* AccECN (draft-ietf-tcpm-accurate-ecn;rfc7560) part of L4S (rfc9330) */
+extern const struct tok tcp_flag_values[];
 
 
 #define        TCPOPT_EOL              0
@@ -84,7 +87,7 @@ struct tcphdr {
 #define TCPOPT_SCPS            20      /* SCPS-TP (CCSDS 714.0-B-2) */
 #define        TCPOPT_UTO              28      /* tcp user timeout (rfc5482) */
 #define           TCPOLEN_UTO                  4
-#define TCPOPT_AUTH            29      /* Enhanced AUTH option (rfc5925) */
+#define TCPOPT_TCPAO           29      /* TCP authentication option (rfc5925) */
 #define        TCPOPT_MPTCP            30      /* MPTCP options */
 #define TCPOPT_FASTOPEN                34      /* TCP Fast Open (rfc7413) */
 #define TCPOPT_EXPERIMENT2     254     /* experimental headers (rfc4727) */
@@ -104,15 +107,15 @@ struct tcphdr {
 #ifndef SMTP_PORT
 #define SMTP_PORT              25
 #endif
+#ifndef WHOIS_PORT
+#define WHOIS_PORT             43
+#endif
 #ifndef NAMESERVER_PORT
 #define NAMESERVER_PORT                53
 #endif
 #ifndef HTTP_PORT
 #define HTTP_PORT              80
 #endif
-#ifndef NETBIOS_NS_PORT
-#define NETBIOS_NS_PORT                137     /* RFC 1001, RFC 1002 */
-#endif
 #ifndef NETBIOS_SSN_PORT
 #define NETBIOS_SSN_PORT       139     /* RFC 1001, RFC 1002 */
 #endif
@@ -140,6 +143,9 @@ struct tcphdr {
 #ifndef NFS_PORT
 #define NFS_PORT               2049
 #endif
+#ifndef REDIS_PORT
+#define REDIS_PORT             6379
+#endif
 #ifndef OPENFLOW_PORT_OLD
 #define OPENFLOW_PORT_OLD      6633
 #endif
@@ -155,6 +161,3 @@ struct tcphdr {
 #ifndef BEEP_PORT
 #define BEEP_PORT              10288
 #endif
-#ifndef REDIS_PORT
-#define REDIS_PORT             6379
-#endif