#include <netinet/tcp_fsm.h>

netinet/tcp_fsm.h

includes: sys/appleapiopts.h
28 macros

macroTCP_NSTATES

#define TCP_NSTATES 11

macroTCPS_CLOSED

#define TCPS_CLOSED 0
closed

macroTCPS_LISTEN

#define TCPS_LISTEN 1
listening for connection

macroTCPS_SYN_SENT

#define TCPS_SYN_SENT 2
active, have sent syn

macroTCPS_SYN_RECEIVED

#define TCPS_SYN_RECEIVED 3
have send and received syn

macroTCPS_ESTABLISHED

states < TCPS_ESTABLISHED are those where connections not established
#define TCPS_ESTABLISHED 4
established

macroTCPS_CLOSE_WAIT

#define TCPS_CLOSE_WAIT 5
rcvd fin, waiting for close

macroTCPS_FIN_WAIT_1

states > TCPS_CLOSE_WAIT are those where user has closed
#define TCPS_FIN_WAIT_1 6
have closed, sent fin

macroTCPS_CLOSING

#define TCPS_CLOSING 7
closed xchd FIN; await FIN ACK

macroTCPS_LAST_ACK

#define TCPS_LAST_ACK 8
had fin and close; await FIN ACK

macroTCPS_FIN_WAIT_2

states > TCPS_CLOSE_WAIT && < TCPS_FIN_WAIT_2 await ACK of FIN
#define TCPS_FIN_WAIT_2 9
have closed, fin is acked

macroTCPS_TIME_WAIT

#define TCPS_TIME_WAIT 10
in 2*msl quiet wait after close

macroTCP6_NSTATES

for KAME src sync over BSD*'s
#define TCP6_NSTATES TCP_NSTATES

macroTCP6S_CLOSED

#define TCP6S_CLOSED TCPS_CLOSED

macroTCP6S_LISTEN

#define TCP6S_LISTEN TCPS_LISTEN

macroTCP6S_SYN_SENT

#define TCP6S_SYN_SENT TCPS_SYN_SENT

macroTCP6S_SYN_RECEIVED

#define TCP6S_SYN_RECEIVED TCPS_SYN_RECEIVED

macroTCP6S_ESTABLISHED

#define TCP6S_ESTABLISHED TCPS_ESTABLISHED

macroTCP6S_CLOSE_WAIT

#define TCP6S_CLOSE_WAIT TCPS_CLOSE_WAIT

macroTCP6S_FIN_WAIT_1

#define TCP6S_FIN_WAIT_1 TCPS_FIN_WAIT_1

macroTCP6S_CLOSING

#define TCP6S_CLOSING TCPS_CLOSING

macroTCP6S_LAST_ACK

#define TCP6S_LAST_ACK TCPS_LAST_ACK

macroTCP6S_FIN_WAIT_2

#define TCP6S_FIN_WAIT_2 TCPS_FIN_WAIT_2

macroTCP6S_TIME_WAIT

#define TCP6S_TIME_WAIT TCPS_TIME_WAIT

macroTCPS_HAVERCVDSYN

#define TCPS_HAVERCVDSYN(s) ((s) >= TCPS_SYN_RECEIVED)

macroTCPS_HAVEESTABLISHED

#define TCPS_HAVEESTABLISHED(s) ((s) >= TCPS_ESTABLISHED)

macroTCPS_HAVERCVDFIN

#define TCPS_HAVERCVDFIN(s) ((s) >= TCPS_TIME_WAIT)

macroTCPS_HAVERCVDFIN2

#define TCPS_HAVERCVDFIN2(s) ((s) == TCPS_CLOSE_WAIT ||
	                         (s) == TCPS_CLOSING ||
	                         (s) == TCPS_LAST_ACK ||
	                         (s) == TCPS_TIME_WAIT)