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"`
`#include <string.h>`
`#include "path/to/my/lwip_hooks.h"`

## Macros

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

## 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

## LWIP_TCP_CALC_INITIAL_CWND

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

Initial CWND calculation as defined RFC 2581

## Function Documentation

## tcp_input()

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

  p | received TCP segment to process (p->payload pointing to the TCP header)
  inp | network interface on which this segment was received