|
|
1.1 root 1: /*
2: * Copyright (c) 1982, 1986 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: *
17: * @(#)tcp.h 7.5 (Berkeley) 6/29/88
18: */
19:
20: typedef u_long tcp_seq;
21: /*
22: * TCP header.
23: * Per RFC 793, September, 1981.
24: */
25: struct tcphdr {
26: u_short th_sport; /* source port */
27: u_short th_dport; /* destination port */
28: tcp_seq th_seq; /* sequence number */
29: tcp_seq th_ack; /* acknowledgement number */
30: #if BYTE_ORDER == LITTLE_ENDIAN
31: u_char th_x2:4, /* (unused) */
32: th_off:4; /* data offset */
33: #endif
34: #if BYTE_ORDER == BIG_ENDIAN
35: u_char th_off:4, /* data offset */
36: th_x2:4; /* (unused) */
37: #endif
38: u_char th_flags;
39: #define TH_FIN 0x01
40: #define TH_SYN 0x02
41: #define TH_RST 0x04
42: #define TH_PUSH 0x08
43: #define TH_ACK 0x10
44: #define TH_URG 0x20
45: u_short th_win; /* window */
46: u_short th_sum; /* checksum */
47: u_short th_urp; /* urgent pointer */
48: };
49:
50: #define TCPOPT_EOL 0
51: #define TCPOPT_NOP 1
52: #define TCPOPT_MAXSEG 2
53:
54: /*
55: * Default maximum segment size for TCP.
56: * With an IP MSS of 576, this is 536,
57: * but 512 is probably more convenient.
58: */
59: #ifdef lint
60: #define TCP_MSS 536
61: #else
62: #define TCP_MSS MIN(512, IP_MSS - sizeof (struct tcpiphdr))
63: #endif
64:
65: /*
66: * User-settable options (used with setsockopt).
67: */
68: #define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */
69: #define TCP_MAXSEG 0x02 /* set maximum segment size */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.