Microchip® Advanced Software Framework

dev/src/include/lwip/opt.h File Reference

lwIP Options Configuration

#include "lwipopts.h"
#include "lwip/debug.h"

Macros

#define API_LIB_DEBUG   LWIP_DBG_OFF
 API_LIB_DEBUG: Enable debugging in api_lib.c. More...
 
#define API_MSG_DEBUG   LWIP_DBG_OFF
 API_MSG_DEBUG: Enable debugging in api_msg.c. More...
 
#define ARP_QUEUE_LEN   3
 The maximum number of packets which may be queued for each unresolved address by other network layers. More...
 
#define ARP_QUEUEING   0
 ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address resolution. More...
 
#define ARP_TABLE_SIZE   10
 ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached. More...
 
#define AUTOIP_DEBUG   LWIP_DBG_OFF
 AUTOIP_DEBUG: Enable debugging in autoip.c. More...
 
#define CHECKSUM_CHECK_ICMP   1
 CHECKSUM_CHECK_ICMP==1: Check checksums in software for incoming ICMP packets. More...
 
#define CHECKSUM_CHECK_ICMP6   1
 CHECKSUM_CHECK_ICMP6==1: Check checksums in software for incoming ICMPv6 packets. More...
 
#define CHECKSUM_CHECK_IP   1
 CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets. More...
 
#define CHECKSUM_CHECK_TCP   1
 CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets. More...
 
#define CHECKSUM_CHECK_UDP   1
 CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets. More...
 
#define CHECKSUM_GEN_ICMP   1
 CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets. More...
 
#define CHECKSUM_GEN_ICMP6   1
 CHECKSUM_GEN_ICMP6==1: Generate checksums in software for outgoing ICMP6 packets. More...
 
#define CHECKSUM_GEN_IP   1
 CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets. More...
 
#define CHECKSUM_GEN_TCP   1
 CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets. More...
 
#define CHECKSUM_GEN_UDP   1
 CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets. More...
 
#define DEFAULT_ACCEPTMBOX_SIZE   0
 DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. More...
 
#define DEFAULT_RAW_RECVMBOX_SIZE   0
 DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_RAW. More...
 
#define DEFAULT_TCP_RECVMBOX_SIZE   0
 DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_TCP. More...
 
#define DEFAULT_THREAD_NAME   "lwIP"
 DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread. More...
 
#define DEFAULT_THREAD_PRIO   1
 DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread. More...
 
#define DEFAULT_THREAD_STACKSIZE   0
 DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread. More...
 
#define DEFAULT_UDP_RECVMBOX_SIZE   0
 DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_UDP. More...
 
#define DHCP_DEBUG   LWIP_DBG_OFF
 DHCP_DEBUG: Enable debugging in dhcp.c. More...
 
#define DHCP_DOES_ARP_CHECK   ((LWIP_DHCP) && (LWIP_ARP))
 DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. More...
 
#define DNS_DEBUG   LWIP_DBG_OFF
 DNS_DEBUG: Enable debugging for DNS. More...
 
#define DNS_DOES_NAME_CHECK   1
 DNS do a name checking between the query and the response. More...
 
#define DNS_LOCAL_HOSTLIST   0
 DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. More...
 
#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC   0
 If this is turned on, the local host-list can be dynamically changed at runtime. More...
 
#define DNS_MAX_NAME_LENGTH   256
 DNS maximum host name length supported in the name table. More...
 
#define DNS_MAX_SERVERS   2
 The maximum of DNS servers. More...
 
#define DNS_TABLE_SIZE   4
 DNS maximum number of entries to maintain locally. More...
 
#define ETH_PAD_SIZE   0
 ETH_PAD_SIZE: number of bytes added before the ethernet header to ensure alignment of payload after that header. More...
 
#define ETHARP_DEBUG   LWIP_DBG_OFF
 ETHARP_DEBUG: Enable debugging in etharp.c. More...
 
#define ETHARP_STATS   (LWIP_ARP)
 ETHARP_STATS==1: Enable etharp stats. More...
 
#define ETHARP_SUPPORT_STATIC_ENTRIES   0
 ETHARP_SUPPORT_STATIC_ENTRIES==1: enable code to support static ARP table entries (using etharp_add_static_entry/etharp_remove_static_entry). More...
 
#define ETHARP_SUPPORT_VLAN   0
 ETHARP_SUPPORT_VLAN==1: support receiving and sending ethernet packets with VLAN header. More...
 
#define ETHARP_TRUST_IP_MAC   0
 ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be updated with the source MAC and IP addresses supplied in the packet. More...
 
#define ICMP6_STATS   (LWIP_IPV6 && LWIP_ICMP6)
 ICMP6_STATS==1: Enable ICMP for IPv6 stats. More...
 
#define ICMP_DEBUG   LWIP_DBG_OFF
 ICMP_DEBUG: Enable debugging in icmp.c. More...
 
#define ICMP_STATS   1
 ICMP_STATS==1: Enable ICMP stats. More...
 
#define ICMP_TTL   (IP_DEFAULT_TTL)
 ICMP_TTL: Default value for Time-To-Live used by ICMP packets. More...
 
#define IGMP_DEBUG   LWIP_DBG_OFF
 IGMP_DEBUG: Enable debugging in igmp.c. More...
 
#define IGMP_STATS   (LWIP_IGMP)
 IGMP_STATS==1: Enable IGMP stats. More...
 
#define INET_DEBUG   LWIP_DBG_OFF
 INET_DEBUG: Enable debugging in inet.c. More...
 
#define IP6_DEBUG   LWIP_DBG_OFF
 IP6_DEBUG: Enable debugging for IPv6. More...
 
#define IP6_FRAG_STATS   (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
 IP6_FRAG_STATS==1: Enable IPv6 fragmentation stats. More...
 
#define IP6_STATS   (LWIP_IPV6)
 IP6_STATS==1: Enable IPv6 stats. More...
 
#define IP_DEBUG   LWIP_DBG_OFF
 IP_DEBUG: Enable debugging for IP. More...
 
#define IP_DEFAULT_TTL   255
 IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer (requires IP_FRAG_USES_STATIC_BUF==1) More...
 
#define IP_FORWARD   0
 IP_FORWARD==1: Enables the ability to forward IP packets across network interfaces. More...
 
#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF   0
 IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1: allow ip_forward() to send packets back out on the netif where it was received. More...
 
#define IP_FRAG   1
 IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. More...
 
#define IP_FRAG_USES_STATIC_BUF   0
 IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP fragmentation. More...
 
#define IP_OPTIONS_ALLOWED   1
 IP_OPTIONS_ALLOWED: Defines the behavior for IP options. More...
 
#define IP_REASS_DEBUG   LWIP_DBG_OFF
 IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass. More...
 
#define IP_REASS_MAX_PBUFS   10
 IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. More...
 
#define IP_REASS_MAXAGE   3
 IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) a fragmented IP packet waits for all fragments to arrive. More...
 
#define IP_REASSEMBLY   1
 IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. More...
 
#define IP_SOF_BROADCAST   0
 IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast filter per pcb on udp and raw send operations. More...
 
#define IP_SOF_BROADCAST_RECV   0
 IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast filter on recv operations. More...
 
#define IP_STATS   1
 IP_STATS==1: Enable IP stats. More...
 
#define IPFRAG_STATS   (IP_REASSEMBLY || IP_FRAG)
 IPFRAG_STATS==1: Enable IP fragmentation stats. More...
 
#define LINK_STATS   1
 LINK_STATS==1: Enable link stats. More...
 
#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT   0
 Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from interrupt context (or another context that doesn't allow waiting for a semaphore). More...
 
#define LWIP_ARP   1
 LWIP_ARP==1: Enable ARP functionality. More...
 
#define LWIP_AUTOIP   0
 LWIP_AUTOIP==1: Enable AUTOIP module. More...
 
#define LWIP_BROADCAST_PING   0
 LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only) More...
 
#define LWIP_CALLBACK_API   1
 
#define LWIP_CHECKSUM_ON_COPY   0
 LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from application buffers to pbufs. More...
 
#define LWIP_COMPAT_SOCKETS   1
 LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names. More...
 
#define LWIP_DBG_MIN_LEVEL   LWIP_DBG_LEVEL_ALL
 LWIP_HOOK_IP4_INPUT(pbuf, input_netif): More...
 
#define LWIP_DBG_TYPES_ON   LWIP_DBG_ON
 LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable debug messages of certain types. More...
 
#define LWIP_DHCP   0
 LWIP_DHCP==1: Enable DHCP module. More...
 
#define LWIP_DHCP_AUTOIP_COOP   0
 LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on the same interface at the same time. More...
 
#define LWIP_DHCP_AUTOIP_COOP_TRIES   9
 LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes that should be sent before falling back on AUTOIP. More...
 
#define LWIP_DHCP_BOOTP_FILE   0
 LWIP_DHCP_BOOTP_FILE==1: Store offered_si_addr and boot_file_name. More...
 
#define LWIP_DHCP_CHECK_LINK_UP   0
 LWIP_DHCP_CHECK_LINK_UP==1: dhcp_start() only really starts if the netif has NETIF_FLAG_LINK_UP set in its flags. More...
 
#define LWIP_DNS   0
 LWIP_DNS==1: Turn on DNS module. More...
 
#define LWIP_ETHERNET   (LWIP_ARP || PPPOE_SUPPORT)
 LWIP_ETHERNET==1: enable ethernet support for PPPoE even though ARP might be disabled. More...
 
#define LWIP_EVENT_API   0
 LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1. More...
 
#define LWIP_FIONREAD_LINUXMODE   0
 LWIP_FIONREAD_LINUXMODE==0 (default): ioctl/FIONREAD returns the amount of pending data in the network buffer. More...
 
#define LWIP_HAVE_LOOPIF   0
 LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) More...
 
#define LWIP_HAVE_SLIPIF   0
 LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c. More...
 
#define LWIP_ICMP   1
 LWIP_ICMP==1: Enable ICMP module inside the IP stack. More...
 
#define LWIP_ICMP6   (LWIP_IPV6)
 LWIP_ICMP6==1: Enable ICMPv6 (mandatory per RFC) More...
 
#define LWIP_ICMP6_DATASIZE   8
 LWIP_ICMP6_DATASIZE: bytes from original packet to send back in ICMPv6 error messages. More...
 
#define LWIP_ICMP6_HL   255
 LWIP_ICMP6_HL: default hop limit for ICMPv6 messages. More...
 
#define LWIP_IGMP   0
 LWIP_IGMP==1: Turn on IGMP module. More...
 
#define LWIP_IPV6   0
 LWIP_IPV6==1: Enable IPv6. More...
 
#define LWIP_IPV6_AUTOCONFIG   (LWIP_IPV6)
 LWIP_IPV6_AUTOCONFIG==1: Enable stateless address autoconfiguration as per RFC 4862. More...
 
#define LWIP_IPV6_DHCP6   0
 LWIP_IPV6_DHCP6==1: enable DHCPv6 stateful address autoconfiguration. More...
 
#define LWIP_IPV6_DUP_DETECT_ATTEMPTS   1
 LWIP_IPV6_DUP_DETECT_ATTEMPTS: Number of duplicate address detection attempts. More...
 
#define LWIP_IPV6_FORWARD   0
 LWIP_IPV6_FORWARD==1: Forward IPv6 packets across netifs. More...
 
#define LWIP_IPV6_FRAG   0
 LWIP_IPV6_FRAG==1: Fragment outgoing IPv6 packets that are too big. More...
 
#define LWIP_IPV6_MLD   (LWIP_IPV6)
 LWIP_IPV6_MLD==1: Enable multicast listener discovery protocol. More...
 
#define LWIP_IPV6_NUM_ADDRESSES   3
 LWIP_IPV6_NUM_ADDRESSES: Number of IPv6 addresses per netif. More...
 
#define LWIP_IPV6_REASS   (LWIP_IPV6)
 LWIP_IPV6_REASS==1: reassemble incoming IPv6 packets that fragmented. More...
 
#define LWIP_IPV6_SEND_ROUTER_SOLICIT   1
 LWIP_IPV6_SEND_ROUTER_SOLICIT==1: Send router solicitation messages during network startup. More...
 
#define LWIP_LOOPBACK_MAX_PBUFS   0
 LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback sending for each netif (0 = disabled) More...
 
#define LWIP_MPU_COMPATIBLE   0
 LWIP_MPU_COMPATIBLE: enables special memory management mechanism which makes lwip able to work on MPU (Memory Protection Unit) system by not passing stack-pointers to other threads (this decreases performance) More...
 
#define LWIP_MULTICAST_PING   0
 LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only) More...
 
#define LWIP_ND6_ALLOW_RA_UPDATES   1
 LWIP_ND6_ALLOW_RA_UPDATES==1: Allow Router Advertisement messages to update Reachable time and retransmission timers, and netif MTU. More...
 
#define LWIP_ND6_DELAY_FIRST_PROBE_TIME   5000
 LWIP_ND6_DELAY_FIRST_PROBE_TIME: Delay before first unicast neighbor solicitation message is sent, during neighbor reachability detection. More...
 
#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME   1000
 Unused: See ND RFC (time in milliseconds). More...
 
#define LWIP_ND6_MAX_MULTICAST_SOLICIT   3
 LWIP_ND6_MAX_MULTICAST_SOLICIT: max number of multicast solicit messages to send (neighbor solicit and router solicit) More...
 
#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT   3
 Unused: See ND RFC. More...
 
#define LWIP_ND6_MAX_UNICAST_SOLICIT   3
 LWIP_ND6_MAX_UNICAST_SOLICIT: max number of unicast neighbor solicitation messages to send during neighbor reachability detection. More...
 
#define LWIP_ND6_NUM_DESTINATIONS   10
 LWIP_ND6_NUM_DESTINATIONS: number of entries in IPv6 destination cache. More...
 
#define LWIP_ND6_NUM_NEIGHBORS   10
 LWIP_ND6_NUM_NEIGHBORS: Number of entries in IPv6 neighbor cache. More...
 
#define LWIP_ND6_NUM_PREFIXES   5
 LWIP_ND6_NUM_PREFIXES: number of entries in IPv6 on-link prefixes cache. More...
 
#define LWIP_ND6_NUM_ROUTERS   3
 LWIP_ND6_NUM_ROUTERS: number of entries in IPv6 default router cache. More...
 
#define LWIP_ND6_QUEUEING   (LWIP_IPV6)
 LWIP_ND6_QUEUEING==1: queue outgoing IPv6 packets while MAC address is being resolved. More...
 
#define LWIP_ND6_REACHABLE_TIME   30000
 LWIP_ND6_REACHABLE_TIME: default neighbor reachable time (in milliseconds). More...
 
#define LWIP_ND6_RETRANS_TIMER   1000
 LWIP_ND6_RETRANS_TIMER: default retransmission timer for solicitation messages. More...
 
#define LWIP_ND6_TCP_REACHABILITY_HINTS   1
 LWIP_ND6_TCP_REACHABILITY_HINTS==1: Allow TCP to provide Neighbor Discovery with reachability hints for connected destinations. More...
 
#define LWIP_NETBUF_RECVINFO   0
 LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf. More...
 
#define LWIP_NETCONN   1
 LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c) More...
 
#define LWIP_NETCONN_SEM_PER_THREAD   0
 LWIP_NETCONN_SEM_PER_THREAD==1: Use one (thread-local) semaphore per thread calling socket/netconn functions instead of allocating one semaphore per netconn (and per select etc.) ATTENTION: a thread-local semaphore for API calls is needed: More...
 
#define LWIP_NETIF_API   0
 LWIP_NETIF_API==1: Support netif api (in netifapi.c) More...
 
#define LWIP_NETIF_HOSTNAME   0
 LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname field. More...
 
#define LWIP_NETIF_HWADDRHINT   0
 LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. More...
 
#define LWIP_NETIF_LINK_CALLBACK   0
 LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface whenever the link changes (i.e., link down) More...
 
#define LWIP_NETIF_LOOPBACK   0
 LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP address equal to the netif IP address, looping them back up the stack. More...
 
#define LWIP_NETIF_LOOPBACK_MULTITHREADING   (!NO_SYS)
 LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in the system, as netifs must change how they behave depending on this setting for the LWIP_NETIF_LOOPBACK option to work. More...
 
#define LWIP_NETIF_REMOVE_CALLBACK   0
 LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called when a netif has been removed. More...
 
#define LWIP_NETIF_STATUS_CALLBACK   0
 LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquisition) More...
 
#define LWIP_NETIF_TX_SINGLE_PBUF   0
 LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data to be sent into one single pbuf. More...
 
#define LWIP_POSIX_SOCKETS_IO_NAMES   1
 LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. More...
 
#define LWIP_PPP_API   0
 LWIP_PPP_API==1: Enable PPP API (in pppapi.c) More...
 
#define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS   0
 LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS==1: randomize the local port for the first local TCP/UDP pcb (default==0). More...
 
#define LWIP_RAW   1
 LWIP_RAW==1: Enable application layer to hook into the IP layer itself. More...
 
#define LWIP_SNMP   0
 LWIP_SNMP==1: Turn on SNMP module. More...
 
#define LWIP_SO_RCVBUF   0
 LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. More...
 
#define LWIP_SO_RCVTIMEO   0
 LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing. More...
 
#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). More...
 
#define LWIP_SO_SNDTIMEO   0
 LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and SO_SNDTIMEO processing. More...
 
#define LWIP_SOCKET   1
 LWIP_SOCKET==1: Enable Socket API (require to use sockets.c) More...
 
#define LWIP_SOCKET_SET_ERRNO   1
 
#define LWIP_STATS   1
 LWIP_STATS==1: Enable statistics collection in lwip_stats. More...
 
#define LWIP_STATS_DISPLAY   0
 LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. More...
 
#define LWIP_TCP   1
 LWIP_TCP==1: Turn on TCP. More...
 
#define LWIP_TCP_KEEPALIVE   0
 LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT options processing. More...
 
#define LWIP_TCP_TIMESTAMPS   0
 LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. More...
 
#define LWIP_TCPIP_CORE_LOCKING   0
 LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member. More...
 
#define LWIP_TCPIP_CORE_LOCKING_INPUT   0
 LWIP_TCPIP_CORE_LOCKING_INPUT: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member. More...
 
#define LWIP_TCPIP_TIMEOUT   1
 LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout to create timers running in tcpip_thread from another thread. More...
 
#define LWIP_UDP   1
 LWIP_UDP==1: Turn on UDP. More...
 
#define LWIP_UDPLITE   0
 LWIP_UDPLITE==1: Turn on UDP-Lite. More...
 
#define LWIP_WND_SCALE   0
 LWIP_WND_SCALE and TCP_RCV_SCALE: Set LWIP_WND_SCALE to 1 to enable window scaling. More...
 
#define M2M_ETHERNET_HDR_OFFSET   36
 PBUF_LINK_ENCAPSULATION_HLEN: the number of bytes that should be allocated for an additional encapsulation header before ethernet headers (e.g. More...
 
#define MEM_ALIGNMENT   1
 MEM_ALIGNMENT: should be set to the alignment of the CPU 4 byte alignment -> #define MEM_ALIGNMENT 4 2 byte alignment -> #define MEM_ALIGNMENT 2. More...
 
#define MEM_DEBUG   LWIP_DBG_OFF
 MEM_DEBUG: Enable debugging in mem.c. More...
 
#define MEM_LIBC_MALLOC   0
 MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library instead of the lwip internal allocator. More...
 
#define MEM_SIZE   1600
 MEM_SIZE: the size of the heap memory. More...
 
#define MEM_STATS   ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
 MEM_STATS==1: Enable mem.c stats. More...
 
#define MEM_USE_POOLS   0
 MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set of memory pools of various sizes. More...
 
#define MEM_USE_POOLS_TRY_BIGGER_POOL   0
 MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more reliable. More...
 
#define MEMCPY(dst, src, len)   memcpy(dst,src,len)
 MEMCPY: override this if you have a faster implementation at hand than the one included in your C library. More...
 
#define MEMP_DEBUG   LWIP_DBG_OFF
 MEMP_DEBUG: Enable debugging in memp.c. More...
 
#define MEMP_MEM_MALLOC   0
 MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator. More...
 
#define MEMP_NUM_API_MSG   MEMP_NUM_TCPIP_MSG_API
 MEMP_NUM_API_MSG: the number of concurrently active calls to various socket, netconn, and tcpip functions. More...
 
#define MEMP_NUM_ARP_QUEUE   30
 MEMP_NUM_ARP_QUEUE: the number of simultaneously queued outgoing packets (pbufs) that are waiting for an ARP request (to resolve their destination address) to finish. More...
 
#define MEMP_NUM_DNS_API_MSG   MEMP_NUM_TCPIP_MSG_API
 MEMP_NUM_DNS_API_MSG: the number of concurrently active calls to netconn_gethostbyname. More...
 
#define MEMP_NUM_FRAG_PBUF   15
 MEMP_NUM_FRAG_PBUF: the number of IP fragments simultaneously sent (fragments, not whole packets!). More...
 
#define MEMP_NUM_IGMP_GROUP   8
 MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces can be members at the same time (one per netif - allsystems group -, plus one per netif membership). More...
 
#define MEMP_NUM_LOCALHOSTLIST   1
 MEMP_NUM_LOCALHOSTLIST: the number of host entries in the local host list if DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1. More...
 
#define MEMP_NUM_MLD6_GROUP   4
 MEMP_NUM_MLD6_GROUP: Max number of IPv6 multicast that can be joined. More...
 
#define MEMP_NUM_ND6_QUEUE   20
 MEMP_NUM_ND6_QUEUE: Max number of IPv6 packets to queue during MAC resolution. More...
 
#define MEMP_NUM_NETBUF   2
 MEMP_NUM_NETBUF: the number of struct netbufs. More...
 
#define MEMP_NUM_NETCONN   4
 MEMP_NUM_NETCONN: the number of struct netconns. More...
 
#define MEMP_NUM_NETDB   1
 MEMP_NUM_NETDB: the number of concurrently running lwip_addrinfo() calls (before freeing the corresponding memory using lwip_freeaddrinfo()). More...
 
#define MEMP_NUM_NETIFAPI_MSG   MEMP_NUM_TCPIP_MSG_API
 MEMP_NUM_NETIFAPI_MSG: the number of concurrently active calls to the netifapi functions. More...
 
#define MEMP_NUM_PBUF   16
 MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). More...
 
#define MEMP_NUM_PPP_PCB   1
 MEMP_NUM_PPP_PCB: the number of simultaneously active PPP connections (requires the PPP_SUPPORT option) More...
 
#define MEMP_NUM_PPPOE_INTERFACES   1
 MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE interfaces (only used with PPPOE_SUPPORT==1) More...
 
#define MEMP_NUM_PPPOL2TP_INTERFACES   1
 MEMP_NUM_PPPOL2TP_INTERFACES: the number of concurrently active PPPoL2TP interfaces (only used with PPPOL2TP_SUPPORT==1) More...
 
#define MEMP_NUM_RAW_PCB   4
 MEMP_NUM_RAW_PCB: Number of raw connection PCBs (requires the LWIP_RAW option) More...
 
#define MEMP_NUM_REASSDATA   5
 MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for reassembly (whole packets, not fragments!) More...
 
#define MEMP_NUM_SNMP_NODE   50
 MEMP_NUM_SNMP_NODE: the number of leafs in the SNMP tree. More...
 
#define MEMP_NUM_SNMP_ROOTNODE   30
 MEMP_NUM_SNMP_ROOTNODE: the number of branches in the SNMP tree. More...
 
#define MEMP_NUM_SNMP_VALUE   3
 MEMP_NUM_SNMP_VALUE: the number of OID or values concurrently used (does not have to be changed normally) - 3 of these are used per request (1 for the value read and 2 for OIDs - input and output) More...
 
#define MEMP_NUM_SNMP_VARBIND   2
 MEMP_NUM_SNMP_VARBIND: the number of concurrent requests (does not have to be changed normally) - 2 of these are used per request (1 for input, 1 for output) More...
 
#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA   MEMP_NUM_TCPIP_MSG_API
 MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA: the number of concurrently active calls to getsockopt/setsockopt. More...
 
#define MEMP_NUM_SYS_TIMEOUT   (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + (PPP_SUPPORT*6*MEMP_NUM_PPP_PCB) + (LWIP_IPV6 ? (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD) : 0))
 MEMP_NUM_SYS_TIMEOUT: the number of simultaneously active timeouts. More...
 
#define MEMP_NUM_TCP_PCB   5
 MEMP_NUM_TCP_PCB: the number of simultaneously active TCP connections. More...
 
#define MEMP_NUM_TCP_PCB_LISTEN   8
 MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. More...
 
#define MEMP_NUM_TCP_SEG   16
 MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. More...
 
#define MEMP_NUM_TCPIP_MSG_API   8
 MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used for callback/timeout API communication. More...
 
#define MEMP_NUM_TCPIP_MSG_INPKT   32
 MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used for incoming packets. More...
 
#define MEMP_NUM_UDP_PCB   4
 MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. More...
 
#define MEMP_OVERFLOW_CHECK   0
 MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable amount of bytes before and after each memp element in every pool and fills it with a prominent default value. More...
 
#define MEMP_SANITY_CHECK   0
 MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make sure that there are no cycles in the linked lists. More...
 
#define MEMP_SEPARATE_POOLS   0
 MEMP_SEPARATE_POOLS: if defined to 1, each pool is placed in its own array. More...
 
#define MEMP_STATS   (MEMP_MEM_MALLOC == 0)
 MEMP_STATS==1: Enable memp.c pool stats. More...
 
#define MEMP_USE_CUSTOM_POOLS   0
 MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h that defines additional pools beyond the "standard" ones required by lwIP. More...
 
#define MLD6_STATS   (LWIP_IPV6 && LWIP_IPV6_MLD)
 MLD6_STATS==1: Enable MLD for IPv6 stats. More...
 
#define ND6_STATS   (LWIP_IPV6)
 ND6_STATS==1: Enable Neighbor discovery for IPv6 stats. More...
 
#define NETIF_DEBUG   LWIP_DBG_OFF
 NETIF_DEBUG: Enable debugging in netif.c. More...
 
#define NO_SYS   0
 NO_SYS==1: Provides VERY minimal functionality. More...
 
#define NO_SYS_NO_TIMERS   0
 NO_SYS_NO_TIMERS==1: Drop support for sys_timeout when NO_SYS==1 Mainly for compatibility to old versions. More...
 
#define PBUF_DEBUG   LWIP_DBG_OFF
 PBUF_DEBUG: Enable debugging in pbuf.c. More...
 
#define PBUF_LINK_ENCAPSULATION_HLEN   M2M_ETHERNET_HDR_OFFSET
 
#define PBUF_LINK_HLEN   (14 + ETH_PAD_SIZE)
 PBUF_LINK_HLEN: the number of bytes that should be allocated for a link level header. More...
 
#define PBUF_POOL_BUFSIZE   LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
 PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. More...
 
#define PBUF_POOL_SIZE   16
 PBUF_POOL_SIZE: the number of buffers in the pbuf pool. More...
 
#define PPP_DEBUG   LWIP_DBG_OFF
 PPP_DEBUG: Enable debugging for PPP. More...
 
#define PPP_SUPPORT   0
 PPP_SUPPORT==1: Enable PPP. More...
 
#define PPPOE_SUPPORT   0
 PPPOE_SUPPORT==1: Enable PPP Over Ethernet. More...
 
#define PPPOL2TP_AUTH_SUPPORT   PPPOL2TP_SUPPORT
 PPPOL2TP_AUTH_SUPPORT==1: Enable PPP Over L2TP Auth (enable MD5 support) More...
 
#define PPPOL2TP_SUPPORT   0
 PPPOL2TP_SUPPORT==1: Enable PPP Over L2TP. More...
 
#define PPPOS_SUPPORT   PPP_SUPPORT
 PPPOS_SUPPORT==1: Enable PPP Over Serial. More...
 
#define RAW_DEBUG   LWIP_DBG_OFF
 RAW_DEBUG: Enable debugging in raw.c. More...
 
#define RAW_TTL   (IP_DEFAULT_TTL)
 LWIP_RAW==1: Enable application layer to hook into the IP layer itself. More...
 
#define RECV_BUFSIZE_DEFAULT   INT_MAX
 If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize. More...
 
#define SLIP_DEBUG   LWIP_DBG_OFF
 SLIP_DEBUG: Enable debugging in slipif.c. More...
 
#define SLIPIF_THREAD_NAME   "slipif_loop"
 SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread. More...
 
#define SLIPIF_THREAD_PRIO   1
 SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread. More...
 
#define SLIPIF_THREAD_STACKSIZE   0
 SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread. More...
 
#define SMEMCPY(dst, src, len)   memcpy(dst,src,len)
 SMEMCPY: override this with care! Some compilers (e.g. More...
 
#define SNMP_CONCURRENT_REQUESTS   1
 SNMP_CONCURRENT_REQUESTS: Number of concurrent requests the module will allow. More...
 
#define SNMP_MAX_OCTET_STRING_LEN   127
 The maximum length of strings used. More...
 
#define SNMP_MAX_TREE_DEPTH   15
 The maximum depth of the SNMP tree. More...
 
#define SNMP_MAX_VALUE_SIZE   LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))
 The size of the MEMP_SNMP_VALUE elements, normally calculated from SNMP_MAX_OCTET_STRING_LEN and SNMP_MAX_TREE_DEPTH. More...
 
#define SNMP_MIB_DEBUG   LWIP_DBG_OFF
 SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs. More...
 
#define SNMP_MSG_DEBUG   LWIP_DBG_OFF
 SNMP_MSG_DEBUG: Enable debugging for SNMP messages. More...
 
#define SNMP_PRIVATE_MIB   0
 SNMP_PRIVATE_MIB: When using a private MIB, you have to create a file 'private_mib.h' that contains a 'struct mib_array_node mib_private' which contains your MIB. More...
 
#define SNMP_SAFE_REQUESTS   1
 Only allow SNMP write actions that are 'safe' (e.g. More...
 
#define SNMP_TRAP_DESTINATIONS   1
 SNMP_TRAP_DESTINATIONS: Number of trap destinations. More...
 
#define SO_REUSE   0
 SO_REUSE==1: Enable SO_REUSEADDR option. More...
 
#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. More...
 
#define SOCKETS_DEBUG   LWIP_DBG_OFF
 SOCKETS_DEBUG: Enable debugging in sockets.c. More...
 
#define SYS_DEBUG   LWIP_DBG_OFF
 SYS_DEBUG: Enable debugging in sys.c. More...
 
#define SYS_LIGHTWEIGHT_PROT   0
 SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation. More...
 
#define SYS_STATS   (NO_SYS == 0)
 SYS_STATS==1: Enable system stats (sem and mbox counts, etc). More...
 
#define TCP_CALCULATE_EFF_SEND_MSS   1
 TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which reflects the available reassembly buffer size at the remote host) and the largest size permitted by the IP layer" (RFC 1122) Setting this to 1 enables code that checks TCP_MSS against the MTU of the netif used for a connection and limits the MSS if it would be too big otherwise. More...
 
#define TCP_CWND_DEBUG   LWIP_DBG_OFF
 TCP_CWND_DEBUG: Enable debugging for TCP congestion window. More...
 
#define TCP_DEBUG   LWIP_DBG_OFF
 TCP_DEBUG: Enable debugging for TCP. More...
 
#define TCP_DEFAULT_LISTEN_BACKLOG   0xff
 The maximum allowed backlog for TCP listen netconns. More...
 
#define TCP_FR_DEBUG   LWIP_DBG_OFF
 TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit. More...
 
#define TCP_INPUT_DEBUG   LWIP_DBG_OFF
 TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. More...
 
#define TCP_LISTEN_BACKLOG   0
 TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. More...
 
#define TCP_MAXRTX   12
 TCP_MAXRTX: Maximum number of retransmissions of data segments. More...
 
#define TCP_MSS   536
 TCP_MSS: TCP Maximum segment size. More...
 
#define TCP_OOSEQ_MAX_BYTES   0
 TCP_OOSEQ_MAX_BYTES: The maximum number of bytes queued on ooseq per pcb. More...
 
#define TCP_OOSEQ_MAX_PBUFS   0
 TCP_OOSEQ_MAX_PBUFS: The maximum number of pbufs queued on ooseq per pcb. More...
 
#define TCP_OUTPUT_DEBUG   LWIP_DBG_OFF
 TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. More...
 
#define TCP_OVERSIZE   TCP_MSS
 TCP_OVERSIZE: The maximum number of bytes that tcp_write may allocate ahead of time in an attempt to create shorter pbuf chains for transmission. More...
 
#define TCP_QLEN_DEBUG   LWIP_DBG_OFF
 TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths. More...
 
#define TCP_QUEUE_OOSEQ   (LWIP_TCP)
 TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. More...
 
#define TCP_RCV_SCALE   0
 
#define TCP_RST_DEBUG   LWIP_DBG_OFF
 TCP_RST_DEBUG: Enable debugging for TCP with the RST message. More...
 
#define TCP_RTO_DEBUG   LWIP_DBG_OFF
 TCP_RTO_DEBUG: Enable debugging in TCP for retransmit timeout. More...
 
#define TCP_SND_BUF   (2 * TCP_MSS)
 TCP_SND_BUF: TCP sender buffer space (bytes). More...
 
#define TCP_SND_QUEUELEN   ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
 TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). More...
 
#define TCP_SNDLOWAT   LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
 TCP_SNDLOWAT: TCP writable space (bytes). More...
 
#define TCP_SNDQUEUELOWAT   LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
 TCP_SNDQUEUELOWAT: TCP writable bufs (pbuf count). More...
 
#define TCP_STATS   (LWIP_TCP)
 TCP_STATS==1: Enable TCP stats. More...
 
#define TCP_SYNMAXRTX   6
 TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. More...
 
#define TCP_TTL   (IP_DEFAULT_TTL)
 TCP_TTL: Default Time-To-Live value. More...
 
#define TCP_WND   (4 * TCP_MSS)
 TCP_WND: The size of a TCP window. More...
 
#define TCP_WND_DEBUG   LWIP_DBG_OFF
 TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating. More...
 
#define TCP_WND_UPDATE_THRESHOLD   (TCP_WND / 4)
 TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an explicit window update. More...
 
#define TCPIP_DEBUG   LWIP_DBG_OFF
 TCPIP_DEBUG: Enable debugging in tcpip.c. More...
 
#define TCPIP_MBOX_SIZE   0
 TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when tcpip_init is called. More...
 
#define TCPIP_THREAD_NAME   "tcpip_thread"
 TCPIP_THREAD_NAME: The name assigned to the main tcpip thread. More...
 
#define TCPIP_THREAD_PRIO   1
 TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. More...
 
#define TCPIP_THREAD_STACKSIZE   0
 TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. More...
 
#define TIMERS_DEBUG   LWIP_DBG_OFF
 TIMERS_DEBUG: Enable debugging in timers.c. More...
 
#define UDP_DEBUG   LWIP_DBG_OFF
 UDP_DEBUG: Enable debugging in UDP. More...
 
#define UDP_STATS   (LWIP_UDP)
 UDP_STATS==1: Enable UDP stats. More...
 
#define UDP_TTL   (IP_DEFAULT_TTL)
 UDP_TTL: Default Time-To-Live value. More...
 

#define API_LIB_DEBUG   LWIP_DBG_OFF

API_LIB_DEBUG: Enable debugging in api_lib.c.

#define API_MSG_DEBUG   LWIP_DBG_OFF

API_MSG_DEBUG: Enable debugging in api_msg.c.

#define ARP_QUEUE_LEN   3

The maximum number of packets which may be queued for each unresolved address by other network layers.

Defaults to 3, 0 means disabled. Old packets are dropped, new packets are queued.

#define ARP_QUEUEING   0

ARP_QUEUEING==1: Multiple outgoing packets are queued during hardware address resolution.

By default, only the most recent packet is queued per IP address. This is sufficient for most protocols and mainly reduces TCP connection startup time. Set this to 1 if you know your application sends more than one packet in a row to an IP address that is not in the ARP cache.

#define ARP_TABLE_SIZE   10

ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached.

#define AUTOIP_DEBUG   LWIP_DBG_OFF

AUTOIP_DEBUG: Enable debugging in autoip.c.

#define CHECKSUM_CHECK_ICMP   1

CHECKSUM_CHECK_ICMP==1: Check checksums in software for incoming ICMP packets.

#define CHECKSUM_CHECK_ICMP6   1

CHECKSUM_CHECK_ICMP6==1: Check checksums in software for incoming ICMPv6 packets.

#define CHECKSUM_CHECK_IP   1

CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.

#define CHECKSUM_CHECK_TCP   1

CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.

#define CHECKSUM_CHECK_UDP   1

CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.

#define CHECKSUM_GEN_ICMP   1

CHECKSUM_GEN_ICMP==1: Generate checksums in software for outgoing ICMP packets.

#define CHECKSUM_GEN_ICMP6   1

CHECKSUM_GEN_ICMP6==1: Generate checksums in software for outgoing ICMP6 packets.

#define CHECKSUM_GEN_IP   1

CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.

#define CHECKSUM_GEN_TCP   1

CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.

#define CHECKSUM_GEN_UDP   1

CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.

#define DEFAULT_ACCEPTMBOX_SIZE   0

DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections.

The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the acceptmbox is created.

#define DEFAULT_RAW_RECVMBOX_SIZE   0

DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_RAW.

The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.

#define DEFAULT_TCP_RECVMBOX_SIZE   0

DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_TCP.

The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.

#define DEFAULT_THREAD_NAME   "lwIP"

DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread.

#define DEFAULT_THREAD_PRIO   1

DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread.

The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

#define DEFAULT_THREAD_STACKSIZE   0

DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread.

The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

#define DEFAULT_UDP_RECVMBOX_SIZE   0

DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a NETCONN_UDP.

The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when the recvmbox is created.

#define DHCP_DEBUG   LWIP_DBG_OFF

DHCP_DEBUG: Enable debugging in dhcp.c.

#define DHCP_DOES_ARP_CHECK   ((LWIP_DHCP) && (LWIP_ARP))

DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address.

#define DNS_DEBUG   LWIP_DBG_OFF

DNS_DEBUG: Enable debugging for DNS.

#define DNS_DOES_NAME_CHECK   1

DNS do a name checking between the query and the response.

#define DNS_LOCAL_HOSTLIST   0

DNS_LOCAL_HOSTLIST: Implements a local host-to-address list.

If enabled, you have to define #define DNS_LOCAL_HOSTLIST_INIT {{"host1", 0x123}, {"host2", 0x234}} (an array of structs name/address, where address is an u32_t in network byte order).

Instead, you can also use an external function: #define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name) that returns the IP address or INADDR_NONE if not found.

#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC   0

If this is turned on, the local host-list can be dynamically changed at runtime.

#define DNS_MAX_NAME_LENGTH   256

DNS maximum host name length supported in the name table.

#define DNS_MAX_SERVERS   2

The maximum of DNS servers.

#define DNS_TABLE_SIZE   4

DNS maximum number of entries to maintain locally.

#define ETH_PAD_SIZE   0

ETH_PAD_SIZE: number of bytes added before the ethernet header to ensure alignment of payload after that header.

Since the header is 14 bytes long, without this padding e.g. addresses in the IP header will not be aligned on a 32-bit boundary, so setting this to 2 can speed up 32-bit-platforms.

#define ETHARP_DEBUG   LWIP_DBG_OFF

ETHARP_DEBUG: Enable debugging in etharp.c.

#define ETHARP_STATS   (LWIP_ARP)

ETHARP_STATS==1: Enable etharp stats.

#define ETHARP_SUPPORT_STATIC_ENTRIES   0

ETHARP_SUPPORT_STATIC_ENTRIES==1: enable code to support static ARP table entries (using etharp_add_static_entry/etharp_remove_static_entry).

#define ETHARP_SUPPORT_VLAN   0

ETHARP_SUPPORT_VLAN==1: support receiving and sending ethernet packets with VLAN header.

See the description of LWIP_HOOK_VLAN_CHECK and LWIP_HOOK_VLAN_SET hooks to check/set VLAN headers. Additionally, you can define ETHARP_VLAN_CHECK to an u16_t VLAN ID to check. If ETHARP_VLAN_CHECK is defined, only VLAN-traffic for this VLAN is accepted. If ETHARP_VLAN_CHECK is not defined, all traffic is accepted. Alternatively, define a function/define ETHARP_VLAN_CHECK_FN(eth_hdr, vlan) that returns 1 to accept a packet or 0 to drop a packet.

#define ETHARP_TRUST_IP_MAC   0

ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be updated with the source MAC and IP addresses supplied in the packet.

You may want to disable this if you do not trust LAN peers to have the correct addresses, or as a limited approach to attempt to handle spoofing. If disabled, lwIP will need to make a new ARP request if the peer is not already in the ARP table, adding a little latency. The peer is in the ARP table if it requested our address before. Also notice that this slows down input processing of every IP packet!

#define ICMP6_STATS   (LWIP_IPV6 && LWIP_ICMP6)

ICMP6_STATS==1: Enable ICMP for IPv6 stats.

#define ICMP_DEBUG   LWIP_DBG_OFF

ICMP_DEBUG: Enable debugging in icmp.c.

#define ICMP_STATS   1

ICMP_STATS==1: Enable ICMP stats.

#define ICMP_TTL   (IP_DEFAULT_TTL)

ICMP_TTL: Default value for Time-To-Live used by ICMP packets.

#define IGMP_DEBUG   LWIP_DBG_OFF

IGMP_DEBUG: Enable debugging in igmp.c.

#define IGMP_STATS   (LWIP_IGMP)

IGMP_STATS==1: Enable IGMP stats.

#define INET_DEBUG   LWIP_DBG_OFF

INET_DEBUG: Enable debugging in inet.c.

#define IP6_DEBUG   LWIP_DBG_OFF

IP6_DEBUG: Enable debugging for IPv6.

#define IP6_FRAG_STATS   (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))

IP6_FRAG_STATS==1: Enable IPv6 fragmentation stats.

#define IP6_STATS   (LWIP_IPV6)

IP6_STATS==1: Enable IPv6 stats.

#define IP_DEBUG   LWIP_DBG_OFF

IP_DEBUG: Enable debugging for IP.

#define IP_DEFAULT_TTL   255

IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer (requires IP_FRAG_USES_STATIC_BUF==1)

IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers.

#define IP_FORWARD   0

IP_FORWARD==1: Enables the ability to forward IP packets across network interfaces.

If you are going to run lwIP on a device with only one network interface, define this to 0.

#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF   0

IP_FORWARD_ALLOW_TX_ON_RX_NETIF==1: allow ip_forward() to send packets back out on the netif where it was received.

This should only be used for wireless networks. ATTENTION: When this is 1, make sure your netif driver correctly marks incoming link-layer-broadcast/multicast packets as such using the corresponding pbuf flags!

#define IP_FRAG   1

IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU.

Note that this option does not affect incoming packet sizes, which can be controlled via IP_REASSEMBLY.

#define IP_FRAG_USES_STATIC_BUF   0

IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP fragmentation.

Otherwise pbufs are allocated and reference the original packet data to be fragmented (or with LWIP_NETIF_TX_SINGLE_PBUF==1, new PBUF_RAM pbufs are used for fragments). ATTENTION: IP_FRAG_USES_STATIC_BUF==1 may not be used for DMA-enabled MACs!

#define IP_OPTIONS_ALLOWED   1

IP_OPTIONS_ALLOWED: Defines the behavior for IP options.

IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed).

#define IP_REASS_DEBUG   LWIP_DBG_OFF

IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass.

#define IP_REASS_MAX_PBUFS   10

IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.

Since the received pbufs are enqueued, be sure to configure PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive packets even if the maximum amount of fragments is enqueued for reassembly!

#define IP_REASS_MAXAGE   3

IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) a fragmented IP packet waits for all fragments to arrive.

If not all fragments arrived in this time, the whole packet is discarded.

#define IP_REASSEMBLY   1

IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets.

Note that this option does not affect outgoing packet sizes, which can be controlled via IP_FRAG.

#define IP_SOF_BROADCAST   0

IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast filter per pcb on udp and raw send operations.

To enable broadcast filter on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1.

#define IP_SOF_BROADCAST_RECV   0

IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast filter on recv operations.

#define IP_STATS   1

IP_STATS==1: Enable IP stats.

#define IPFRAG_STATS   (IP_REASSEMBLY || IP_FRAG)

IPFRAG_STATS==1: Enable IP fragmentation stats.

Default is on if using either frag or reass.

#define LINK_STATS   1

LINK_STATS==1: Enable link stats.

#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT   0

Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from interrupt context (or another context that doesn't allow waiting for a semaphore).

If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs with each loop so that mem_free can run.

ATTENTION: As you can see from the above description, this leads to dis-/ enabling interrupts often, which can be slow! Also, on low memory, mem_malloc can need longer.

If you don't want that, at least for NO_SYS=0, you can still use the following functions to enqueue a deallocation call which then runs in the tcpip_thread context:

  • pbuf_free_callback(p);
  • mem_free_callback(m);
#define LWIP_ARP   1

LWIP_ARP==1: Enable ARP functionality.

#define LWIP_AUTOIP   0

LWIP_AUTOIP==1: Enable AUTOIP module.

#define LWIP_BROADCAST_PING   0

LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only)

#define LWIP_CALLBACK_API   1
#define LWIP_CHECKSUM_ON_COPY   0

LWIP_CHECKSUM_ON_COPY==1: Calculate checksum when copying data from application buffers to pbufs.

#define LWIP_COMPAT_SOCKETS   1

LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.

(only used if you use sockets.c)

#define LWIP_DBG_MIN_LEVEL   LWIP_DBG_LEVEL_ALL

LWIP_HOOK_IP4_INPUT(pbuf, input_netif):

  • called from ip_input() (IPv4)
  • pbuf: received struct pbuf passed to ip_input()
  • input_netif: struct netif on which the packet has been received Return values:
  • 0: Hook has not consumed the packet, packet is processed as normal
  • != 0: Hook has consumed the packet. If the hook consumed the packet, 'pbuf' is in the responsibility of the hook (i.e. free it when done). LWIP_HOOK_IP4_ROUTE(dest):
  • called from ip_route() (IPv4)
  • dest: destination IPv4 address Returns the destination netif or NULL if no destination netif is found. In that case, ip_route() continues as normal. LWIP_HOOK_ETHARP_GET_GW(netif, dest):
  • called from etharp_output() (IPv4)
  • netif: the netif used for sending
  • dest: the destination IPv4 address Returns the IPv4 address of the gateway to handle the specified destination IPv4 address. If NULL is returned, the netif's default gateway is used. The returned address MUST be reachable on the specified netif! This function is meant to implement advanced IPv4 routing together with LWIP_HOOK_IP4_ROUTE(). The actual routing/gateway table implementation is not part of lwIP but can e.g. be hidden in the netif's state argument. LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr):
  • called from ethernet_input() if VLAN support is enabled
  • netif: struct netif on which the packet has been received
  • eth_hdr: struct eth_hdr of the packet
  • vlan_hdr: struct eth_vlan_hdr of the packet Return values:
  • 0: Packet must be dropped.
  • != 0: Packet must be accepted. LWIP_HOOK_VLAN_SET(netif, eth_hdr, vlan_hdr):
  • called from etharp_raw() and etharp_send_ip() if VLAN support is enabled
  • netif: struct netif that the packet will be sent through
  • eth_hdr: struct eth_hdr of the packet
  • vlan_hdr: struct eth_vlan_hdr of the packet Return values:
  • 0: Packet shall not contain VLAN header.
  • != 0: Packet shall contain VLAN header. Hook can be used to set prio_vid field of vlan_hdr. LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is compared against this value. If it is smaller, then debugging messages are written.
#define LWIP_DBG_TYPES_ON   LWIP_DBG_ON

LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable debug messages of certain types.

#define LWIP_DHCP   0

LWIP_DHCP==1: Enable DHCP module.

#define LWIP_DHCP_AUTOIP_COOP   0

LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on the same interface at the same time.

#define LWIP_DHCP_AUTOIP_COOP_TRIES   9

LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes that should be sent before falling back on AUTOIP.

This can be set as low as 1 to get an AutoIP address very quickly, but you should be prepared to handle a changing IP address when DHCP overrides AutoIP.

#define LWIP_DHCP_BOOTP_FILE   0

LWIP_DHCP_BOOTP_FILE==1: Store offered_si_addr and boot_file_name.

#define LWIP_DHCP_CHECK_LINK_UP   0

LWIP_DHCP_CHECK_LINK_UP==1: dhcp_start() only really starts if the netif has NETIF_FLAG_LINK_UP set in its flags.

As this is only an optimization and netif drivers might not set this flag, the default is off. If enabled, netif_set_link_up() must be called to continue dhcp starting.

#define LWIP_DNS   0

LWIP_DNS==1: Turn on DNS module.

UDP must be available for DNS transport.

#define LWIP_ETHERNET   (LWIP_ARP || PPPOE_SUPPORT)

LWIP_ETHERNET==1: enable ethernet support for PPPoE even though ARP might be disabled.

#define LWIP_EVENT_API   0

LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1.

LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all events (accept, sent, etc) that happen in the system. LWIP_CALLBACK_API==1: The PCB callback function is called directly for the event. This is the default.

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

#define LWIP_HAVE_LOOPIF   0

LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1)

#define LWIP_HAVE_SLIPIF   0

LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c.

#define LWIP_ICMP   1

LWIP_ICMP==1: Enable ICMP module inside the IP stack.

Be careful, disable that make your product non-compliant to RFC1122

#define LWIP_ICMP6   (LWIP_IPV6)

LWIP_ICMP6==1: Enable ICMPv6 (mandatory per RFC)

#define LWIP_ICMP6_DATASIZE   8

LWIP_ICMP6_DATASIZE: bytes from original packet to send back in ICMPv6 error messages.

#define LWIP_ICMP6_HL   255

LWIP_ICMP6_HL: default hop limit for ICMPv6 messages.

#define LWIP_IGMP   0

LWIP_IGMP==1: Turn on IGMP module.

#define LWIP_IPV6   0

LWIP_IPV6==1: Enable IPv6.

Referenced by ip_route().

#define LWIP_IPV6_AUTOCONFIG   (LWIP_IPV6)

LWIP_IPV6_AUTOCONFIG==1: Enable stateless address autoconfiguration as per RFC 4862.

#define LWIP_IPV6_DHCP6   0

LWIP_IPV6_DHCP6==1: enable DHCPv6 stateful address autoconfiguration.

#define LWIP_IPV6_DUP_DETECT_ATTEMPTS   1

LWIP_IPV6_DUP_DETECT_ATTEMPTS: Number of duplicate address detection attempts.

#define LWIP_IPV6_FORWARD   0

LWIP_IPV6_FORWARD==1: Forward IPv6 packets across netifs.

#define LWIP_IPV6_FRAG   0

LWIP_IPV6_FRAG==1: Fragment outgoing IPv6 packets that are too big.

#define LWIP_IPV6_MLD   (LWIP_IPV6)

LWIP_IPV6_MLD==1: Enable multicast listener discovery protocol.

#define LWIP_IPV6_NUM_ADDRESSES   3

LWIP_IPV6_NUM_ADDRESSES: Number of IPv6 addresses per netif.

Referenced by netif_add().

#define LWIP_IPV6_REASS   (LWIP_IPV6)

LWIP_IPV6_REASS==1: reassemble incoming IPv6 packets that fragmented.

#define LWIP_IPV6_SEND_ROUTER_SOLICIT   1

LWIP_IPV6_SEND_ROUTER_SOLICIT==1: Send router solicitation messages during network startup.

#define LWIP_LOOPBACK_MAX_PBUFS   0

LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback sending for each netif (0 = disabled)

#define LWIP_MPU_COMPATIBLE   0

LWIP_MPU_COMPATIBLE: enables special memory management mechanism which makes lwip able to work on MPU (Memory Protection Unit) system by not passing stack-pointers to other threads (this decreases performance)

#define LWIP_MULTICAST_PING   0

LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only)

#define LWIP_ND6_ALLOW_RA_UPDATES   1

LWIP_ND6_ALLOW_RA_UPDATES==1: Allow Router Advertisement messages to update Reachable time and retransmission timers, and netif MTU.

#define LWIP_ND6_DELAY_FIRST_PROBE_TIME   5000

LWIP_ND6_DELAY_FIRST_PROBE_TIME: Delay before first unicast neighbor solicitation message is sent, during neighbor reachability detection.

#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME   1000

Unused: See ND RFC (time in milliseconds).

#define LWIP_ND6_MAX_MULTICAST_SOLICIT   3

LWIP_ND6_MAX_MULTICAST_SOLICIT: max number of multicast solicit messages to send (neighbor solicit and router solicit)

Referenced by netif_add(), and netif_set_up().

#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT   3

Unused: See ND RFC.

#define LWIP_ND6_MAX_UNICAST_SOLICIT   3

LWIP_ND6_MAX_UNICAST_SOLICIT: max number of unicast neighbor solicitation messages to send during neighbor reachability detection.

#define LWIP_ND6_NUM_DESTINATIONS   10

LWIP_ND6_NUM_DESTINATIONS: number of entries in IPv6 destination cache.

#define LWIP_ND6_NUM_NEIGHBORS   10

LWIP_ND6_NUM_NEIGHBORS: Number of entries in IPv6 neighbor cache.

#define LWIP_ND6_NUM_PREFIXES   5

LWIP_ND6_NUM_PREFIXES: number of entries in IPv6 on-link prefixes cache.

#define LWIP_ND6_NUM_ROUTERS   3

LWIP_ND6_NUM_ROUTERS: number of entries in IPv6 default router cache.

#define LWIP_ND6_QUEUEING   (LWIP_IPV6)

LWIP_ND6_QUEUEING==1: queue outgoing IPv6 packets while MAC address is being resolved.

#define LWIP_ND6_REACHABLE_TIME   30000

LWIP_ND6_REACHABLE_TIME: default neighbor reachable time (in milliseconds).

May be updated by router advertisement messages.

#define LWIP_ND6_RETRANS_TIMER   1000

LWIP_ND6_RETRANS_TIMER: default retransmission timer for solicitation messages.

#define LWIP_ND6_TCP_REACHABILITY_HINTS   1

LWIP_ND6_TCP_REACHABILITY_HINTS==1: Allow TCP to provide Neighbor Discovery with reachability hints for connected destinations.

This helps avoid sending unicast neighbor solicitation messages.

#define LWIP_NETBUF_RECVINFO   0

LWIP_NETBUF_RECVINFO==1: append destination addr and port to every netbuf.

#define LWIP_NETCONN   1

LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)

#define LWIP_NETCONN_SEM_PER_THREAD   0

LWIP_NETCONN_SEM_PER_THREAD==1: Use one (thread-local) semaphore per thread calling socket/netconn functions instead of allocating one semaphore per netconn (and per select etc.) ATTENTION: a thread-local semaphore for API calls is needed:

  • LWIP_NETCONN_THREAD_SEM_GET() returning a sys_sem_t*
  • LWIP_NETCONN_THREAD_SEM_ALLOC() creating the semaphore
  • LWIP_NETCONN_THREAD_SEM_FREE() freeing the semaphore The latter 2 can be invoked up by calling netconn_thread_init()/netconn_thread_cleanup(). Ports may call these for threads created with sys_thread_new().
#define LWIP_NETIF_API   0

LWIP_NETIF_API==1: Support netif api (in netifapi.c)

#define LWIP_NETIF_HOSTNAME   0

LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname field.

#define LWIP_NETIF_HWADDRHINT   0

LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g.

table indices) in struct netif. TCP and UDP can make use of this to prevent scanning the ARP table for every sent packet. While this is faster for big ARP tables or many concurrent connections, it might be counterproductive if you have a tiny ARP table or if there never are concurrent connections.

#define LWIP_NETIF_LINK_CALLBACK   0

LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface whenever the link changes (i.e., link down)

#define LWIP_NETIF_LOOPBACK   0

LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP address equal to the netif IP address, looping them back up the stack.

#define LWIP_NETIF_LOOPBACK_MULTITHREADING   (!NO_SYS)

LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in the system, as netifs must change how they behave depending on this setting for the LWIP_NETIF_LOOPBACK option to work.

Setting this is needed to avoid reentering non-reentrant functions like tcp_input(). LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a multithreaded environment like tcpip.c. In this case, netif->input() is called directly. LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. The packets are put on a list and netif_poll() must be called in the main application loop.

#define LWIP_NETIF_REMOVE_CALLBACK   0

LWIP_NETIF_REMOVE_CALLBACK==1: Support a callback function that is called when a netif has been removed.

#define LWIP_NETIF_STATUS_CALLBACK   0

LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquisition)

#define LWIP_NETIF_TX_SINGLE_PBUF   0

LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data to be sent into one single pbuf.

This is for compatibility with DMA-enabled MACs that do not support scatter-gather. Beware that this might involve CPU-memcpy before transmitting that would not be needed without this flag! Use this only if you need to!

Todo:
: TCP and IP-frag do not work with this, yet:
#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)

#define LWIP_PPP_API   0

LWIP_PPP_API==1: Enable PPP API (in pppapi.c)

#define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS   0

LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS==1: randomize the local port for the first local TCP/UDP pcb (default==0).

This can prevent creating predictable port numbers after booting a device.

#define LWIP_RAW   1

LWIP_RAW==1: Enable application layer to hook into the IP layer itself.

#define LWIP_SNMP   0

LWIP_SNMP==1: Turn on SNMP module.

UDP must be available for SNMP transport.

#define LWIP_SO_RCVBUF   0

LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.

#define LWIP_SO_RCVTIMEO   0

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

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

#define LWIP_SO_SNDTIMEO   0

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

#define LWIP_SOCKET   1

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

#define LWIP_SOCKET_SET_ERRNO   1
#define LWIP_STATS   1

LWIP_STATS==1: Enable statistics collection in lwip_stats.

#define LWIP_STATS_DISPLAY   0

LWIP_STATS_DISPLAY==1: Compile in the statistics output functions.

#define LWIP_TCP   1

LWIP_TCP==1: Turn on TCP.

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

#define LWIP_TCP_TIMESTAMPS   0

LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option.

The timestamp option is currently only used to help remote hosts, it is not really used locally. Therefore, it is only enabled when a TS option is received in the initial SYN packet from a remote host.

#define LWIP_TCPIP_CORE_LOCKING   0

LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member.

#define LWIP_TCPIP_CORE_LOCKING_INPUT   0

LWIP_TCPIP_CORE_LOCKING_INPUT: (EXPERIMENTAL!) Don't use it if you're not an active lwIP project member.

#define LWIP_TCPIP_TIMEOUT   1

LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout to create timers running in tcpip_thread from another thread.

#define LWIP_UDP   1

LWIP_UDP==1: Turn on UDP.

#define LWIP_UDPLITE   0

LWIP_UDPLITE==1: Turn on UDP-Lite.

(Requires LWIP_UDP)

#define LWIP_WND_SCALE   0

LWIP_WND_SCALE and TCP_RCV_SCALE: Set LWIP_WND_SCALE to 1 to enable window scaling.

Set TCP_RCV_SCALE to the desired scaling factor (shift count in the range of [0..14]). When LWIP_WND_SCALE is enabled but TCP_RCV_SCALE is 0, we can use a large send window while having a small receive window only.

#define M2M_ETHERNET_HDR_OFFSET   36

PBUF_LINK_ENCAPSULATION_HLEN: the number of bytes that should be allocated for an additional encapsulation header before ethernet headers (e.g.

802.11)

#define MEM_ALIGNMENT   1

MEM_ALIGNMENT: should be set to the alignment of the CPU 4 byte alignment -> #define MEM_ALIGNMENT 4 2 byte alignment -> #define MEM_ALIGNMENT 2.

#define MEM_DEBUG   LWIP_DBG_OFF

MEM_DEBUG: Enable debugging in mem.c.

#define MEM_LIBC_MALLOC   0

MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library instead of the lwip internal allocator.

Can save code size if you already use it.

#define MEM_SIZE   1600

MEM_SIZE: the size of the heap memory.

If the application will send a lot of data that needs to be copied, this should be set high.

#define MEM_STATS   ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))

MEM_STATS==1: Enable mem.c stats.

#define MEM_USE_POOLS   0

MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set of memory pools of various sizes.

When mem_malloc is called, an element of the smallest pool that can provide the length needed is returned. To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled.

#define MEM_USE_POOLS_TRY_BIGGER_POOL   0

MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more reliable.

#define MEMCPY (   dst,
  src,
  len 
)    memcpy(dst,src,len)

MEMCPY: override this if you have a faster implementation at hand than the one included in your C library.

#define MEMP_DEBUG   LWIP_DBG_OFF

MEMP_DEBUG: Enable debugging in memp.c.

#define MEMP_MEM_MALLOC   0

MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator.

Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution speed and usage from interrupts!

#define MEMP_NUM_API_MSG   MEMP_NUM_TCPIP_MSG_API

MEMP_NUM_API_MSG: the number of concurrently active calls to various socket, netconn, and tcpip functions.

#define MEMP_NUM_ARP_QUEUE   30

MEMP_NUM_ARP_QUEUE: the number of simultaneously queued outgoing packets (pbufs) that are waiting for an ARP request (to resolve their destination address) to finish.

(requires the ARP_QUEUEING option)

#define MEMP_NUM_DNS_API_MSG   MEMP_NUM_TCPIP_MSG_API

MEMP_NUM_DNS_API_MSG: the number of concurrently active calls to netconn_gethostbyname.

#define MEMP_NUM_FRAG_PBUF   15

MEMP_NUM_FRAG_PBUF: the number of IP fragments simultaneously sent (fragments, not whole packets!).

This is only used with IP_FRAG_USES_STATIC_BUF==0 and LWIP_NETIF_TX_SINGLE_PBUF==0 and only has to be > 1 with DMA-enabled MACs where the packet is not yet sent when netif->output returns.

#define MEMP_NUM_IGMP_GROUP   8

MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces can be members at the same time (one per netif - allsystems group -, plus one per netif membership).

(requires the LWIP_IGMP option)

#define MEMP_NUM_LOCALHOSTLIST   1

MEMP_NUM_LOCALHOSTLIST: the number of host entries in the local host list if DNS_LOCAL_HOSTLIST_IS_DYNAMIC==1.

#define MEMP_NUM_MLD6_GROUP   4

MEMP_NUM_MLD6_GROUP: Max number of IPv6 multicast that can be joined.

#define MEMP_NUM_ND6_QUEUE   20

MEMP_NUM_ND6_QUEUE: Max number of IPv6 packets to queue during MAC resolution.

#define MEMP_NUM_NETBUF   2

MEMP_NUM_NETBUF: the number of struct netbufs.

(only needed if you use the sequential API, like api_lib.c)

#define MEMP_NUM_NETCONN   4

MEMP_NUM_NETCONN: the number of struct netconns.

(only needed if you use the sequential API, like api_lib.c)

#define MEMP_NUM_NETDB   1

MEMP_NUM_NETDB: the number of concurrently running lwip_addrinfo() calls (before freeing the corresponding memory using lwip_freeaddrinfo()).

#define MEMP_NUM_NETIFAPI_MSG   MEMP_NUM_TCPIP_MSG_API

MEMP_NUM_NETIFAPI_MSG: the number of concurrently active calls to the netifapi functions.

#define MEMP_NUM_PBUF   16

MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF).

If the application sends a lot of data out of ROM (or other static memory), this should be set high.

#define MEMP_NUM_PPP_PCB   1

MEMP_NUM_PPP_PCB: the number of simultaneously active PPP connections (requires the PPP_SUPPORT option)

#define MEMP_NUM_PPPOE_INTERFACES   1

MEMP_NUM_PPPOE_INTERFACES: the number of concurrently active PPPoE interfaces (only used with PPPOE_SUPPORT==1)

#define MEMP_NUM_PPPOL2TP_INTERFACES   1

MEMP_NUM_PPPOL2TP_INTERFACES: the number of concurrently active PPPoL2TP interfaces (only used with PPPOL2TP_SUPPORT==1)

#define MEMP_NUM_RAW_PCB   4

MEMP_NUM_RAW_PCB: Number of raw connection PCBs (requires the LWIP_RAW option)

#define MEMP_NUM_REASSDATA   5

MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for reassembly (whole packets, not fragments!)

#define MEMP_NUM_SNMP_NODE   50

MEMP_NUM_SNMP_NODE: the number of leafs in the SNMP tree.

#define MEMP_NUM_SNMP_ROOTNODE   30

MEMP_NUM_SNMP_ROOTNODE: the number of branches in the SNMP tree.

Every branch has one leaf (MEMP_NUM_SNMP_NODE) at least!

#define MEMP_NUM_SNMP_VALUE   3

MEMP_NUM_SNMP_VALUE: the number of OID or values concurrently used (does not have to be changed normally) - 3 of these are used per request (1 for the value read and 2 for OIDs - input and output)

#define MEMP_NUM_SNMP_VARBIND   2

MEMP_NUM_SNMP_VARBIND: the number of concurrent requests (does not have to be changed normally) - 2 of these are used per request (1 for input, 1 for output)

#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA   MEMP_NUM_TCPIP_MSG_API

MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA: the number of concurrently active calls to getsockopt/setsockopt.

#define MEMP_NUM_SYS_TIMEOUT   (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + (PPP_SUPPORT*6*MEMP_NUM_PPP_PCB) + (LWIP_IPV6 ? (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD) : 0))

MEMP_NUM_SYS_TIMEOUT: the number of simultaneously active timeouts.

The default number of timeouts is calculated here for all enabled modules. The formula expects settings to be either '0' or '1'.

#define MEMP_NUM_TCP_PCB   5

MEMP_NUM_TCP_PCB: the number of simultaneously active TCP connections.

(requires the LWIP_TCP option)

#define MEMP_NUM_TCP_PCB_LISTEN   8

MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections.

(requires the LWIP_TCP option)

#define MEMP_NUM_TCP_SEG   16

MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments.

(requires the LWIP_TCP option)

#define MEMP_NUM_TCPIP_MSG_API   8

MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used for callback/timeout API communication.

(only needed if you use tcpip.c)

#define MEMP_NUM_TCPIP_MSG_INPKT   32

MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used for incoming packets.

(only needed if you use tcpip.c)

#define MEMP_NUM_UDP_PCB   4

MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks.

One per active UDP "connection". (requires the LWIP_UDP option)

#define MEMP_OVERFLOW_CHECK   0

MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable amount of bytes before and after each memp element in every pool and fills it with a prominent default value.

MEMP_OVERFLOW_CHECK == 0 no checking MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time memp_malloc() or memp_free() is called (useful but slow!)

#define MEMP_SANITY_CHECK   0

MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make sure that there are no cycles in the linked lists.

#define MEMP_SEPARATE_POOLS   0

MEMP_SEPARATE_POOLS: if defined to 1, each pool is placed in its own array.

This can be used to individually change the location of each pool. Default is one big array for all pools

#define MEMP_STATS   (MEMP_MEM_MALLOC == 0)

MEMP_STATS==1: Enable memp.c pool stats.

#define MEMP_USE_CUSTOM_POOLS   0

MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h that defines additional pools beyond the "standard" ones required by lwIP.

If you set this to 1, you must have lwippools.h in your include path somewhere.

#define MLD6_STATS   (LWIP_IPV6 && LWIP_IPV6_MLD)

MLD6_STATS==1: Enable MLD for IPv6 stats.

#define ND6_STATS   (LWIP_IPV6)

ND6_STATS==1: Enable Neighbor discovery for IPv6 stats.

#define NETIF_DEBUG   LWIP_DBG_OFF

NETIF_DEBUG: Enable debugging in netif.c.

#define NO_SYS   0

NO_SYS==1: Provides VERY minimal functionality.

Otherwise, use lwIP facilities.

#define NO_SYS_NO_TIMERS   0

NO_SYS_NO_TIMERS==1: Drop support for sys_timeout when NO_SYS==1 Mainly for compatibility to old versions.

#define PBUF_DEBUG   LWIP_DBG_OFF

PBUF_DEBUG: Enable debugging in pbuf.c.

#define PBUF_LINK_ENCAPSULATION_HLEN   M2M_ETHERNET_HDR_OFFSET

Referenced by pbuf_alloc().

#define PBUF_LINK_HLEN   (14 + ETH_PAD_SIZE)

PBUF_LINK_HLEN: the number of bytes that should be allocated for a link level header.

The default is 14, the standard value for Ethernet.

#define PBUF_POOL_BUFSIZE   LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)

PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool.

The default is designed to accommodate single full size TCP frame in one pbuf, including TCP_MSS, IP header, and link header.

#define PBUF_POOL_SIZE   16

PBUF_POOL_SIZE: the number of buffers in the pbuf pool.

#define PPP_DEBUG   LWIP_DBG_OFF

PPP_DEBUG: Enable debugging for PPP.

#define PPP_SUPPORT   0

PPP_SUPPORT==1: Enable PPP.

#define PPPOE_SUPPORT   0

PPPOE_SUPPORT==1: Enable PPP Over Ethernet.

#define PPPOL2TP_AUTH_SUPPORT   PPPOL2TP_SUPPORT

PPPOL2TP_AUTH_SUPPORT==1: Enable PPP Over L2TP Auth (enable MD5 support)

#define PPPOL2TP_SUPPORT   0

PPPOL2TP_SUPPORT==1: Enable PPP Over L2TP.

#define PPPOS_SUPPORT   PPP_SUPPORT

PPPOS_SUPPORT==1: Enable PPP Over Serial.

#define RAW_DEBUG   LWIP_DBG_OFF

RAW_DEBUG: Enable debugging in raw.c.

#define RAW_TTL   (IP_DEFAULT_TTL)

LWIP_RAW==1: Enable application layer to hook into the IP layer itself.

#define RECV_BUFSIZE_DEFAULT   INT_MAX

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

#define SLIP_DEBUG   LWIP_DBG_OFF

SLIP_DEBUG: Enable debugging in slipif.c.

#define SLIPIF_THREAD_NAME   "slipif_loop"

SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread.

#define SLIPIF_THREAD_PRIO   1

SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread.

The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

#define SLIPIF_THREAD_STACKSIZE   0

SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread.

The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

#define SMEMCPY (   dst,
  src,
  len 
)    memcpy(dst,src,len)

SMEMCPY: override this with care! Some compilers (e.g.

gcc) can inline a call to memcpy() if the length is known at compile time and is small.

#define SNMP_CONCURRENT_REQUESTS   1

SNMP_CONCURRENT_REQUESTS: Number of concurrent requests the module will allow.

At least one request buffer is required. Does not have to be changed unless external MIBs answer request asynchronously

#define SNMP_MAX_OCTET_STRING_LEN   127

The maximum length of strings used.

This affects the size of MEMP_SNMP_VALUE elements.

#define SNMP_MAX_TREE_DEPTH   15

The maximum depth of the SNMP tree.

With private MIBs enabled, this depends on your MIB! This affects the size of MEMP_SNMP_VALUE elements.

#define SNMP_MAX_VALUE_SIZE   LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))

The size of the MEMP_SNMP_VALUE elements, normally calculated from SNMP_MAX_OCTET_STRING_LEN and SNMP_MAX_TREE_DEPTH.

#define SNMP_MIB_DEBUG   LWIP_DBG_OFF

SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs.

#define SNMP_MSG_DEBUG   LWIP_DBG_OFF

SNMP_MSG_DEBUG: Enable debugging for SNMP messages.

#define SNMP_PRIVATE_MIB   0

SNMP_PRIVATE_MIB: When using a private MIB, you have to create a file 'private_mib.h' that contains a 'struct mib_array_node mib_private' which contains your MIB.

#define SNMP_SAFE_REQUESTS   1

Only allow SNMP write actions that are 'safe' (e.g.

disabling netifs is not a safe action and disabled when SNMP_SAFE_REQUESTS = 1). Unsafe requests are disabled by default!

#define SNMP_TRAP_DESTINATIONS   1

SNMP_TRAP_DESTINATIONS: Number of trap destinations.

At least one trap destination is required

#define SO_REUSE   0

SO_REUSE==1: Enable SO_REUSEADDR option.

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

#define SOCKETS_DEBUG   LWIP_DBG_OFF

SOCKETS_DEBUG: Enable debugging in sockets.c.

#define SYS_DEBUG   LWIP_DBG_OFF

SYS_DEBUG: Enable debugging in sys.c.

#define SYS_LIGHTWEIGHT_PROT   0

SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain critical regions during buffer allocation, deallocation and memory allocation and deallocation.

#define SYS_STATS   (NO_SYS == 0)

SYS_STATS==1: Enable system stats (sem and mbox counts, etc).

#define TCP_CALCULATE_EFF_SEND_MSS   1

TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which reflects the available reassembly buffer size at the remote host) and the largest size permitted by the IP layer" (RFC 1122) Setting this to 1 enables code that checks TCP_MSS against the MTU of the netif used for a connection and limits the MSS if it would be too big otherwise.

#define TCP_CWND_DEBUG   LWIP_DBG_OFF

TCP_CWND_DEBUG: Enable debugging for TCP congestion window.

#define TCP_DEBUG   LWIP_DBG_OFF

TCP_DEBUG: Enable debugging for TCP.

#define TCP_DEFAULT_LISTEN_BACKLOG   0xff

The maximum allowed backlog for TCP listen netconns.

This backlog is used unless another is explicitly specified. 0xff is the maximum (u8_t).

#define TCP_FR_DEBUG   LWIP_DBG_OFF

TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit.

#define TCP_INPUT_DEBUG   LWIP_DBG_OFF

TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug.

#define TCP_LISTEN_BACKLOG   0

TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb.

#define TCP_MAXRTX   12

TCP_MAXRTX: Maximum number of retransmissions of data segments.

#define TCP_MSS   536

TCP_MSS: TCP Maximum segment size.

(default is 536, a conservative default, you might want to increase this.) For the receive side, this MSS is advertised to the remote side when opening a connection. For the transmit size, this MSS sets an upper limit on the MSS advertised by the remote host.

#define TCP_OOSEQ_MAX_BYTES   0

TCP_OOSEQ_MAX_BYTES: The maximum number of bytes queued on ooseq per pcb.

Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==0.

#define TCP_OOSEQ_MAX_PBUFS   0

TCP_OOSEQ_MAX_PBUFS: The maximum number of pbufs queued on ooseq per pcb.

Default is 0 (no limit). Only valid for TCP_QUEUE_OOSEQ==0.

#define TCP_OUTPUT_DEBUG   LWIP_DBG_OFF

TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions.

#define TCP_OVERSIZE   TCP_MSS

TCP_OVERSIZE: The maximum number of bytes that tcp_write may allocate ahead of time in an attempt to create shorter pbuf chains for transmission.

The meaningful range is 0 to TCP_MSS. Some suggested values are:

0: Disable oversized allocation. Each tcp_write() allocates a new pbuf (old behaviour). 1: Allocate size-aligned pbufs with minimal excess. Use this if your scatter-gather DMA requires aligned fragments. 128: Limit the pbuf/memory overhead to 20%. TCP_MSS: Try to create unfragmented TCP packets. TCP_MSS/4: Try to create 4 fragments or less per TCP packet.

#define TCP_QLEN_DEBUG   LWIP_DBG_OFF

TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths.

#define TCP_QUEUE_OOSEQ   (LWIP_TCP)

TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order.

Define to 0 if your device is low on memory.

#define TCP_RCV_SCALE   0
#define TCP_RST_DEBUG   LWIP_DBG_OFF

TCP_RST_DEBUG: Enable debugging for TCP with the RST message.

#define TCP_RTO_DEBUG   LWIP_DBG_OFF

TCP_RTO_DEBUG: Enable debugging in TCP for retransmit timeout.

#define TCP_SND_BUF   (2 * TCP_MSS)

TCP_SND_BUF: TCP sender buffer space (bytes).

To achieve good performance, this should be at least 2 * TCP_MSS.

#define TCP_SND_QUEUELEN   ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))

TCP_SND_QUEUELEN: TCP sender buffer space (pbufs).

This must be at least as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work.

#define TCP_SNDLOWAT   LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)

TCP_SNDLOWAT: TCP writable space (bytes).

This must be less than TCP_SND_BUF. It is the amount of space which must be available in the TCP snd_buf for select to return writable (combined with TCP_SNDQUEUELOWAT).

#define TCP_SNDQUEUELOWAT   LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)

TCP_SNDQUEUELOWAT: TCP writable bufs (pbuf count).

This must be less than TCP_SND_QUEUELEN. If the number of pbufs queued on a pcb drops below this number, select returns writable (combined with TCP_SNDLOWAT).

#define TCP_STATS   (LWIP_TCP)

TCP_STATS==1: Enable TCP stats.

Default is on if TCP enabled, otherwise off.

#define TCP_SYNMAXRTX   6

TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments.

#define TCP_TTL   (IP_DEFAULT_TTL)

TCP_TTL: Default Time-To-Live value.

#define TCP_WND   (4 * TCP_MSS)

TCP_WND: The size of a TCP window.

This must be at least (2 * TCP_MSS) for things to work well

#define TCP_WND_DEBUG   LWIP_DBG_OFF

TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating.

#define TCP_WND_UPDATE_THRESHOLD   (TCP_WND / 4)

TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an explicit window update.

#define TCPIP_DEBUG   LWIP_DBG_OFF

TCPIP_DEBUG: Enable debugging in tcpip.c.

#define TCPIP_MBOX_SIZE   0

TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages The queue size value itself is platform-dependent, but is passed to sys_mbox_new() when tcpip_init is called.

#define TCPIP_THREAD_NAME   "tcpip_thread"

TCPIP_THREAD_NAME: The name assigned to the main tcpip thread.

#define TCPIP_THREAD_PRIO   1

TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread.

The priority value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

#define TCPIP_THREAD_STACKSIZE   0

TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread.

The stack size value itself is platform-dependent, but is passed to sys_thread_new() when the thread is created.

#define TIMERS_DEBUG   LWIP_DBG_OFF

TIMERS_DEBUG: Enable debugging in timers.c.

#define UDP_DEBUG   LWIP_DBG_OFF

UDP_DEBUG: Enable debugging in UDP.

#define UDP_STATS   (LWIP_UDP)

UDP_STATS==1: Enable UDP stats.

Default is on if UDP enabled, otherwise off.

#define UDP_TTL   (IP_DEFAULT_TTL)

UDP_TTL: Default Time-To-Live value.