lwIP 2.0.0  lwIP 2.0.0
LightweightIPstack
tcp_in.c File Reference
#include "lwip/opt.h"
#include "lwip/priv/tcp_priv.h"
#include "lwip/def.h"
#include "lwip/ip_addr.h"
#include "lwip/netif.h"
#include "lwip/mem.h"
#include "lwip/memp.h"
#include "lwip/inet_chksum.h"
#include "lwip/stats.h"
#include "lwip/ip6.h"
#include "lwip/ip6_addr.h"
#include "lwip/nd6.h"

Macros

#define LWIP_TCP_CALC_INITIAL_CWND(mss)   LWIP_MIN((4U * (mss)), LWIP_MAX((2U * (mss)), 4380U));
 
#define LWIP_TCP_INITIAL_SSTHRESH(pcb)   ((pcb)->snd_wnd)
 

Functions

void tcp_input (struct pbuf *p, struct netif *inp)
 

Detailed Description

Transmission Control Protocol, incoming traffic

The input processing functions of the TCP layer.

These functions are generally called in the order (ip_input() ->) tcp_input() -> * tcp_process() -> tcp_receive() (-> application).

Macro Definition Documentation

#define LWIP_TCP_CALC_INITIAL_CWND (   mss)    LWIP_MIN((4U * (mss)), LWIP_MAX((2U * (mss)), 4380U));

Initial CWND calculation as defined RFC 2581

#define LWIP_TCP_INITIAL_SSTHRESH (   pcb)    ((pcb)->snd_wnd)

Initial slow start threshold value: we use the full window

Function Documentation

void tcp_input ( struct pbuf p,
struct netif inp 
)

The initial input processing of TCP. It verifies the TCP header, demultiplexes the segment between the PCBs and passes it on to tcp_process(), which implements the TCP finite state machine. This function is called by the IP layer (in ip_input()).

Parameters
preceived TCP segment to process (p->payload pointing to the TCP header)
inpnetwork interface on which this segment was received