Microchip® Advanced Software Framework

lwipopts.h File Reference

LwIP configuration.

Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.

#include "conf_eth.h"

Macros

#define API_LIB_DEBUG   LWIP_DBG_OFF
 
#define API_MSG_DEBUG   LWIP_DBG_OFF
 
#define AUTOIP_DEBUG   LWIP_DBG_OFF
 
#define DEFAULT_ACCEPTMBOX_SIZE   16
 
#define DEFAULT_RAW_RECVMBOX_SIZE   16
 
#define DEFAULT_TCP_RECVMBOX_SIZE   16
 
#define DHCP_DEBUG   LWIP_DBG_OFF
 
#define DNS_DEBUG   LWIP_DBG_OFF
 
#define ETH_PAD_SIZE   2
 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
 
#define ETHARP_STATS   0
 
#define ICMP_DEBUG   LWIP_DBG_OFF
 
#define IGMP_DEBUG   LWIP_DBG_OFF
 
#define INET_DEBUG   LWIP_DBG_OFF
 
#define IP_DEBUG   LWIP_DBG_OFF
 
#define IP_REASS_DEBUG   LWIP_DBG_OFF
 
#define LWIP_DBG_MIN_LEVEL   LWIP_DBG_LEVEL_ALL
 
#define LWIP_DBG_TYPES_ON   LWIP_DBG_ON
 
#define LWIP_NETCONN   0
 
#define LWIP_NETIF_STATUS_CALLBACK   1
 LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface changes its up/down status (i.e., due to DHCP IP acquistion) More...
 
#define LWIP_NOASSERT
 
#define LWIP_RAW   0
 LWIP_RAW==1: Enable application layer to hook into the IP layer itself. More...
 
#define LWIP_SOCKET   0
 
#define LWIP_STATS   0
 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_STATS_LARGE   0
 LWIP_STATS_LARGE==1: Use 32 bits counter instead of 16. More...
 
#define LWIP_TCP   1
 LWIP_TCP==1: Turn on TCP. More...
 
#define LWIP_UDP   1
 LWIP_UDP==1: Turn on UDP. More...
 
#define MEM_ALIGNMENT   4
 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
 
#define MEM_SIZE   10 * 1024
 MEM_SIZE: the size of the heap memory. More...
 
#define MEMP_DEBUG   LWIP_DBG_OFF
 
#define MEMP_NUM_FRAG_PBUF   6
 MEMP_NUM_FRAG_PBUF: the number of IP fragments simultaneously sent (fragments, not whole packets!). More...
 
#define MEMP_NUM_NETBUF   0
 MEMP_NUM_NETBUF: the number of struct netbufs. More...
 
#define MEMP_NUM_NETCONN   0
 MEMP_NUM_NETCONN: the number of struct netconns. More...
 
#define MEMP_NUM_PBUF   2
 MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). More...
 
#define MEMP_NUM_REASSDATA   2
 MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for reassembly (whole packets, not fragments!) More...
 
#define MEMP_NUM_TCP_PCB   2
 MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections. More...
 
#define MEMP_NUM_TCP_PCB_LISTEN   1
 MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. More...
 
#define MEMP_NUM_TCP_SEG   8
 MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. More...
 
#define MEMP_NUM_UDP_PCB   1
 MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. More...
 
#define NETIF_DEBUG   LWIP_DBG_OFF
 
#define netifINTERFACE_TASK_PRIORITY   (tskIDLE_PRIORITY + 4)
 The priority of the netif stack. More...
 
#define netifINTERFACE_TASK_STACK_SIZE   256
 The stack sizes allocated to the netif stack: (256 * 4) = 1048 bytes. More...
 
#define NO_SYS   1
 NO_SYS==1: Provides VERY minimal functionality. More...
 
#define PBUF_DEBUG   LWIP_DBG_OFF
 
#define PBUF_POOL_BUFSIZE   LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN+4)
 PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. More...
 
#define PBUF_POOL_SIZE   5
 PBUF_POOL_SIZE: the number of buffers in the pbuf pool. More...
 
#define PPP_DEBUG   LWIP_DBG_OFF
 
#define RAW_DEBUG   LWIP_DBG_OFF
 
#define SLIP_DEBUG   LWIP_DBG_OFF
 
#define SNMP_MIB_DEBUG   LWIP_DBG_OFF
 
#define SNMP_MSG_DEBUG   LWIP_DBG_OFF
 
#define SOCKETS_DEBUG   LWIP_DBG_OFF
 
#define SYS_DEBUG   LWIP_DBG_OFF
 
#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 TCP_CWND_DEBUG   LWIP_DBG_OFF
 
#define TCP_DEBUG   LWIP_DBG_OFF
 
#define TCP_FR_DEBUG   LWIP_DBG_OFF
 
#define TCP_INPUT_DEBUG   LWIP_DBG_OFF
 
#define TCP_MSS   1460
 TCP_MSS: The maximum segment size controls the maximum amount of payload bytes per packet. More...
 
#define TCP_OUTPUT_DEBUG   LWIP_DBG_OFF
 
#define TCP_QLEN_DEBUG   LWIP_DBG_OFF
 
#define TCP_RST_DEBUG   LWIP_DBG_OFF
 
#define TCP_RTO_DEBUG   LWIP_DBG_OFF
 
#define TCP_SND_BUF   (2 * TCP_MSS)
 TCP_SND_BUF: TCP sender buffer space (bytes). More...
 
#define TCP_WND   (2 * TCP_MSS)
 TCP_WND: The size of a TCP window. More...
 
#define TCP_WND_DEBUG   LWIP_DBG_OFF
 
#define TCPIP_DEBUG   LWIP_DBG_OFF
 
#define TCPIP_MBOX_SIZE   16
 The mailbox size for the tcpip thread messages. More...
 
#define TCPIP_THREAD_PRIO   (tskIDLE_PRIORITY + 5)
 The priority of the TCPIP stack. More...
 
#define TCPIP_THREAD_STACKSIZE   256
 The stack sizes allocated to the TCPIP stack: (256 * 4) = 1048 bytes. More...
 
#define TIMERS_DEBUG   LWIP_DBG_OFF
 
#define UDP_DEBUG   LWIP_DBG_OFF
 

#define API_LIB_DEBUG   LWIP_DBG_OFF
#define API_MSG_DEBUG   LWIP_DBG_OFF
#define AUTOIP_DEBUG   LWIP_DBG_OFF
#define DEFAULT_ACCEPTMBOX_SIZE   16
#define DEFAULT_RAW_RECVMBOX_SIZE   16
#define DEFAULT_TCP_RECVMBOX_SIZE   16
#define DHCP_DEBUG   LWIP_DBG_OFF
#define DNS_DEBUG   LWIP_DBG_OFF
#define ETH_PAD_SIZE   2

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.

Referenced by ksz8851snl_update().

#define ETHARP_STATS   0
#define ICMP_DEBUG   LWIP_DBG_OFF

Referenced by icmp_input(), and icmp_send_response().

#define IGMP_DEBUG   LWIP_DBG_OFF
#define INET_DEBUG   LWIP_DBG_OFF
#define IP_DEBUG   LWIP_DBG_OFF

Referenced by ip_input(), ip_output(), and ip_route().

#define IP_REASS_DEBUG   LWIP_DBG_OFF
#define LWIP_DBG_MIN_LEVEL   LWIP_DBG_LEVEL_ALL
#define LWIP_DBG_TYPES_ON   LWIP_DBG_ON
#define LWIP_NETCONN   0
#define LWIP_NETIF_STATUS_CALLBACK   1

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

#define LWIP_NOASSERT
#define LWIP_RAW   0

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

Used to implement custom transport protocol (!= than Raw API).

#define LWIP_SOCKET   0
#define LWIP_STATS   0

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_STATS_LARGE   0

LWIP_STATS_LARGE==1: Use 32 bits counter instead of 16.

#define LWIP_TCP   1

LWIP_TCP==1: Turn on TCP.

#define LWIP_UDP   1

LWIP_UDP==1: Turn on UDP.

#define MEM_ALIGNMENT   4

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.

Referenced by if(), mem_free(), mem_init(), mem_malloc(), memp_free(), pbuf_alloc(), and tcp_enqueue_flags().

#define MEM_DEBUG   LWIP_DBG_OFF

Referenced by mem_free(), mem_malloc(), and mem_trim().

#define MEM_SIZE   10 * 1024

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 MEMP_DEBUG   LWIP_DBG_OFF
#define MEMP_NUM_FRAG_PBUF   6

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_NETBUF   0

MEMP_NUM_NETBUF: the number of struct netbufs.

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

#define MEMP_NUM_NETCONN   0

MEMP_NUM_NETCONN: the number of struct netconns.

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

#define MEMP_NUM_PBUF   2

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_REASSDATA   2

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

#define MEMP_NUM_TCP_PCB   2

MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections.

(requires the LWIP_TCP option)

#define MEMP_NUM_TCP_PCB_LISTEN   1

MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections.

(requires the LWIP_TCP option)

#define MEMP_NUM_TCP_SEG   8

MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments.

(requires the LWIP_TCP option)

#define MEMP_NUM_UDP_PCB   1

MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks.

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

#define netifINTERFACE_TASK_PRIORITY   (tskIDLE_PRIORITY + 4)

The priority of the netif stack.

Referenced by ethernetif_init().

#define netifINTERFACE_TASK_STACK_SIZE   256

The stack sizes allocated to the netif stack: (256 * 4) = 1048 bytes.

Referenced by ethernetif_init().

#define NO_SYS   1

NO_SYS==1: Provides VERY minimal functionality.

Otherwise, use lwIP facilities. Uses Raw API only.

#define PBUF_POOL_BUFSIZE   LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN+4)

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

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

NOTE: Added extra word to handle Micrel requirement.

Referenced by ksz8851snl_rx_populate_queue().

#define PBUF_POOL_SIZE   5

PBUF_POOL_SIZE: the number of buffers in the pbuf pool.

#define PPP_DEBUG   LWIP_DBG_OFF
#define RAW_DEBUG   LWIP_DBG_OFF
#define SLIP_DEBUG   LWIP_DBG_OFF
#define SNMP_MIB_DEBUG   LWIP_DBG_OFF
#define SNMP_MSG_DEBUG   LWIP_DBG_OFF
#define SOCKETS_DEBUG   LWIP_DBG_OFF
#define SYS_DEBUG   LWIP_DBG_OFF
#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 TCP_CWND_DEBUG   LWIP_DBG_OFF
#define TCP_FR_DEBUG   LWIP_DBG_OFF

Referenced by tcp_rexmit_fast().

#define TCP_MSS   1460

TCP_MSS: The maximum segment size controls the maximum amount of payload bytes per packet.

For maximum throughput, set this as high as possible for your network (i.e. 1460 bytes for standard ethernet). 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.

Referenced by tcp_alloc(), tcp_connect(), tcp_output_segment(), and tcp_parseopt().

#define TCP_QLEN_DEBUG   LWIP_DBG_OFF
#define TCP_RST_DEBUG   LWIP_DBG_OFF
#define TCP_RTO_DEBUG   LWIP_DBG_OFF
#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.

Referenced by tcp_alloc().

#define TCP_WND   (2 * TCP_MSS)

TCP_WND: The size of a TCP window.

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

Referenced by tcp_alloc(), tcp_close_shutdown(), tcp_connect(), tcp_input(), tcp_process_refused_data(), tcp_recved(), tcp_rst(), and tcp_update_rcv_ann_wnd().

#define TCP_WND_DEBUG   LWIP_DBG_OFF

Referenced by tcp_receive().

#define TCPIP_DEBUG   LWIP_DBG_OFF
#define TCPIP_MBOX_SIZE   16

The mailbox size for the tcpip thread messages.

#define TCPIP_THREAD_PRIO   (tskIDLE_PRIORITY + 5)

The priority of the TCPIP stack.

#define TCPIP_THREAD_STACKSIZE   256

The stack sizes allocated to the TCPIP stack: (256 * 4) = 1048 bytes.

#define TIMERS_DEBUG   LWIP_DBG_OFF

Referenced by arp_timer(), and ip_reass_timer().

#define UDP_DEBUG   LWIP_DBG_OFF

Referenced by udp_bind(), udp_connect(), and udp_input().