/******************************************************************************* * @file lwipopts.h * @author Inderjit Singh * @brief TODO: TBD * * TBD ******************************************************************************/ #ifndef _LWIPOPTS_H_ #define _LWIPOPTS_H_ /* Include Ethernet configuration first */ #include "conf_eth.h" #include "gmac.h" /** * NO_SYS==1: NO OS. Provides VERY minimal functionality. RAW API only * NO_SYS==0: Use lwIP facilities. */ #define NO_SYS 1 /** * 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_STATUS_CALLBACK 1 /** * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. * Used to implement custom transport protocol (!= than Raw API). */ #define LWIP_RAW 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_LIGHTWEIGHT_PROT 0 /* These are not available when using "NO_SYS" */ #define LWIP_NETCONN 0 #define LWIP_SOCKET 0 /* Uncomment following line to use DHCP instead of fixed IP */ #define DHCP_USED /******************************************************************************* * Memory options ******************************************************************************/ /** * 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_ALIGNMENT 4 /** * 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_SIZE (4 * 1024) /** * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One * per active UDP "connection". * (requires the LWIP_UDP option) */ #define MEMP_NUM_UDP_PCB 2 /** * MEMP_NUM_TCP_PCB: the number of simultaneously active TCP connections. * (requires the LWIP_TCP option) */ #define MEMP_NUM_TCP_PCB 2 /** * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. * (requires the LWIP_TCP option) */ #define MEMP_NUM_TCP_PCB_LISTEN 1 /** * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. * (requires the LWIP_TCP option) */ #define MEMP_NUM_TCP_SEG 8 /** * MEMP_NUM_REASSDATA: the number of IP packets simultaneously queued for * reassembly (whole packets, not fragments!) */ #define MEMP_NUM_REASSDATA 2 /** * 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_FRAG_PBUF 6 /** * 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_PBUF 2 /** * MEMP_NUM_NETBUF: the number of struct netbufs. * (only needed if you use the sequential API, like api_lib.c) */ #define MEMP_NUM_NETBUF 0 /** * MEMP_NUM_NETCONN: the number of struct netconns. * (only needed if you use the sequential API, like api_lib.c) */ #define MEMP_NUM_NETCONN 0 /** * PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ #define PBUF_POOL_SIZE 4 /** * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */ #define PBUF_POOL_BUFSIZE GMAC_FRAME_LENTGH_MAX /******************************************************************************* * DNS options ******************************************************************************/ /** * 0: Don't use DNS query * 1: Use DNS query **/ #define LWIP_DNS 1 #define DNS_TABLE_SIZE 2 /* number of table entries, default 4 */ #define DNS_MAX_NAME_LENGTH 32 /* max. name length, default 256 */ #define DNS_MAX_SERVERS 2 /* number of DNS servers, default 2 */ #define DNS_DOES_NAME_CHECK 1 /* compare received name with given,def 0 */ #define DNS_MSG_SIZE 512 #define DNS_USES_STATIC_BUF 2 /* Dynamic buffer defined by DNS_MSG_SIZE */ /******************************************************************************* * DHCP options ******************************************************************************/ #if defined(DHCP_USED) /** * 0: Disable DHCP module. * 1: Enable DHCP module. */ #define LWIP_DHCP 1 #endif /******************************************************************************* * UDP options ******************************************************************************/ /** * 0: UDP off. * 1: UDP on */ #define LWIP_UDP 1 /* Required by DNS and DHCP */ /******************************************************************************* * TCP options ******************************************************************************/ /** * 0: TCP off. * 1: TCP on */ #define LWIP_TCP 1 /** * 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. */ #define TCP_MSS 1460 /** * TCP_WND: The size of a TCP window. This must be at least * (2 * TCP_MSS) for things to work well */ #define TCP_WND (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_BUF (2 * TCP_MSS) /******************************************************************************* * Thread options ******************************************************************************/ /** The stack sizes allocated to the netif stack: (256 * 4) = 1048 bytes. */ #define netifINTERFACE_TASK_STACK_SIZE 256 /** The priority of the netif stack. */ #define netifINTERFACE_TASK_PRIORITY (tskIDLE_PRIORITY + 4) /** The stack sizes allocated to the TCPIP stack: (256 * 4) = 1048 bytes. */ #define TCPIP_THREAD_STACKSIZE 256 /** The priority of the TCPIP stack. */ #define TCPIP_THREAD_PRIO (tskIDLE_PRIORITY + 5) /** The mailbox size for the tcpip thread messages */ #define TCPIP_MBOX_SIZE 16 #define DEFAULT_ACCEPTMBOX_SIZE 16 #define DEFAULT_RAW_RECVMBOX_SIZE 16 #define DEFAULT_TCP_RECVMBOX_SIZE 16 /******************************************************************************* * Statistics options ******************************************************************************/ /** * LWIP_STATS==1: Enable statistics collection in lwip_stats. */ #define LWIP_STATS 0 /** * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. */ #define LWIP_STATS_DISPLAY 0 /** * LWIP_STATS_LARGE==1: Use 32 bits counter instead of 16. */ #define LWIP_STATS_LARGE 0 #if LWIP_STATS #define LINK_STATS 0 #define IP_STATS 0 #define IPFRAG_STATS 0 #define ICMP_STATS 0 #define IGMP_STATS 0 #define UDP_STATS 0 #define TCP_STATS 0 #define MEM_STATS 0 #define MEMP_STATS 0 #define SYS_STATS 0 #endif /* Left outside to avoid warning. */ #define ETHARP_STATS 0 /******************************************************************************* * Debugging options ******************************************************************************/ //#define LWIP_NOASSERT #define LWIP_DEBUG 1 #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL #define LWIP_DBG_TYPES_ON LWIP_DBG_ON #define ETHARP_DEBUG LWIP_DBG_OFF #define NETIF_DEBUG LWIP_DBG_OFF #define PBUF_DEBUG LWIP_DBG_OFF #define API_LIB_DEBUG LWIP_DBG_OFF #define API_MSG_DEBUG LWIP_DBG_OFF #define SOCKETS_DEBUG LWIP_DBG_OFF #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 RAW_DEBUG LWIP_DBG_OFF #define MEM_DEBUG LWIP_DBG_OFF #define MEMP_DEBUG LWIP_DBG_OFF #define SYS_DEBUG LWIP_DBG_OFF #define TIMERS_DEBUG LWIP_DBG_OFF #define TCP_DEBUG LWIP_DBG_OFF #define TCP_INPUT_DEBUG LWIP_DBG_OFF #define TCP_FR_DEBUG LWIP_DBG_OFF #define TCP_RTO_DEBUG LWIP_DBG_OFF #define TCP_CWND_DEBUG LWIP_DBG_OFF #define TCP_WND_DEBUG LWIP_DBG_OFF #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF #define TCP_RST_DEBUG LWIP_DBG_OFF #define TCP_QLEN_DEBUG LWIP_DBG_OFF #define UDP_DEBUG LWIP_DBG_OFF #define TCPIP_DEBUG LWIP_DBG_OFF #define PPP_DEBUG LWIP_DBG_OFF #define SLIP_DEBUG LWIP_DBG_OFF #define DHCP_DEBUG LWIP_DBG_OFF #define AUTOIP_DEBUG LWIP_DBG_OFF #define SNMP_MSG_DEBUG LWIP_DBG_OFF #define SNMP_MIB_DEBUG LWIP_DBG_OFF #define DNS_DEBUG LWIP_DBG_OFF #endif /* LWIPOPTS_H_ */