xref: /csrg-svn/sys/netinet/tcp_fsm.h (revision 5065)
1*5065Swnj /*	tcp_fsm.h	4.7	81/11/24	*/
24725Swnj 
34725Swnj /*
44924Swnj  * TCP FSM state definitions.
5*5065Swnj  * Per RFC793, September, 1981.
64725Swnj  */
74725Swnj 
8*5065Swnj #define	TCP_NSTATES	11
94725Swnj 
10*5065Swnj #define	TCPS_CLOSED		0	/* closed */
11*5065Swnj #define	TCPS_LISTEN		1	/* listening for connection */
12*5065Swnj #define	TCPS_SYN_SENT		2	/* active, have sent syn */
13*5065Swnj #define	TCPS_SYN_RCVD		3	/* have send and received syn */
14*5065Swnj #define	TCPS_ESTABLISHED	4	/* established */
15*5065Swnj #define	TCPS_FIN_WAIT_1		5	/* have closed, sent fin */
16*5065Swnj #define	TCPS_FIN_WAIT_2		6	/* have closed, fin is acked */
17*5065Swnj #define	TCPS_TIME_WAIT		7	/* in 2*msl quiet wait after close */
18*5065Swnj #define	TCPS_CLOSE_WAIT		8	/* rcvd fin, waiting for close */
19*5065Swnj #define	TCPS_CLOSING		9	/* closed xchd FIN; await FIN ACK */
20*5065Swnj #define	TCPS_LAST_ACK		10	/* had fin and close; await FIN ACK */
214725Swnj 
22*5065Swnj #define	TCPS_HAVERCVDSYN(s)	((s) >= TCPS_SYN_RCVD)
23*5065Swnj #define	TCPS_HAVERCVDFIN(s)	((s) >= TCPS_TIME_WAIT)
24*5065Swnj 
254730Swnj #ifdef KPROF
264899Swnj int	tcp_acounts[TCP_NSTATES][PRU_NREQ];
274725Swnj #endif
284725Swnj 
294725Swnj #ifdef TCPSTATES
304725Swnj char *tcpstates[] = {
31*5065Swnj 	"CLOSED",	"LISTEN",	"SYN_SENT",	"SYN_RCVD",
32*5065Swnj 	"ESTABLISHED",	"FIN_WAIT1",	"FIN_WAIT2",	"TIME_WAIT",
33*5065Swnj 	"CLOSE_WAIT",	"CLOSING",	"LAST_ACK",
344725Swnj };
354725Swnj #endif
36