lwIP  2.1.2
Lightweight IP stack

Macros

#define LWIP_SOCKET   1
 
#define LWIP_COMPAT_SOCKETS   1
 
#define LWIP_POSIX_SOCKETS_IO_NAMES   1
 
#define LWIP_SOCKET_OFFSET   0
 
#define LWIP_SOCKET_EXTERNAL_HEADERS   0
 
#define LWIP_SOCKET_OPEN_COUNT   0
 
#define LWIP_TCP_KEEPALIVE   0
 
#define LWIP_SO_SNDTIMEO   0
 
#define LWIP_SO_RCVTIMEO   0
 
#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD   0
 
#define LWIP_SO_RCVBUF   0
 
#define LWIP_SO_LINGER   0
 
#define RECV_BUFSIZE_DEFAULT   INT_MAX
 
#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT   20000
 
#define SO_REUSE   0
 
#define SO_REUSE_RXTOALL   0
 
#define LWIP_FIONREAD_LINUXMODE   0
 
#define LWIP_SOCKET_SELECT   1
 
#define LWIP_SOCKET_POLL   1
 

Detailed Description

Macro Definition Documentation

◆ LWIP_COMPAT_SOCKETS

#define LWIP_COMPAT_SOCKETS   1

LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names through defines. LWIP_COMPAT_SOCKETS==2: Same as ==1 but correctly named functions are created. While this helps code completion, it might conflict with existing libraries. (only used if you use sockets.c)

◆ LWIP_FIONREAD_LINUXMODE

#define LWIP_FIONREAD_LINUXMODE   0

LWIP_FIONREAD_LINUXMODE==0 (default): ioctl/FIONREAD returns the amount of pending data in the network buffer. This is the way windows does it. It's the default for lwIP since it is smaller. LWIP_FIONREAD_LINUXMODE==1: ioctl/FIONREAD returns the size of the next pending datagram in bytes. This is the way linux does it. This code is only here for compatibility.

◆ LWIP_POSIX_SOCKETS_IO_NAMES

#define LWIP_POSIX_SOCKETS_IO_NAMES   1

LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. Disable this option if you use a POSIX operating system that uses the same names (read, write & close). (only used if you use sockets.c)

◆ LWIP_SO_LINGER

#define LWIP_SO_LINGER   0

LWIP_SO_LINGER==1: Enable SO_LINGER processing.

◆ LWIP_SO_RCVBUF

#define LWIP_SO_RCVBUF   0

LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.

◆ LWIP_SO_RCVTIMEO

#define LWIP_SO_RCVTIMEO   0

LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing.

◆ LWIP_SO_SNDRCVTIMEO_NONSTANDARD

#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD   0

LWIP_SO_SNDRCVTIMEO_NONSTANDARD==1: SO_RCVTIMEO/SO_SNDTIMEO take an int (milliseconds, much like winsock does) instead of a struct timeval (default).

◆ LWIP_SO_SNDTIMEO

#define LWIP_SO_SNDTIMEO   0

LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and SO_SNDTIMEO processing.

◆ LWIP_SOCKET

#define LWIP_SOCKET   1

LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)

◆ LWIP_SOCKET_EXTERNAL_HEADERS

#define LWIP_SOCKET_EXTERNAL_HEADERS   0

LWIP_SOCKET_EXTERNAL_HEADERS==1: Use external headers instead of sockets.h and inet.h. In this case, user must provide its own headers by setting the values for LWIP_SOCKET_EXTERNAL_HEADER_SOCKETS_H and LWIP_SOCKET_EXTERNAL_HEADER_INET_H to appropriate include file names and the whole content of the default sockets.h and inet.h is skipped.

◆ LWIP_SOCKET_OFFSET

#define LWIP_SOCKET_OFFSET   0

LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n. This can be useful when there are multiple APIs which create file descriptors. When they all start with a different offset and you won't make them overlap you can re implement read/write/close/ioctl/fnctl to send the requested action to the right library (sharing select will need more work though).

◆ LWIP_SOCKET_OPEN_COUNT

#define LWIP_SOCKET_OPEN_COUNT   0

LWIP_SOCKET_OPEN_COUNT==1: Number of sockets is not limited to MEMP_NUM_NETCONN. When enabled, sockets are allocated in the heap and the amount of sockets is only limited by the heap size. Handle with care regarding execution speed.

◆ LWIP_SOCKET_POLL

#define LWIP_SOCKET_POLL   1

LWIP_SOCKET_POLL==1 (default): enable poll() for sockets (including struct pollfd, nfds_t, and constants)

◆ LWIP_SOCKET_SELECT

#define LWIP_SOCKET_SELECT   1

LWIP_SOCKET_SELECT==1 (default): enable select() for sockets (uses a netconn callback to keep track of events). This saves RAM (counters per socket) and code (netconn event callback), which should improve performance a bit).

◆ LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT

#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT   20000

By default, TCP socket/netconn close waits 20 seconds max to send the FIN

◆ LWIP_TCP_KEEPALIVE

#define LWIP_TCP_KEEPALIVE   0

LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds. (does not require sockets.c, and will affect tcp.c)

◆ RECV_BUFSIZE_DEFAULT

#define RECV_BUFSIZE_DEFAULT   INT_MAX

If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.

◆ SO_REUSE

#define SO_REUSE   0

SO_REUSE==1: Enable SO_REUSEADDR option.

◆ SO_REUSE_RXTOALL

#define SO_REUSE_RXTOALL   0

SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets to all local matches if SO_REUSEADDR is turned on. WARNING: Adds a memcpy for every packet if passing to more than one pcb!