12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- * Copyright 2007, Broadcom Corporation
- * All Rights Reserved.
- *
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- * Fundamental constants relating to TCP Protocol
- *
- */
- #ifndef _bcmtcp_h_
- #define _bcmtcp_h_
- /* enable structure packing */
- #if defined(__GNUC__)
- #define PACKED __attribute__((packed))
- #else
- #pragma pack(1)
- #define PACKED
- #endif
- #define TCP_SRC_PORT_OFFSET 0 /* TCP source port offset */
- #define TCP_DEST_PORT_OFFSET 2 /* TCP dest port offset */
- #define TCP_CHKSUM_OFFSET 16 /* TCP body checksum offset */
- /* These fields are stored in network order */
- struct bcmtcp_hdr
- {
- uint16 src_port; /* Source Port Address */
- uint16 dst_port; /* Destination Port Address */
- uint32 seq_num; /* TCP Sequence Number */
- uint32 ack_num; /* TCP Sequence Number */
- uint16 hdrlen_rsvd_flags; /* Header length, reserved bits and flags */
- uint16 tcpwin; /* TCP window */
- uint16 chksum; /* Segment checksum with pseudoheader */
- uint16 urg_ptr; /* Points to seq-num of byte following urg data */
- } PACKED;
- #undef PACKED
- #if !defined(__GNUC__)
- #pragma pack()
- #endif
- /* Byte offset of flags in TCP header */
- #define TCP_FLAGS_OFFSET 13
- #define TCP_FLAGS_FIN 0x01
- #define TCP_FLAGS_SYN 0x02
- #define TCP_FLAGS_RST 0x03
- #define TCP_FLAGS_PSH 0x04
- #define TCP_FLAGS_ACK 0x10
- #define TCP_FLAGS_URG 0x20
- #define TCP_FLAGS_ECN 0x40
- #define TCP_FLAGS_CWR 0x80
- #define TCP_FLAGS(tcp_hdr) (((uint8 *)(tcp_hdr))[TCP_FLAGS_OFFSET])
- #define TCP_IS_ACK(tcp_hdr) (TCP_FLAGS(tcp_hdr) & TCP_FLAGS_ACK)
- #define TCP_SRC_PORT(tcp_hdr) (ntoh16(((struct bcmtcp_hdr*)(tcp_hdr))->src_port))
- #define TCP_DST_PORT(tcp_hdr) (ntoh16(((struct bcmtcp_hdr*)(tcp_hdr))->dst_port))
- #define TCP_SEQ_NUM(tcp_hdr) (ntoh32(((struct bcmtcp_hdr*)(tcp_hdr))->seq_num))
- #define TCP_ACK_NUM(tcp_hdr) (ntoh32(((struct bcmtcp_hdr*)(tcp_hdr))->ack_num))
- #endif /* #ifndef _bcmtcp_h_ */
|