1*5440Swnj /* tcp.h 1.20 82/01/17 */ 24573Swnj 35085Swnj typedef u_long tcp_seq; 44573Swnj /* 54899Swnj * TCP header. 64924Swnj * Per RFC 793, September, 1981. 74573Swnj */ 84899Swnj struct tcphdr { 94899Swnj u_short th_sport; /* source port */ 104899Swnj u_short th_dport; /* destination port */ 115085Swnj tcp_seq th_seq; /* sequence number */ 125085Swnj tcp_seq th_ack; /* acknowledgement number */ 134573Swnj u_char 144899Swnj th_x2:4, /* (unused) */ 154899Swnj th_off:4; /* data offset */ 164575Swnj u_char th_flags; 175065Swnj #define TH_FIN 0x01 185065Swnj #define TH_SYN 0x02 195065Swnj #define TH_RST 0x04 205065Swnj #define TH_PUSH 0x08 215065Swnj #define TH_ACK 0x10 225065Swnj #define TH_URG 0x20 234899Swnj u_short th_win; /* window */ 244899Swnj u_short th_sum; /* checksum */ 254899Swnj u_short th_urp; /* urgent pointer */ 264499Swnj }; 27*5440Swnj 28*5440Swnj #define TCPOPT_EOL 0 29*5440Swnj #define TCPOPT_NOP 1 30*5440Swnj #define TCPOPT_MAXSEG 2 31*5440Swnj 32*5440Swnj #ifdef TCPTRUEOOB 33*5440Swnj /* 34*5440Swnj * True out-of-band as value added option. 35*5440Swnj * Advertise willingness with TCPOPT_WILOOB in 36*5440Swnj * initial segment. If peer is willing, will receive 37*5440Swnj * such also. Then can send TCPOPT_OOBDATA whenever oob data 38*5440Swnj * exists; peer should ack with TCPOPT_OOBACK in segment. 39*5440Swnj */ 40*5440Swnj #define TCPOPT_WILLOOB 64 /* bytes: 64, 2 */ 41*5440Swnj #define TCPOPT_OOBDATA 65 /* bytes: 65, 4, seq#, data */ 42*5440Swnj #define TCPOPT_OOBACK 66 /* bytes: 66, 3, ack# */ 43*5440Swnj #endif 44