xref: /original-bsd/sys/netinet/tcp.h (revision 0b685140)
1 /* tcp.h 1.21 82/01/18 */
2 
3 typedef	u_long	tcp_seq;
4 /*
5  * TCP header.
6  * Per RFC 793, September, 1981.
7  */
8 struct tcphdr {
9 	u_short	th_sport;		/* source port */
10 	u_short	th_dport;		/* destination port */
11 	tcp_seq	th_seq;			/* sequence number */
12 	tcp_seq	th_ack;			/* acknowledgement number */
13 	u_char
14 		th_x2:4,		/* (unused) */
15 		th_off:4;		/* data offset */
16 	u_char	th_flags;
17 #define	TH_FIN	0x01
18 #define	TH_SYN	0x02
19 #define	TH_RST	0x04
20 #define	TH_PUSH	0x08
21 #define	TH_ACK	0x10
22 #define	TH_URG	0x20
23 	u_short	th_win;			/* window */
24 	u_short	th_sum;			/* checksum */
25 	u_short	th_urp;			/* urgent pointer */
26 };
27 
28 #define	TCPOPT_EOL	0
29 #define	TCPOPT_NOP	1
30 #define	TCPOPT_MAXSEG	2
31 
32 #ifdef TCPTRUEOOB
33 /*
34  * True out-of-band as value added option.
35  * Advertise willingness with TCPOPT_WILOOB in
36  * initial segment.  If peer is willing, will receive
37  * such also.  Then can send TCPOPT_OOBDATA whenever oob data
38  * exists; peer should ack with TCPOPT_OOBACK in segment.
39  */
40 #define	TCPOPT_WILLOOB	64		/* bytes: 64, 2 */
41 #define	TCPOPT_OOBDATA	65		/* bytes: 65, 8, seq#, data, markseq */
42 #define	TCPOPT_OOBACK	66		/* bytes: 66, 3, ack# */
43 #endif
44