/* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Simon Goldschmidt * */ #ifndef LWIP_HDR_LWIPOPTS_H #define LWIP_HDR_LWIPOPTS_H /* NEVER Set To 1, 1 Will Remove OS Abstraction */ #define NO_SYS 0 /* Timer Settings */ #define LWIP_TIMERS 1 #define LWIP_TIMERS_CUSTOM 0 #define MEMCPY(dst, src, len) memcpy(dst,src,len) #define SMEMCPY(dst, src, len) memcpy(dst,src,len) /* Core locking and MPU */ #define LWIP_MPU_COMPATIBLE 0 #define LWIP_TCPIP_CORE_LOCKING 1 #define LWIP_TCPIP_CORE_LOCKING_INPUT 1 #define SYS_LIGHTWEIGHT_PROT 0 #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0 #define MEM_ALIGNMENT 1 #define MEM_LIBC_MALLOC 0 #define MEM_SIZE 1600 #define MEM_USE_POOLS 0 #define MEM_USE_POOLS_TRY_BIGGER_POOL 0 #define MEMP_MEM_MALLOC 0 #define MEMP_SANITY_CHECK 0 #define MEMP_USE_CUSTOM_POOLS 0 #define MEMP_OVERFLOW_CHECK 0 #define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API #define MEMP_NUM_ARP_QUEUE 30 #define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API #define MEMP_NUM_FRAG_PBUF 15 #define MEMP_NUM_IGMP_GROUP 8 #define MEMP_NUM_LOCALHOSTLIST 1 #define MEMP_NUM_NETBUF 2 #define MEMP_NUM_NETCONN 4 #define MEMP_NUM_NETDB 1 #define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API #define MEMP_NUM_PBUF 16 #define MEMP_NUM_RAW_PCB 4 #define MEMP_NUM_REASSDATA 5 #define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API #define MEMP_NUM_TCP_PCB 5 #define MEMP_NUM_TCP_PCB_LISTEN 8 #define MEMP_NUM_TCP_SEG 16 #define MEMP_NUM_TCPIP_MSG_API 8 #define MEMP_NUM_TCPIP_MSG_INPKT 8 #define MEMP_NUM_UDP_PCB 4 #define PBUF_POOL_SIZE 16 #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)) #define LWIP_ARP 1 #define ARP_TABLE_SIZE 10 #define ARP_MAXAGE 300 #define ARP_QUEUEING 0 #define ARP_QUEUE_LEN 3 #define ETHARP_SUPPORT_VLAN 0 #define LWIP_ETHERNET LWIP_ARP #define ETH_PAD_SIZE 0 #define ETHARP_SUPPORT_STATIC_ENTRIES 0 #define ETHARP_TABLE_MATCH_NETIF 0 #define LWIP_IPV4 1 #define IP_FORWARD 0 #define IP_REASSEMBLY 1 #define IP_FRAG 1 #define IP_OPTIONS_ALLOWED 1 #define IP_REASS_MAXAGE 3 #define IP_REASS_MAX_PBUFS 10 #define IP_DEFAULT_TTL 255 #define IP_SOF_BROADCAST 0 #define IP_SOF_BROADCAST_RECV 0 #define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0 #define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS 0 #define LWIP_ICMP 1 #define ICMP_TTL (IP_DEFAULT_TTL) #define LWIP_BROADCAST_PING 1 #define LWIP_MULTICAST_PING 0 #define LWIP_RAW 0 #define RAW_TTL (IP_DEFAULT_TTL) #define LWIP_DHCP 0 #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) #define LWIP_DHCP_BOOTP_FILE 0 #define LWIP_DHCP_GET_NTP_SRV 0 #define LWIP_DHCP_MAX_NTP_SERVERS 1 #define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS #define LWIP_AUTOIP 0 #define LWIP_DHCP_AUTOIP_COOP 0 #define LWIP_DHCP_AUTOIP_COOP_TRIES 9 #define LWIP_MIB2_CALLBACKS 0 #define LWIP_IGMP 0 #define LWIP_MULTICAST_TX_OPTIONS (LWIP_IGMP && LWIP_UDP) #define LWIP_DNS 0 #define DNS_TABLE_SIZE 4 #define DNS_MAX_NAME_LENGTH 256 #define DNS_MAX_SERVERS 2 #define DNS_DOES_NAME_CHECK 1 #define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT) #define DNS_LOCAL_HOSTLIST 0 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0 #define LWIP_DNS_SUPPORT_MDNS_QUERIES 0 #define LWIP_UDP 1 #define LWIP_UDPLITE 0 #define UDP_TTL (IP_DEFAULT_TTL) #define LWIP_NETBUF_RECVINFO 0 #define LWIP_TCP 1 #define TCP_TTL (IP_DEFAULT_TTL) #define TCP_WND (4 * TCP_MSS) #define TCP_MAXRTX 12 #define TCP_SYNMAXRTX 6 #define TCP_QUEUE_OOSEQ (LWIP_TCP) #define TCP_MSS 536 #define TCP_CALCULATE_EFF_SEND_MSS 1 #define TCP_SND_BUF (2 * TCP_MSS) #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS)) #define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1) #define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5) #define TCP_OOSEQ_MAX_BYTES 0 #define TCP_OOSEQ_MAX_PBUFS 0 #define TCP_LISTEN_BACKLOG 0 #define TCP_DEFAULT_LISTEN_BACKLOG 0xff #define TCP_OVERSIZE TCP_MSS #define LWIP_TCP_TIMESTAMPS 0 #define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4)) #define LWIP_EVENT_API 0 #define LWIP_WND_SCALE 0 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE) #define PBUF_LINK_ENCAPSULATION_HLEN 0u #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS + 40 + PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN) #define LWIP_NETIF_HOSTNAME 0 #define LWIP_NETIF_API 0 #define LWIP_NETIF_STATUS_CALLBACK 0 #define LWIP_NETIF_LINK_CALLBACK 0 #define LWIP_NETIF_REMOVE_CALLBACK 0 #define LWIP_NETIF_HWADDRHINT 0 #define LWIP_NETIF_TX_SINGLE_PBUF 0 #define LWIP_NUM_NETIF_CLIENT_DATA 0 #define LWIP_HAVE_LOOPIF LWIP_NETIF_LOOPBACK #define LWIP_LOOPIF_MULTICAST 0 #define LWIP_NETIF_LOOPBACK 1 #define LWIP_LOOPBACK_MAX_PBUFS 0 #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) #define TCPIP_THREAD_NAME "tcpip_thread" #define TCPIP_THREAD_STACKSIZE 0 #define TCPIP_THREAD_PRIO 1 #define TCPIP_MBOX_SIZE 6 #define LWIP_TCPIP_THREAD_ALIVE() #define SLIPIF_THREAD_NAME "slipif_loop" #define SLIPIF_THREAD_STACKSIZE 0 #define SLIPIF_THREAD_PRIO 1 #define DEFAULT_THREAD_NAME "lwIP" #define DEFAULT_THREAD_STACKSIZE 0 #define DEFAULT_THREAD_PRIO 1 #define DEFAULT_RAW_RECVMBOX_SIZE 0 #define DEFAULT_UDP_RECVMBOX_SIZE 0 #define DEFAULT_TCP_RECVMBOX_SIZE 0 #define DEFAULT_ACCEPTMBOX_SIZE 0 #define LWIP_NETCONN 1 #define LWIP_TCPIP_TIMEOUT 0 #define LWIP_NETCONN_SEM_PER_THREAD 0 #define LWIP_NETCONN_FULLDUPLEX 0 #define LWIP_SOCKET 1 #define LWIP_COMPAT_SOCKETS 1 #define LWIP_POSIX_SOCKETS_IO_NAMES 1 #define LWIP_SOCKET_OFFSET 0 #define LWIP_TCP_KEEPALIVE 0 #define LWIP_SO_SNDTIMEO 0 #define LWIP_SO_RCVTIMEO 0 #define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0 #define LWIP_SO_RCVBUF 0 #define LWIP_SO_LINGER 0 #define RECV_BUFSIZE_DEFAULT INT_MAX #define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000 #define SO_REUSE 0 #define SO_REUSE_RXTOALL 0 #define LWIP_FIONREAD_LINUXMODE 0 #define LWIP_STATS 1 #define LWIP_STATS_DISPLAY 0 #define LINK_STATS 1 #define ETHARP_STATS (LWIP_ARP) #define IP_STATS 1 #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) #define ICMP_STATS 1 #define IGMP_STATS (LWIP_IGMP) #define UDP_STATS (LWIP_UDP) #define TCP_STATS (LWIP_TCP) #define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0)) #define MEMP_STATS (MEMP_MEM_MALLOC == 0) #define SYS_STATS (NO_SYS == 0) #define IP6_STATS (LWIP_IPV6) #define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6) #define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS)) #define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD) #define ND6_STATS (LWIP_IPV6) #define MIB2_STATS 0 #define LWIP_CHECKSUM_CTRL_PER_NETIF 0 #define CHECKSUM_GEN_IP 1 #define CHECKSUM_GEN_UDP 1 #define CHECKSUM_GEN_TCP 1 #define CHECKSUM_GEN_ICMP 1 #define CHECKSUM_GEN_ICMP6 1 #define CHECKSUM_CHECK_IP 1 #define CHECKSUM_CHECK_UDP 1 #define CHECKSUM_CHECK_TCP 1 #define CHECKSUM_CHECK_ICMP 1 #define CHECKSUM_CHECK_ICMP6 1 #define LWIP_CHECKSUM_ON_COPY 0 #define LWIP_IPV6 0 #define LWIP_IPV6_NUM_ADDRESSES 3 #define LWIP_IPV6_FORWARD 0 #define LWIP_IPV6_FRAG 0 #define LWIP_IPV6_REASS (LWIP_IPV6) #define LWIP_IPV6_SEND_ROUTER_SOLICIT 1 #define LWIP_IPV6_AUTOCONFIG (LWIP_IPV6) #define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1 #define LWIP_ICMP6 (LWIP_IPV6) #define LWIP_ICMP6_DATASIZE 8 #define LWIP_ICMP6_HL 255 #define LWIP_IPV6_MLD (LWIP_IPV6) #define MEMP_NUM_MLD6_GROUP 4 #define LWIP_ND6_QUEUEING (LWIP_IPV6) #define MEMP_NUM_ND6_QUEUE 20 #define LWIP_ND6_NUM_NEIGHBORS 10 #define LWIP_ND6_NUM_DESTINATIONS 10 #define LWIP_ND6_NUM_PREFIXES 5 #define LWIP_ND6_NUM_ROUTERS 3 #define LWIP_ND6_MAX_MULTICAST_SOLICIT 3 #define LWIP_ND6_MAX_UNICAST_SOLICIT 3 #define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000 #define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3 #define LWIP_ND6_REACHABLE_TIME 30000 #define LWIP_ND6_RETRANS_TIMER 1000 #define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000 #define LWIP_ND6_ALLOW_RA_UPDATES 1 #define LWIP_ND6_TCP_REACHABILITY_HINTS 1 #define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0 #define LWIP_IPV6_DHCP6 0 //#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h" //#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port) //#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif) //#define LWIP_HOOK_IP4_ROUTE() //#define LWIP_HOOK_IP4_ROUTE_SRC(dest, src) //#define LWIP_HOOK_ETHARP_GET_GW(netif, dest) //#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif) //#define LWIP_HOOK_IP6_ROUTE(src, dest) ///#define LWIP_HOOK_ND6_GET_GW(netif, dest) //#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr) //#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type) //#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type) //#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif) #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_ON #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 SLIP_DEBUG LWIP_DBG_OFF #define DHCP_DEBUG LWIP_DBG_OFF #define AUTOIP_DEBUG LWIP_DBG_OFF #define DNS_DEBUG LWIP_DBG_OFF #define IP6_DEBUG LWIP_DBG_OFF #define LWIP_PERF 0 //#define TCP_RCV_SCALE 0 //#define PBUF_POOL_SIZE 400 /* pbuf tests need ~200KByte */ #define LWIP_COMPAT_MUTEX 0 #define LWIP_COMPAT_MUTEX_ALLOWED 1 #define LWIP_TIMEVAL_PRIVATE 0 #define LWIP_CALLBACK_API 1 #define LWIP_PROVIDE_ERRNO 1 #endif