File nut/net/tcpsm.c


Included Files


Preprocessor definitions

#define NUT_THREAD_TCPSMSTACK 512

Global Variable tcp_in_rdy

HANDLE tcp_in_rdy
Visible in:   nut/net/tcpsm.c
Used in: NutTcpSm() nut/net/tcpsm.c
  NutTcpStateMachine() nut/net/tcpsm.c

Global Variable tcp_in_nbq

NETBUF* volatile tcp_in_nbq
Visible in:   nut/net/tcpsm.c
Used in: NutTcpSm() nut/net/tcpsm.c
  NutTcpStateMachine() nut/net/tcpsm.c

External Variables

tcpSocketList
extern TCPSOCKET* tcpSocketList
Defined in: nut/net/tcpsock.c

Local Variables

tcp_in_cnt
static u_short tcp_in_cnt
Used in: NutTcpSm()  
  NutTcpStateMachine()  

tcpThread
static HANDLE tcpThread

Used in: NutTcpInitStateMachine()  
  NutTcpStateMachine()  

Global Function NutTcpAbortSocket()

int NutTcpAbortSocket ( TCPSOCKET* sock, u_short last_error )
Prototyped in: nut/include/sys/socket.h
Calls: NutEventBroadcast() nut/os/event.c
  NutTcpDiscardBuffers() nut/net/tcpsock.c
Called by: NutIcmpUnreach() nut/net/icmpin.c
  NutTcpStateCloseWait() nut/net/tcpsm.c
  NutTcpStateEstablished() nut/net/tcpsm.c
  NutTcpStateRetranTimeout() nut/net/tcpsm.c
  NutTcpStateSynReceived() nut/net/tcpsm.c
  NutTcpStateSynSent() nut/net/tcpsm.c

Global Function NutTcpInitStateMachine()

int NutTcpInitStateMachine ( void )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutThreadCreate() nut/arch/avr/os/context_gcc.c
Called by: NutTcpCreateSocket() nut/net/tcpsock.c
References Functions: NutTcpSm() nut/net/tcpsm.c
References Variables: tcpThread nut/net/tcpsm.c

Global Function NutTcpSm()

void NutTcpSm ( void* arg )
Prototyped in: nut/net/tcpsm.c
Calls: NutEventWait() nut/os/event.c
  NutGetMillis() nut/os/timer.c
  NutTcpDestroySocket() nut/net/tcpsock.c
  NutTcpFindSocket() nut/net/tcpsock.c
  NutTcpInputOptions() nut/net/tcpsm.c
  NutTcpOutput() nut/net/tcpout.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateProcess() nut/net/tcpsm.c
  NutTcpStateRetranTimeout() nut/net/tcpsm.c
  NutThreadSetPriority() nut/os/thread.c
Used in: NutTcpInitStateMachine() nut/net/tcpsm.c
References Variables: tcpSocketList nut/net/tcpsock.c
  tcp_in_cnt nut/net/tcpsm.c
  tcp_in_nbq nut/net/tcpsm.c
  tcp_in_rdy nut/net/tcpsm.c

Global Function NutTcpStateActiveOpenEvent()

int NutTcpStateActiveOpenEvent ( TCPSOCKET* sock )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutEventWait() nut/os/event.c
  NutTcpStateChange() nut/net/tcpsm.c
Called by: NutTcpConnect() nut/net/tcpsock.c

Global Function NutTcpStateCloseEvent()

int NutTcpStateCloseEvent ( TCPSOCKET* sock )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutTcpDestroySocket() nut/net/tcpsock.c
  NutTcpStateChange() nut/net/tcpsm.c
  NutThreadYield() nut/os/thread.c
Called by: NutTcpCloseSocket() nut/net/tcpsock.c

Global Function NutTcpStateMachine()

void NutTcpStateMachine ( NETBUF* nb )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutEventPost() nut/os/event.c
  NutHeapAvailable() nut/os/heap.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpReject() nut/net/tcpout.c
Called by: NutTcpInput() nut/net/tcpin.c
References Variables: tcpThread nut/net/tcpsm.c
  tcp_in_cnt nut/net/tcpsm.c
  tcp_in_nbq nut/net/tcpsm.c
  tcp_in_rdy nut/net/tcpsm.c

Global Function NutTcpStatePassiveOpenEvent()

int NutTcpStatePassiveOpenEvent ( TCPSOCKET* sock )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutEventWait() nut/os/event.c
  NutTcpStateChange() nut/net/tcpsm.c
Called by: NutTcpAccept() nut/net/tcpsock.c

Global Function NutTcpStateRetranTimeout()

int NutTcpStateRetranTimeout ( TCPSOCKET* sock )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutGetMillis() nut/os/timer.c
  NutIpOutput() nut/net/ipout.c
  NutTcpAbortSocket() nut/net/tcpsm.c
Called by: NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpSm() nut/net/tcpsm.c

Global Function NutTcpStateWindowEvent()

int NutTcpStateWindowEvent ( TCPSOCKET* sock )
Prototyped in: nut/include/netinet/tcp_fsm.h
Calls: NutTcpOutput() nut/net/tcpout.c
Called by: NutTcpReceive() nut/net/tcpsock.c

Local Function NutTcpInputOptions()

static void NutTcpInputOptions ( TCPSOCKET* sock, NETBUF* nb )
Called by: NutTcpSm() nut/net/tcpsm.c

Local Function NutTcpProcessAck()

static int NutTcpProcessAck ( TCPSOCKET* sock, TCPHDR* th, u_short length )
Calls: NutGetMillis() nut/os/timer.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpCalcRtt() nut/net/tcputil.c
  NutTcpStateRetranTimeout() nut/net/tcpsm.c
  __byte_swap2() nut/include/sys/types.h
  __byte_swap4() nut/include/sys/types.h
Called by: NutTcpStateCloseWait() nut/net/tcpsm.c
  NutTcpStateClosing() nut/net/tcpsm.c
  NutTcpStateEstablished() nut/net/tcpsm.c
  NutTcpStateFinWait1() nut/net/tcpsm.c
  NutTcpStateFinWait2() nut/net/tcpsm.c
  NutTcpStateLastAck() nut/net/tcpsm.c
  NutTcpStateSynReceived() nut/net/tcpsm.c
  NutTcpStateSynSent() nut/net/tcpsm.c

Local Function NutTcpProcessAppData()

static void NutTcpProcessAppData ( TCPSOCKET* sock, NETBUF* nb )
Calls: NutTcpOutput() nut/net/tcpout.c
Called by: NutTcpStateEstablished() nut/net/tcpsm.c
  NutTcpStateFinWait1() nut/net/tcpsm.c
  NutTcpStateFinWait2() nut/net/tcpsm.c
  NutTcpStateSynReceived() nut/net/tcpsm.c

Local Function NutTcpProcessSyn()

static void NutTcpProcessSyn ( TCPSOCKET* sock, IPHDR* ih, TCPHDR* th )
Calls: NutIpRouteQuery() nut/net/route.c
  __byte_swap2() nut/include/sys/types.h
  __byte_swap4() nut/include/sys/types.h
Called by: NutTcpStateListen() nut/net/tcpsm.c
  NutTcpStateSynSent() nut/net/tcpsm.c

Local Function NutTcpStateChange()

static int NutTcpStateChange ( TCPSOCKET* sock, u_char state )
Calls: NutEventBroadcast() nut/os/event.c
  NutEventPostAsync() nut/os/event.c
  NutTcpOutput() nut/net/tcpout.c
Called by: NutTcpStateActiveOpenEvent() nut/net/tcpsm.c
  NutTcpStateCloseEvent() nut/net/tcpsm.c
  NutTcpStateClosing() nut/net/tcpsm.c
  NutTcpStateEstablished() nut/net/tcpsm.c
  NutTcpStateFinWait1() nut/net/tcpsm.c
  NutTcpStateFinWait2() nut/net/tcpsm.c
  NutTcpStateListen() nut/net/tcpsm.c
  NutTcpStatePassiveOpenEvent() nut/net/tcpsm.c
  NutTcpStateSynReceived() nut/net/tcpsm.c
  NutTcpStateSynSent() nut/net/tcpsm.c

Local Function NutTcpStateCloseWait()

static void NutTcpStateCloseWait ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutNetBufFree() nut/dev/netbuf.c
  NutTcpAbortSocket() nut/net/tcpsm.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateClosing()

static void NutTcpStateClosing ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutNetBufFree() nut/dev/netbuf.c
  NutTcpDestroySocket() nut/net/tcpsock.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateEstablished()

static void NutTcpStateEstablished ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutEventPost() nut/os/event.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpAbortSocket() nut/net/tcpsm.c
  NutTcpOutput() nut/net/tcpout.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpProcessAppData() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
  __byte_swap4() nut/include/sys/types.h
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateFinWait1()

static void NutTcpStateFinWait1 ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutEventPost() nut/os/event.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpDestroySocket() nut/net/tcpsock.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpProcessAppData() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateFinWait2()

static void NutTcpStateFinWait2 ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutEventPost() nut/os/event.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpDestroySocket() nut/net/tcpsock.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpProcessAppData() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateLastAck()

static void NutTcpStateLastAck ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutNetBufFree() nut/dev/netbuf.c
  NutTcpDestroySocket() nut/net/tcpsock.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateListen()

static void NutTcpStateListen ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: NutNetBufFree() nut/dev/netbuf.c
  NutTcpProcessSyn() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateProcess()

static void NutTcpStateProcess ( TCPSOCKET* sock, NETBUF* nb )
Calls: NutEventBroadcast() nut/os/event.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateCloseWait() nut/net/tcpsm.c
  NutTcpStateClosing() nut/net/tcpsm.c
  NutTcpStateEstablished() nut/net/tcpsm.c
  NutTcpStateFinWait1() nut/net/tcpsm.c
  NutTcpStateFinWait2() nut/net/tcpsm.c
  NutTcpStateLastAck() nut/net/tcpsm.c
  NutTcpStateListen() nut/net/tcpsm.c
  NutTcpStateSynReceived() nut/net/tcpsm.c
  NutTcpStateSynSent() nut/net/tcpsm.c
Called by: NutTcpSm() nut/net/tcpsm.c

Local Function NutTcpStateSynReceived()

static void NutTcpStateSynReceived ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: IsInLimits() nut/net/tcputil.c
  NutEventPost() nut/os/event.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpAbortSocket() nut/net/tcpsm.c
  NutTcpDiscardBuffers() nut/net/tcpsock.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpProcessAppData() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
  __byte_swap4() nut/include/sys/types.h
Called by: NutTcpStateProcess() nut/net/tcpsm.c

Local Function NutTcpStateSynSent()

static void NutTcpStateSynSent ( TCPSOCKET* sock, u_char flags, TCPHDR* th, NETBUF* nb )
Calls: IsInLimits() nut/net/tcputil.c
  NutEventPost() nut/os/event.c
  NutNetBufFree() nut/dev/netbuf.c
  NutTcpAbortSocket() nut/net/tcpsm.c
  NutTcpProcessAck() nut/net/tcpsm.c
  NutTcpProcessSyn() nut/net/tcpsm.c
  NutTcpReject() nut/net/tcpout.c
  NutTcpStateChange() nut/net/tcpsm.c
  __byte_swap4() nut/include/sys/types.h
Called by: NutTcpStateProcess() nut/net/tcpsm.c