lwIP
2.1.0
Lightweight IP stack
|
#include "lwip/opt.h"
#include "lwip/tcpbase.h"
#include "lwip/mem.h"
#include "lwip/pbuf.h"
#include "lwip/ip.h"
#include "lwip/icmp.h"
#include "lwip/err.h"
#include "lwip/ip6.h"
#include "lwip/ip6_addr.h"
Data Structures | |
struct | tcp_ext_arg_callbacks |
struct | tcp_pcb_listen |
struct | tcp_pcb |
Macros | |
#define | TCP_PCB_COMMON(type) |
#define | tcp_mss(pcb) ((pcb)->mss) |
#define | tcp_sndbuf(pcb) (TCPWND16((pcb)->snd_buf)) |
#define | tcp_sndqueuelen(pcb) ((pcb)->snd_queuelen) |
#define | tcp_nagle_disable(pcb) tcp_set_flags(pcb, TF_NODELAY) |
#define | tcp_nagle_enable(pcb) tcp_clear_flags(pcb, TF_NODELAY) |
#define | tcp_nagle_disabled(pcb) tcp_is_flag_set(pcb, TF_NODELAY) |
#define | tcp_listen(pcb) tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG) |
Typedefs | |
typedef err_t(* | tcp_accept_fn) (void *arg, struct tcp_pcb *newpcb, err_t err) |
typedef err_t(* | tcp_recv_fn) (void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) |
typedef err_t(* | tcp_sent_fn) (void *arg, struct tcp_pcb *tpcb, u16_t len) |
typedef err_t(* | tcp_poll_fn) (void *arg, struct tcp_pcb *tpcb) |
typedef void(* | tcp_err_fn) (void *arg, err_t err) |
typedef err_t(* | tcp_connected_fn) (void *arg, struct tcp_pcb *tpcb, err_t err) |
typedef void(* | tcp_extarg_callback_pcb_destroyed_fn) (u8_t id, void *data) |
typedef err_t(* | tcp_extarg_callback_passive_open_fn) (u8_t id, struct tcp_pcb_listen *lpcb, struct tcp_pcb *cpcb) |
Functions | |
struct tcp_pcb * | tcp_new (void) |
struct tcp_pcb * | tcp_new_ip_type (u8_t type) |
void | tcp_arg (struct tcp_pcb *pcb, void *arg) |
void | tcp_recv (struct tcp_pcb *pcb, tcp_recv_fn recv) |
void | tcp_sent (struct tcp_pcb *pcb, tcp_sent_fn sent) |
void | tcp_err (struct tcp_pcb *pcb, tcp_err_fn err) |
void | tcp_accept (struct tcp_pcb *pcb, tcp_accept_fn accept) |
void | tcp_poll (struct tcp_pcb *pcb, tcp_poll_fn poll, u8_t interval) |
void | tcp_backlog_delayed (struct tcp_pcb *pcb) |
void | tcp_backlog_accepted (struct tcp_pcb *pcb) |
void | tcp_recved (struct tcp_pcb *pcb, u16_t len) |
err_t | tcp_bind (struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) |
void | tcp_bind_netif (struct tcp_pcb *pcb, const struct netif *netif) |
err_t | tcp_connect (struct tcp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port, tcp_connected_fn connected) |
struct tcp_pcb * | tcp_listen_with_backlog_and_err (struct tcp_pcb *pcb, u8_t backlog, err_t *err) |
struct tcp_pcb * | tcp_listen_with_backlog (struct tcp_pcb *pcb, u8_t backlog) |
void | tcp_abort (struct tcp_pcb *pcb) |
err_t | tcp_close (struct tcp_pcb *pcb) |
err_t | tcp_shutdown (struct tcp_pcb *pcb, int shut_rx, int shut_tx) |
err_t | tcp_write (struct tcp_pcb *pcb, const void *dataptr, u16_t len, u8_t apiflags) |
void | tcp_setprio (struct tcp_pcb *pcb, u8_t prio) |
err_t | tcp_output (struct tcp_pcb *pcb) |
u8_t | tcp_ext_arg_alloc_id (void) |
void | tcp_ext_arg_set_callbacks (struct tcp_pcb *pcb, uint8_t id, const struct tcp_ext_arg_callbacks *const callbacks) |
void | tcp_ext_arg_set (struct tcp_pcb *pcb, uint8_t id, void *arg) |
void * | tcp_ext_arg_get (const struct tcp_pcb *pcb, uint8_t id) |
TCP API (to be used from TCPIP thread)
See also TCP
#define TCP_PCB_COMMON | ( | type | ) |
members common to struct tcp_pcb and struct tcp_listen_pcb
Function prototype for tcp accept callback functions. Called when a new connection can be accepted on a listening pcb.
arg | Additional argument to pass to the callback function ( |
newpcb | The new connection pcb |
err | An error code if there has been an error accepting. Only return ERR_ABRT if you have called tcp_abort from within the callback function! |
Function prototype for tcp connected callback functions. Called when a pcb is connected to the remote side after initiating a connection attempt by calling tcp_connect().
arg | Additional argument to pass to the callback function ( |
tpcb | The connection pcb which is connected |
err | An unused error code, always ERR_OK currently ;-) |
typedef void(* tcp_err_fn) (void *arg, err_t err) |
Function prototype for tcp error callback functions. Called when the pcb receives a RST or is unexpectedly closed for any other reason.
arg | Additional argument to pass to the callback function ( |
err | Error code to indicate why the pcb has been closed ERR_ABRT: aborted through tcp_abort or by a TCP timer ERR_RST: the connection was reset by the remote host |
typedef err_t(* tcp_extarg_callback_passive_open_fn) (u8_t id, struct tcp_pcb_listen *lpcb, struct tcp_pcb *cpcb) |
Function prototype to transition arguments from a listening pcb to an accepted pcb
id | ext arg id (allocated via tcp_ext_arg_alloc_id) |
lpcb | the listening pcb accepting a connection |
cpcb | the newly allocated connection pcb |
typedef void(* tcp_extarg_callback_pcb_destroyed_fn) (u8_t id, void *data) |
Function prototype for deallocation of arguments. Called just before the pcb is freed, so don't expect to be able to do anything with this pcb!
id | ext arg id (allocated via tcp_ext_arg_alloc_id) |
data | pointer to the data (set via tcp_ext_arg_set before) |
Function prototype for tcp poll callback functions. Called periodically as specified by
arg | Additional argument to pass to the callback function ( |
tpcb | tcp pcb |
Function prototype for tcp receive callback functions. Called when data has been received.
arg | Additional argument to pass to the callback function ( |
tpcb | The connection pcb which received data |
p | The received data (or NULL when the connection has been closed!) |
err | An error code if there has been an error receiving Only return ERR_ABRT if you have called tcp_abort from within the callback function! |
Function prototype for tcp sent callback functions. Called when sent data has been acknowledged by the remote side. Use it to free corresponding resources. This also means that the pcb has now space available to send new data.
arg | Additional argument to pass to the callback function ( |
tpcb | The connection pcb for which data has been acknowledged |
len | The amount of bytes acknowledged |