RetroArch
Classes | Macros | Enumerations | Functions | Variables
tcp.h File Reference
#include "lwip/sys.h"
#include "lwip/mem.h"
#include "lwip/pbuf.h"
#include "lwip/opt.h"
#include "lwip/ip.h"
#include "lwip/icmp.h"
#include "lwip/err.h"
Include dependency graph for tcp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tcp_hdr
 
struct  tcp_pcb
 
struct  tcp_pcb_listen
 
struct  tcp_seg
 
union  tcp_listen_pcbs_t
 

Macros

#define tcp_mss(pcb)   ((pcb)->mss)
 
#define tcp_sndbuf(pcb)   ((pcb)->snd_buf)
 
#define TCP_PRIO_MIN   1
 
#define TCP_PRIO_NORMAL   64
 
#define TCP_PRIO_MAX   127
 
#define TCP_SEQ_LT(a, b)   ((s32_t)((a)-(b)) < 0)
 
#define TCP_SEQ_LEQ(a, b)   ((s32_t)((a)-(b)) <= 0)
 
#define TCP_SEQ_GT(a, b)   ((s32_t)((a)-(b)) > 0)
 
#define TCP_SEQ_GEQ(a, b)   ((s32_t)((a)-(b)) >= 0)
 
#define TCP_SEQ_BETWEEN(a, b, c)   (TCP_SEQ_GEQ(a,b) && TCP_SEQ_LEQ(a,c))
 
#define TCP_FIN   0x01U
 
#define TCP_SYN   0x02U
 
#define TCP_RST   0x04U
 
#define TCP_PSH   0x08U
 
#define TCP_ACK   0x10U
 
#define TCP_URG   0x20U
 
#define TCP_ECE   0x40U
 
#define TCP_CWR   0x80U
 
#define TCP_FLAGS   0x3fU
 
#define TCP_HLEN   20
 
#define TCP_TMR_INTERVAL
 
#define TCP_FAST_INTERVAL
 
#define TCP_SLOW_INTERVAL
 
#define TCP_FIN_WAIT_TIMEOUT   20000 /* milliseconds */
 
#define TCP_SYN_RCVD_TIMEOUT   20000 /* milliseconds */
 
#define TCP_OOSEQ_TIMEOUT   6 /* x RTO */
 
#define TCP_MSL   60000 /* The maximum segment lifetime in microseconds */
 
#define TCP_NODELAY   0x01 /* don't delay send to coalesce packets */
 
#define TCP_KEEPALIVE   0x02 /* send KEEPALIVE probes when idle for pcb->keepalive miliseconds */
 
#define TCP_KEEPDEFAULT   7200000 /* KEEPALIVE timer in miliseconds */
 
#define TCP_KEEPINTVL   75000 /* Time between KEEPALIVE probes in miliseconds */
 
#define TCP_KEEPCNT   9 /* Counter for KEEPALIVE probes */
 
#define TCP_MAXIDLE   TCP_KEEPCNT * TCP_KEEPINTVL /* Maximum KEEPALIVE probe time */
 
#define TCPH_OFFSET(phdr)   (ntohs((phdr)->_hdrlen_rsvd_flags) >> 8)
 
#define TCPH_HDRLEN(phdr)   (ntohs((phdr)->_hdrlen_rsvd_flags) >> 12)
 
#define TCPH_FLAGS(phdr)   (ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS)
 
#define TCPH_OFFSET_SET(phdr, offset)   (phdr)->_hdrlen_rsvd_flags = htons(((offset) << 8) | TCPH_FLAGS(phdr))
 
#define TCPH_HDRLEN_SET(phdr, len)   (phdr)->_hdrlen_rsvd_flags = htons(((len) << 12) | TCPH_FLAGS(phdr))
 
#define TCPH_FLAGS_SET(phdr, flags)   (phdr)->_hdrlen_rsvd_flags = htons((ntohs((phdr)->_hdrlen_rsvd_flags) & ~TCP_FLAGS) | (flags))
 
#define TCPH_SET_FLAG(phdr, flags)   (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (flags))
 
#define TCPH_UNSET_FLAG(phdr, flags)   (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (TCPH_FLAGS(phdr) & ~(flags)) )
 
#define TCP_TCPLEN(seg)
 
#define TF_ACK_DELAY   (u8_t)0x01U /* Delayed ACK. */
 
#define TF_ACK_NOW   (u8_t)0x02U /* Immediate ACK. */
 
#define TF_INFR   (u8_t)0x04U /* In fast recovery. */
 
#define TF_RESET   (u8_t)0x08U /* Connection was reset. */
 
#define TF_CLOSED   (u8_t)0x10U /* Connection was sucessfully closed. */
 
#define TF_GOT_FIN   (u8_t)0x20U /* Connection was closed by the remote end. */
 
#define TF_NODELAY   (u8_t)0x40U /* Disable Nagle algorithm */
 
#define TCP_EVENT_ACCEPT(pcb, err, ret)
 
#define TCP_EVENT_SENT(pcb, space, ret)
 
#define TCP_EVENT_RECV(pcb, p, err, ret)
 
#define TCP_EVENT_CONNECTED(pcb, err, ret)
 
#define TCP_EVENT_POLL(pcb, ret)
 
#define TCP_EVENT_ERR(errf, arg, err)
 
#define tcp_ack(pcb)
 
#define tcp_ack_now(pcb)
 
#define tcp_debug_print(tcphdr)
 
#define tcp_debug_print_flags(flags)
 
#define tcp_debug_print_state(s)
 
#define tcp_debug_print_pcbs()
 
#define tcp_pcbs_sane()   1
 
#define TCP_REG(pcbs, npcb)
 
#define TCP_RMV(pcbs, npcb)
 

Enumerations

enum  tcp_state {
  CLOSED = 0, LISTEN = 1, SYN_SENT = 2, SYN_RCVD = 3,
  ESTABLISHED = 4, FIN_WAIT_1 = 5, FIN_WAIT_2 = 6, CLOSE_WAIT = 7,
  CLOSING = 8, LAST_ACK = 9, TIME_WAIT = 10
}
 

Functions

void tcp_init (void)
 
void tcp_tmr (void)
 
struct tcp_pcbtcp_new (void)
 
struct tcp_pcbtcp_alloc (u8_t prio)
 
void tcp_arg (struct tcp_pcb *pcb, void *arg)
 
void tcp_accept (struct tcp_pcb *pcb, err_t(*accept)(void *arg, struct tcp_pcb *newpcb, err_t err))
 
void tcp_recv (struct tcp_pcb *pcb, err_t(*recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err))
 
void tcp_sent (struct tcp_pcb *pcb, err_t(*sent)(void *arg, struct tcp_pcb *tpcb, u16_t len))
 
void tcp_poll (struct tcp_pcb *pcb, err_t(*poll)(void *arg, struct tcp_pcb *tpcb), u8_t interval)
 
void tcp_err (struct tcp_pcb *pcb, void(*err)(void *arg, err_t err))
 
void tcp_recved (struct tcp_pcb *pcb, u16_t len)
 
err_t tcp_bind (struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)
 
err_t tcp_connect (struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port, err_t(*connected)(void *arg, struct tcp_pcb *tpcb, err_t err))
 
struct tcp_pcbtcp_listen (struct tcp_pcb *pcb)
 
void tcp_abort (struct tcp_pcb *pcb)
 
err_t tcp_close (struct tcp_pcb *pcb)
 
err_t tcp_write (struct tcp_pcb *pcb, const void *dataptr, u16_t len, u8_t copy)
 
void tcp_setprio (struct tcp_pcb *pcb, u8_t prio)
 
void tcp_slowtmr (void)
 
void tcp_fasttmr (void)
 
void tcp_input (struct pbuf *p, struct netif *inp)
 
err_t tcp_output (struct tcp_pcb *pcb)
 
void tcp_rexmit (struct tcp_pcb *pcb)
 
void tcp_rexmit_rto (struct tcp_pcb *pcb)
 
struct tcp_pcbtcp_pcb_copy (struct tcp_pcb *pcb)
 
void tcp_pcb_purge (struct tcp_pcb *pcb)
 
void tcp_pcb_remove (struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
 
u8_t tcp_segs_free (struct tcp_seg *seg)
 
u8_t tcp_seg_free (struct tcp_seg *seg)
 
struct tcp_segtcp_seg_copy (struct tcp_seg *seg)
 
err_t tcp_send_ctrl (struct tcp_pcb *pcb, u8_t flags)
 
err_t tcp_enqueue (struct tcp_pcb *pcb, void *dataptr, u16_t len, u8_t flags, u8_t copy, u8_t *optdata, u8_t optlen)
 
void tcp_rexmit_seg (struct tcp_pcb *pcb, struct tcp_seg *seg)
 
void tcp_rst (u32_t seqno, u32_t ackno, struct ip_addr *local_ip, struct ip_addr *remote_ip, u16_t local_port, u16_t remote_port)
 
u32_t tcp_next_iss (void)
 
void tcp_keepalive (struct tcp_pcb *pcb)
 
void tcp_timer_needed (void)
 

Variables

PACK_STRUCT_BEGIN struct tcp_hdr PACK_STRUCT_STRUCT
 
struct tcp_pcbtcp_input_pcb
 
u32_t tcp_ticks
 
union tcp_listen_pcbs_t tcp_listen_pcbs
 
struct tcp_pcbtcp_active_pcbs
 
struct tcp_pcbtcp_tw_pcbs
 
struct tcp_pcbtcp_tmp_pcb
 

Macro Definition Documentation

◆ TCP_ACK

#define TCP_ACK   0x10U

◆ tcp_ack

#define tcp_ack (   pcb)
Value:
if((pcb)->flags & TF_ACK_DELAY) { \
(pcb)->flags &= ~TF_ACK_DELAY; \
(pcb)->flags |= TF_ACK_NOW; \
tcp_output(pcb); \
} else { \
(pcb)->flags |= TF_ACK_DELAY; \
}
#define TF_ACK_DELAY
Definition: tcp.h:230
#define TF_ACK_NOW
Definition: tcp.h:231
GLbitfield flags
Definition: glext.h:7828

◆ tcp_ack_now

#define tcp_ack_now (   pcb)
Value:
(pcb)->flags |= TF_ACK_NOW; \
tcp_output(pcb)
#define TF_ACK_NOW
Definition: tcp.h:231
GLbitfield flags
Definition: glext.h:7828

◆ TCP_CWR

#define TCP_CWR   0x80U

◆ tcp_debug_print

#define tcp_debug_print (   tcphdr)

◆ tcp_debug_print_flags

#define tcp_debug_print_flags (   flags)

◆ tcp_debug_print_pcbs

#define tcp_debug_print_pcbs ( )

◆ tcp_debug_print_state

#define tcp_debug_print_state (   s)

◆ TCP_ECE

#define TCP_ECE   0x40U

◆ TCP_EVENT_ACCEPT

#define TCP_EVENT_ACCEPT (   pcb,
  err,
  ret 
)
Value:
if((pcb)->accept != NULL) \
(ret = (pcb)->accept((pcb)->callback_arg,(pcb),(err)))
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
#define NULL
Pointer to 0.
Definition: gctypes.h:65

◆ TCP_EVENT_CONNECTED

#define TCP_EVENT_CONNECTED (   pcb,
  err,
  ret 
)
Value:
if((pcb)->connected != NULL) \
(ret = (pcb)->connected((pcb)->callback_arg,(pcb),(err)))
#define NULL
Pointer to 0.
Definition: gctypes.h:65

◆ TCP_EVENT_ERR

#define TCP_EVENT_ERR (   errf,
  arg,
  err 
)
Value:
if((errf) != NULL) \
(errf)((arg),(err))
#define NULL
Pointer to 0.
Definition: gctypes.h:65

◆ TCP_EVENT_POLL

#define TCP_EVENT_POLL (   pcb,
  ret 
)
Value:
if((pcb)->poll != NULL) \
(ret = (pcb)->poll((pcb)->callback_arg,(pcb)))
#define NULL
Pointer to 0.
Definition: gctypes.h:65

◆ TCP_EVENT_RECV

#define TCP_EVENT_RECV (   pcb,
  p,
  err,
  ret 
)
Value:
if((pcb)->recv != NULL) \
{ ret = (pcb)->recv((pcb)->callback_arg,(pcb),(p),(err)); } else { \
if (p) pbuf_free(p); }
u8_t pbuf_free(struct pbuf *p)
Definition: pbuf.c:545
ssize_t recv(int sockfd, void *buf, size_t len, int flags)
#define NULL
Pointer to 0.
Definition: gctypes.h:65
GLfloat GLfloat p
Definition: glext.h:9809

◆ TCP_EVENT_SENT

#define TCP_EVENT_SENT (   pcb,
  space,
  ret 
)
Value:
if((pcb)->sent != NULL) \
(ret = (pcb)->sent((pcb)->callback_arg,(pcb),(space)))
#define NULL
Pointer to 0.
Definition: gctypes.h:65

◆ TCP_FAST_INTERVAL

#define TCP_FAST_INTERVAL
Value:
TCP_TMR_INTERVAL /* the fine grained timeout in
milliseconds */
#define TCP_TMR_INTERVAL
Definition: tcp.h:136

◆ TCP_FIN

#define TCP_FIN   0x01U

◆ TCP_FIN_WAIT_TIMEOUT

#define TCP_FIN_WAIT_TIMEOUT   20000 /* milliseconds */

◆ TCP_FLAGS

#define TCP_FLAGS   0x3fU

◆ TCP_HLEN

#define TCP_HLEN   20

◆ TCP_KEEPALIVE

#define TCP_KEEPALIVE   0x02 /* send KEEPALIVE probes when idle for pcb->keepalive miliseconds */

◆ TCP_KEEPCNT

#define TCP_KEEPCNT   9 /* Counter for KEEPALIVE probes */

◆ TCP_KEEPDEFAULT

#define TCP_KEEPDEFAULT   7200000 /* KEEPALIVE timer in miliseconds */

◆ TCP_KEEPINTVL

#define TCP_KEEPINTVL   75000 /* Time between KEEPALIVE probes in miliseconds */

◆ TCP_MAXIDLE

#define TCP_MAXIDLE   TCP_KEEPCNT * TCP_KEEPINTVL /* Maximum KEEPALIVE probe time */

◆ TCP_MSL

#define TCP_MSL   60000 /* The maximum segment lifetime in microseconds */

◆ tcp_mss

#define tcp_mss (   pcb)    ((pcb)->mss)

◆ TCP_NODELAY

#define TCP_NODELAY   0x01 /* don't delay send to coalesce packets */

◆ TCP_OOSEQ_TIMEOUT

#define TCP_OOSEQ_TIMEOUT   6 /* x RTO */

◆ tcp_pcbs_sane

#define tcp_pcbs_sane ( )    1

◆ TCP_PRIO_MAX

#define TCP_PRIO_MAX   127

◆ TCP_PRIO_MIN

#define TCP_PRIO_MIN   1

◆ TCP_PRIO_NORMAL

#define TCP_PRIO_NORMAL   64

◆ TCP_PSH

#define TCP_PSH   0x08U

◆ TCP_REG

#define TCP_REG (   pcbs,
  npcb 
)
Value:
do { \
npcb->next = *pcbs; \
*(pcbs) = npcb; \
tcp_timer_needed(); \
} while(0)

◆ TCP_RMV

#define TCP_RMV (   pcbs,
  npcb 
)
Value:
do { \
if(*(pcbs) == npcb) { \
(*(pcbs)) = (*pcbs)->next; \
} else for(tcp_tmp_pcb = *pcbs; tcp_tmp_pcb != NULL; tcp_tmp_pcb = tcp_tmp_pcb->next) { \
if(tcp_tmp_pcb->next != NULL && tcp_tmp_pcb->next == npcb) { \
tcp_tmp_pcb->next = npcb->next; \
break; \
} \
} \
npcb->next = NULL; \
} while(0)
struct tcp_pcb * next
Definition: tcp.h:221
struct tcp_pcb * tcp_tmp_pcb
#define NULL
Pointer to 0.
Definition: gctypes.h:65

◆ TCP_RST

#define TCP_RST   0x04U

◆ TCP_SEQ_BETWEEN

#define TCP_SEQ_BETWEEN (   a,
  b,
  c 
)    (TCP_SEQ_GEQ(a,b) && TCP_SEQ_LEQ(a,c))

◆ TCP_SEQ_GEQ

#define TCP_SEQ_GEQ (   a,
  b 
)    ((s32_t)((a)-(b)) >= 0)

◆ TCP_SEQ_GT

#define TCP_SEQ_GT (   a,
  b 
)    ((s32_t)((a)-(b)) > 0)

◆ TCP_SEQ_LEQ

#define TCP_SEQ_LEQ (   a,
  b 
)    ((s32_t)((a)-(b)) <= 0)

◆ TCP_SEQ_LT

#define TCP_SEQ_LT (   a,
  b 
)    ((s32_t)((a)-(b)) < 0)

◆ TCP_SLOW_INTERVAL

#define TCP_SLOW_INTERVAL
Value:
(2*TCP_TMR_INTERVAL) /* the coarse grained timeout in
milliseconds */
#define TCP_TMR_INTERVAL
Definition: tcp.h:136

◆ tcp_sndbuf

#define tcp_sndbuf (   pcb)    ((pcb)->snd_buf)

◆ TCP_SYN

#define TCP_SYN   0x02U

◆ TCP_SYN_RCVD_TIMEOUT

#define TCP_SYN_RCVD_TIMEOUT   20000 /* milliseconds */

◆ TCP_TCPLEN

#define TCP_TCPLEN (   seg)
Value:
((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & TCP_FIN || \
TCPH_FLAGS((seg)->tcphdr) & TCP_SYN)? 1: 0))
#define TCP_FIN
Definition: tcp.h:121
GLenum GLsizei len
Definition: glext.h:7389
#define TCP_SYN
Definition: tcp.h:122
#define TCPH_FLAGS(phdr)
Definition: tcp.h:191

◆ TCP_TMR_INTERVAL

#define TCP_TMR_INTERVAL
Value:
250 /* The TCP timer interval in
milliseconds. */

◆ TCP_URG

#define TCP_URG   0x20U

◆ TCPH_FLAGS

#define TCPH_FLAGS (   phdr)    (ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS)

◆ TCPH_FLAGS_SET

#define TCPH_FLAGS_SET (   phdr,
  flags 
)    (phdr)->_hdrlen_rsvd_flags = htons((ntohs((phdr)->_hdrlen_rsvd_flags) & ~TCP_FLAGS) | (flags))

◆ TCPH_HDRLEN

#define TCPH_HDRLEN (   phdr)    (ntohs((phdr)->_hdrlen_rsvd_flags) >> 12)

◆ TCPH_HDRLEN_SET

#define TCPH_HDRLEN_SET (   phdr,
  len 
)    (phdr)->_hdrlen_rsvd_flags = htons(((len) << 12) | TCPH_FLAGS(phdr))

◆ TCPH_OFFSET

#define TCPH_OFFSET (   phdr)    (ntohs((phdr)->_hdrlen_rsvd_flags) >> 8)

◆ TCPH_OFFSET_SET

#define TCPH_OFFSET_SET (   phdr,
  offset 
)    (phdr)->_hdrlen_rsvd_flags = htons(((offset) << 8) | TCPH_FLAGS(phdr))

◆ TCPH_SET_FLAG

#define TCPH_SET_FLAG (   phdr,
  flags 
)    (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (flags))

◆ TCPH_UNSET_FLAG

#define TCPH_UNSET_FLAG (   phdr,
  flags 
)    (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (TCPH_FLAGS(phdr) & ~(flags)) )

◆ TF_ACK_DELAY

#define TF_ACK_DELAY   (u8_t)0x01U /* Delayed ACK. */

◆ TF_ACK_NOW

#define TF_ACK_NOW   (u8_t)0x02U /* Immediate ACK. */

◆ TF_CLOSED

#define TF_CLOSED   (u8_t)0x10U /* Connection was sucessfully closed. */

◆ TF_GOT_FIN

#define TF_GOT_FIN   (u8_t)0x20U /* Connection was closed by the remote end. */

◆ TF_INFR

#define TF_INFR   (u8_t)0x04U /* In fast recovery. */

◆ TF_NODELAY

#define TF_NODELAY   (u8_t)0x40U /* Disable Nagle algorithm */

◆ TF_RESET

#define TF_RESET   (u8_t)0x08U /* Connection was reset. */

Enumeration Type Documentation

◆ tcp_state

enum tcp_state
Enumerator
CLOSED 
LISTEN 
SYN_SENT 
SYN_RCVD 
ESTABLISHED 
FIN_WAIT_1 
FIN_WAIT_2 
CLOSE_WAIT 
CLOSING 
LAST_ACK 
TIME_WAIT 

Function Documentation

◆ tcp_abort()

void tcp_abort ( struct tcp_pcb pcb)
Here is the caller graph for this function:

◆ tcp_accept()

void tcp_accept ( struct tcp_pcb pcb,
err_t(*)(void *arg, struct tcp_pcb *newpcb, err_t err)  accept 
)
Here is the caller graph for this function:

◆ tcp_alloc()

struct tcp_pcb* tcp_alloc ( u8_t  prio)

◆ tcp_arg()

void tcp_arg ( struct tcp_pcb pcb,
void arg 
)
Here is the caller graph for this function:

◆ tcp_bind()

err_t tcp_bind ( struct tcp_pcb pcb,
struct ip_addr ipaddr,
u16_t  port 
)
Here is the caller graph for this function:

◆ tcp_close()

err_t tcp_close ( struct tcp_pcb pcb)
Here is the caller graph for this function:

◆ tcp_connect()

err_t tcp_connect ( struct tcp_pcb pcb,
struct ip_addr ipaddr,
u16_t  port,
err_t(*)(void *arg, struct tcp_pcb *tpcb, err_t err)  connected 
)
Here is the caller graph for this function:

◆ tcp_enqueue()

err_t tcp_enqueue ( struct tcp_pcb pcb,
void dataptr,
u16_t  len,
u8_t  flags,
u8_t  copy,
u8_t optdata,
u8_t  optlen 
)

◆ tcp_err()

void tcp_err ( struct tcp_pcb pcb,
void(*)(void *arg, err_t err)  err 
)
Here is the caller graph for this function:

◆ tcp_fasttmr()

void tcp_fasttmr ( void  )

◆ tcp_init()

void tcp_init ( void  )
Here is the caller graph for this function:

◆ tcp_input()

void tcp_input ( struct pbuf p,
struct netif inp 
)
Here is the caller graph for this function:

◆ tcp_keepalive()

void tcp_keepalive ( struct tcp_pcb pcb)

◆ tcp_listen()

struct tcp_pcb* tcp_listen ( struct tcp_pcb pcb)
Here is the caller graph for this function:

◆ tcp_new()

struct tcp_pcb* tcp_new ( void  )
Here is the caller graph for this function:

◆ tcp_next_iss()

u32_t tcp_next_iss ( void  )

◆ tcp_output()

err_t tcp_output ( struct tcp_pcb pcb)
Here is the caller graph for this function:

◆ tcp_pcb_copy()

struct tcp_pcb* tcp_pcb_copy ( struct tcp_pcb pcb)

◆ tcp_pcb_purge()

void tcp_pcb_purge ( struct tcp_pcb pcb)

◆ tcp_pcb_remove()

void tcp_pcb_remove ( struct tcp_pcb **  pcblist,
struct tcp_pcb pcb 
)

◆ tcp_poll()

void tcp_poll ( struct tcp_pcb pcb,
err_t(*)(void *arg, struct tcp_pcb *tpcb)  poll,
u8_t  interval 
)
Here is the caller graph for this function:

◆ tcp_recv()

void tcp_recv ( struct tcp_pcb pcb,
err_t(*)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)  recv 
)
Here is the caller graph for this function:

◆ tcp_recved()

void tcp_recved ( struct tcp_pcb pcb,
u16_t  len 
)
Here is the caller graph for this function:

◆ tcp_rexmit()

void tcp_rexmit ( struct tcp_pcb pcb)

◆ tcp_rexmit_rto()

void tcp_rexmit_rto ( struct tcp_pcb pcb)

◆ tcp_rexmit_seg()

void tcp_rexmit_seg ( struct tcp_pcb pcb,
struct tcp_seg seg 
)

◆ tcp_rst()

void tcp_rst ( u32_t  seqno,
u32_t  ackno,
struct ip_addr local_ip,
struct ip_addr remote_ip,
u16_t  local_port,
u16_t  remote_port 
)

◆ tcp_seg_copy()

struct tcp_seg* tcp_seg_copy ( struct tcp_seg seg)

◆ tcp_seg_free()

u8_t tcp_seg_free ( struct tcp_seg seg)

◆ tcp_segs_free()

u8_t tcp_segs_free ( struct tcp_seg seg)

◆ tcp_send_ctrl()

err_t tcp_send_ctrl ( struct tcp_pcb pcb,
u8_t  flags 
)

◆ tcp_sent()

void tcp_sent ( struct tcp_pcb pcb,
err_t(*)(void *arg, struct tcp_pcb *tpcb, u16_t len sent 
)
Here is the caller graph for this function:

◆ tcp_setprio()

void tcp_setprio ( struct tcp_pcb pcb,
u8_t  prio 
)

◆ tcp_slowtmr()

void tcp_slowtmr ( void  )

◆ tcp_timer_needed()

void tcp_timer_needed ( void  )
Here is the call graph for this function:

◆ tcp_tmr()

void tcp_tmr ( void  )
Here is the caller graph for this function:

◆ tcp_write()

err_t tcp_write ( struct tcp_pcb pcb,
const void dataptr,
u16_t  len,
u8_t  copy 
)
Here is the caller graph for this function:

Variable Documentation

◆ PACK_STRUCT_STRUCT

PACK_STRUCT_BEGIN struct tcp_hdr PACK_STRUCT_STRUCT

◆ tcp_active_pcbs

struct tcp_pcb* tcp_active_pcbs

◆ tcp_input_pcb

struct tcp_pcb* tcp_input_pcb

◆ tcp_listen_pcbs

union tcp_listen_pcbs_t tcp_listen_pcbs

◆ tcp_ticks

u32_t tcp_ticks

◆ tcp_tmp_pcb

struct tcp_pcb* tcp_tmp_pcb

◆ tcp_tw_pcbs

struct tcp_pcb* tcp_tw_pcbs