* @(#)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 */
+ 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 */
} UNALIGNED;
-#define TH_OFF(th) (((th)->th_offx2 & 0xf0) >> 4)
+#define TH_OFF(th) ((EXTRACT_U_1((th)->th_offx2) & 0xf0) >> 4)
/* TCP flags */
#define TH_FIN 0x01