fix autoconf, move code to isa.c, remove debugging, drop redundant tlbflushes, macros...
[unix-history] / usr / src / sys / netinet / tcp_fsm.h
CommitLineData
8ae0e4b4 1/*
0880b18e 2 * Copyright (c) 1982, 1986 Regents of the University of California.
2b6b6284 3 * All rights reserved.
8ae0e4b4 4 *
dbf0c423 5 * %sccs.include.redist.c%
2b6b6284 6 *
dbf0c423 7 * @(#)tcp_fsm.h 7.4 (Berkeley) %G%
8ae0e4b4 8 */
8381e15f
BJ
9
10/*
2b4b57cd 11 * TCP FSM state definitions.
2ff61f9d 12 * Per RFC793, September, 1981.
8381e15f
BJ
13 */
14
2ff61f9d
BJ
15#define TCP_NSTATES 11
16
17#define TCPS_CLOSED 0 /* closed */
18#define TCPS_LISTEN 1 /* listening for connection */
19#define TCPS_SYN_SENT 2 /* active, have sent syn */
8a13b737 20#define TCPS_SYN_RECEIVED 3 /* have send and received syn */
a6503abf 21/* states < TCPS_ESTABLISHED are those where connections not established */
2ff61f9d 22#define TCPS_ESTABLISHED 4 /* established */
8a13b737 23#define TCPS_CLOSE_WAIT 5 /* rcvd fin, waiting for close */
a6503abf 24/* states > TCPS_CLOSE_WAIT are those where user has closed */
8a13b737
BJ
25#define TCPS_FIN_WAIT_1 6 /* have closed, sent fin */
26#define TCPS_CLOSING 7 /* closed xchd FIN; await FIN ACK */
27#define TCPS_LAST_ACK 8 /* had fin and close; await FIN ACK */
28/* states > TCPS_CLOSE_WAIT && < TCPS_FIN_WAIT_2 await ACK of FIN */
29#define TCPS_FIN_WAIT_2 9 /* have closed, fin is acked */
30#define TCPS_TIME_WAIT 10 /* in 2*msl quiet wait after close */
8381e15f 31
8a13b737 32#define TCPS_HAVERCVDSYN(s) ((s) >= TCPS_SYN_RECEIVED)
2ff61f9d 33#define TCPS_HAVERCVDFIN(s) ((s) >= TCPS_TIME_WAIT)
8a13b737
BJ
34
35#ifdef TCPOUTFLAGS
36/*
37 * Flags used when sending segments in tcp_output.
38 * Basic flags (TH_RST,TH_ACK,TH_SYN,TH_FIN) are totally
b454c3ea
BJ
39 * determined by state, with the proviso that TH_FIN is sent only
40 * if all data queued for output is included in the segment.
8a13b737
BJ
41 */
42u_char tcp_outflags[TCP_NSTATES] = {
43 TH_RST|TH_ACK, 0, TH_SYN, TH_SYN|TH_ACK,
44 TH_ACK, TH_ACK,
4aed14e3 45 TH_FIN|TH_ACK, TH_FIN|TH_ACK, TH_FIN|TH_ACK, TH_ACK, TH_ACK,
8a13b737
BJ
46};
47#endif
8381e15f 48
9c5022e3 49#ifdef KPROF
eb44bfb2 50int tcp_acounts[TCP_NSTATES][PRU_NREQ];
8381e15f
BJ
51#endif
52
8a13b737 53#ifdef TCPSTATES
8381e15f 54char *tcpstates[] = {
2ff61f9d 55 "CLOSED", "LISTEN", "SYN_SENT", "SYN_RCVD",
4aed14e3
BJ
56 "ESTABLISHED", "CLOSE_WAIT", "FIN_WAIT_1", "CLOSING",
57 "LAST_ACK", "FIN_WAIT_2", "TIME_WAIT",
8381e15f 58};
8381e15f 59#endif