38 #ifndef __LWIPOPTS_H__
39 #define __LWIPOPTS_H__
56 #ifndef SYS_LIGHTWEIGHT_PROT
57 #define SYS_LIGHTWEIGHT_PROT 0
72 #ifndef NO_SYS_NO_TIMERS
73 #define NO_SYS_NO_TIMERS 0
81 #define MEMCPY(dst,src,len) os_memcpy(dst,src,len)
89 #define SMEMCPY(dst,src,len) os_memcpy(dst,src,len)
102 #ifndef MEM_LIBC_MALLOC
103 #define MEM_LIBC_MALLOC 1
111 #ifndef MEMP_MEM_MALLOC
112 #define MEMP_MEM_MALLOC 1
120 #ifndef MEM_ALIGNMENT
121 #define MEM_ALIGNMENT 4
129 #define MEM_SIZE 16000
137 #ifndef MEMP_SEPARATE_POOLS
138 #define MEMP_SEPARATE_POOLS 1
150 #ifndef MEMP_OVERFLOW_CHECK
151 #define MEMP_OVERFLOW_CHECK 0
158 #ifndef MEMP_SANITY_CHECK
159 #define MEMP_SANITY_CHECK 1
168 #ifndef MEM_USE_POOLS
169 #define MEM_USE_POOLS 0
176 #ifndef MEM_USE_POOLS_TRY_BIGGER_POOL
177 #define MEM_USE_POOLS_TRY_BIGGER_POOL 0
186 #ifndef MEMP_USE_CUSTOM_POOLS
187 #define MEMP_USE_CUSTOM_POOLS 0
208 #ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
209 #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
222 #ifndef MEMP_NUM_PBUF
223 #define MEMP_NUM_PBUF 10
230 #ifndef MEMP_NUM_RAW_PCB
231 #define MEMP_NUM_RAW_PCB 4
239 #ifndef MEMP_NUM_UDP_PCB
240 #define MEMP_NUM_UDP_PCB 4
247 #ifndef MEMP_NUM_TCP_PCB
248 #define MEMP_NUM_TCP_PCB (*((volatile uint32*)0x600011FC))
255 #ifndef MEMP_NUM_TCP_PCB_LISTEN
256 #define MEMP_NUM_TCP_PCB_LISTEN 2
263 #ifndef MEMP_NUM_TCP_SEG
264 #define MEMP_NUM_TCP_SEG 16
271 #ifndef MEMP_NUM_REASSDATA
272 #define MEMP_NUM_REASSDATA 0
282 #ifndef MEMP_NUM_FRAG_PBUF
283 #define MEMP_NUM_FRAG_PBUF 0
292 #ifndef MEMP_NUM_ARP_QUEUE
293 #define MEMP_NUM_ARP_QUEUE 10
302 #ifndef MEMP_NUM_IGMP_GROUP
303 #define MEMP_NUM_IGMP_GROUP 8
310 #ifndef MEMP_NUM_SYS_TIMEOUT
311 #define MEMP_NUM_SYS_TIMEOUT 6
318 #ifndef MEMP_NUM_NETBUF
319 #define MEMP_NUM_NETBUF 0
326 #ifndef MEMP_NUM_NETCONN
327 #define MEMP_NUM_NETCONN 0
335 #ifndef MEMP_NUM_TCPIP_MSG_API
336 #define MEMP_NUM_TCPIP_MSG_API 4
344 #ifndef MEMP_NUM_TCPIP_MSG_INPKT
345 #define MEMP_NUM_TCPIP_MSG_INPKT 4
351 #ifndef MEMP_NUM_SNMP_NODE
352 #define MEMP_NUM_SNMP_NODE 0
359 #ifndef MEMP_NUM_SNMP_ROOTNODE
360 #define MEMP_NUM_SNMP_ROOTNODE 0
368 #ifndef MEMP_NUM_SNMP_VARBIND
369 #define MEMP_NUM_SNMP_VARBIND 0
377 #ifndef MEMP_NUM_SNMP_VALUE
378 #define MEMP_NUM_SNMP_VALUE 0
385 #ifndef MEMP_NUM_NETDB
386 #define MEMP_NUM_NETDB 0
393 #ifndef MEMP_NUM_LOCALHOSTLIST
394 #define MEMP_NUM_LOCALHOSTLIST 0
401 #ifndef MEMP_NUM_PPPOE_INTERFACES
402 #define MEMP_NUM_PPPOE_INTERFACES 0
408 #ifndef PBUF_POOL_SIZE
409 #define PBUF_POOL_SIZE 10
427 #ifndef ARP_TABLE_SIZE
428 #define ARP_TABLE_SIZE 10
439 #define ARP_QUEUEING 1
452 #ifndef ETHARP_TRUST_IP_MAC
453 #define ETHARP_TRUST_IP_MAC 1
462 #ifndef ETHARP_SUPPORT_VLAN
463 #define ETHARP_SUPPORT_VLAN 0
469 #ifndef LWIP_ETHERNET
470 #define LWIP_ETHERNET (LWIP_ARP || PPPOE_SUPPORT)
479 #define ETH_PAD_SIZE 0
485 #ifndef ETHARP_SUPPORT_STATIC_ENTRIES
486 #define ETHARP_SUPPORT_STATIC_ENTRIES 0
509 #ifndef IP_OPTIONS_ALLOWED
510 #define IP_OPTIONS_ALLOWED 1
518 #ifndef IP_REASSEMBLY
519 #define IP_REASSEMBLY 0
536 #ifndef IP_REASS_MAXAGE
537 #define IP_REASS_MAXAGE 0
546 #ifndef IP_REASS_MAX_PBUFS
547 #define IP_REASS_MAX_PBUFS 0
557 #ifndef IP_FRAG_USES_STATIC_BUF
558 #define IP_FRAG_USES_STATIC_BUF 1
565 #if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU)
566 #define IP_FRAG_MAX_MTU 1500
572 #ifndef IP_DEFAULT_TTL
573 #define IP_DEFAULT_TTL 255
581 #ifndef IP_SOF_BROADCAST
582 #define IP_SOF_BROADCAST 0
589 #ifndef IP_SOF_BROADCAST_RECV
590 #define IP_SOF_BROADCAST_RECV 0
610 #define ICMP_TTL (IP_DEFAULT_TTL)
616 #ifndef LWIP_BROADCAST_PING
617 #define LWIP_BROADCAST_PING 0
623 #ifndef LWIP_MULTICAST_PING
624 #define LWIP_MULTICAST_PING 0
643 #define RAW_TTL (IP_DEFAULT_TTL)
661 #ifndef DHCP_DOES_ARP_CHECK
662 #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
674 #define LWIP_AUTOIP 0
681 #ifndef LWIP_DHCP_AUTOIP_COOP
682 #define LWIP_DHCP_AUTOIP_COOP 0
692 #ifndef LWIP_DHCP_AUTOIP_COOP_TRIES
693 #define LWIP_DHCP_AUTOIP_COOP_TRIES 9
713 #ifndef SNMP_CONCURRENT_REQUESTS
714 #define SNMP_CONCURRENT_REQUESTS 0
721 #ifndef SNMP_TRAP_DESTINATIONS
722 #define SNMP_TRAP_DESTINATIONS 0
728 #ifndef SNMP_PRIVATE_MIB
729 #define SNMP_PRIVATE_MIB 0
737 #ifndef SNMP_SAFE_REQUESTS
738 #define SNMP_SAFE_REQUESTS 0
745 #ifndef SNMP_MAX_OCTET_STRING_LEN
746 #define SNMP_MAX_OCTET_STRING_LEN 127
754 #ifndef SNMP_MAX_TREE_DEPTH
755 #define SNMP_MAX_TREE_DEPTH 15
762 #ifndef SNMP_MAX_VALUE_SIZE
763 #define SNMP_MAX_VALUE_SIZE LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))
792 #ifndef DNS_TABLE_SIZE
793 #define DNS_TABLE_SIZE 4
797 #ifndef DNS_MAX_NAME_LENGTH
798 #define DNS_MAX_NAME_LENGTH 256
802 #ifndef DNS_MAX_SERVERS
803 #define DNS_MAX_SERVERS 2
807 #ifndef DNS_DOES_NAME_CHECK
808 #define DNS_DOES_NAME_CHECK 1
813 #define DNS_MSG_SIZE 512
826 #ifndef DNS_LOCAL_HOSTLIST
827 #define DNS_LOCAL_HOSTLIST 0
832 #ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC
833 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
852 #define LWIP_UDPLITE 0
859 #define UDP_TTL (IP_DEFAULT_TTL)
865 #ifndef LWIP_NETBUF_RECVINFO
866 #define LWIP_NETBUF_RECVINFO 0
885 #define TCP_TTL (IP_DEFAULT_TTL)
893 #define TCP_WND (4 * TCP_MSS)
906 #ifndef TCP_SYNMAXRTX
907 #define TCP_SYNMAXRTX 5
914 #ifndef TCP_QUEUE_OOSEQ
915 #define TCP_QUEUE_OOSEQ 0
937 #ifndef TCP_CALCULATE_EFF_SEND_MSS
938 #define TCP_CALCULATE_EFF_SEND_MSS 1
946 #define TCP_SND_BUF 2 * TCP_MSS
953 #ifndef TCP_SND_QUEUELEN
954 #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
963 #define TCP_SNDLOWAT ((TCP_SND_BUF)/2)
971 #ifndef TCP_SNDQUEUELOWAT
972 #define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
978 #ifndef TCP_LISTEN_BACKLOG
979 #define TCP_LISTEN_BACKLOG 0
987 #ifndef TCP_DEFAULT_LISTEN_BACKLOG
988 #define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1005 #ifndef TCP_OVERSIZE
1006 #define TCP_OVERSIZE TCP_MSS
1012 #ifndef LWIP_TCP_TIMESTAMPS
1013 #define LWIP_TCP_TIMESTAMPS 0
1020 #ifndef TCP_WND_UPDATE_THRESHOLD
1021 #define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4)
1031 #ifndef LWIP_EVENT_API
1032 #define LWIP_EVENT_API 0
1033 #define LWIP_CALLBACK_API 1
1035 #define LWIP_EVENT_API 1
1036 #define LWIP_CALLBACK_API 0
1050 #ifndef PBUF_LINK_HLEN
1051 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1059 #ifndef PBUF_POOL_BUFSIZE
1060 #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
1072 #ifndef LWIP_NETIF_HOSTNAME
1073 #define LWIP_NETIF_HOSTNAME 0
1079 #ifndef LWIP_NETIF_API
1080 #define LWIP_NETIF_API 0
1087 #ifndef LWIP_NETIF_STATUS_CALLBACK
1088 #define LWIP_NETIF_STATUS_CALLBACK 0
1095 #ifndef LWIP_NETIF_LINK_CALLBACK
1096 #define LWIP_NETIF_LINK_CALLBACK 0
1106 #ifndef LWIP_NETIF_HWADDRHINT
1107 #define LWIP_NETIF_HWADDRHINT 0
1114 #ifndef LWIP_NETIF_LOOPBACK
1115 #define LWIP_NETIF_LOOPBACK 0
1122 #ifndef LWIP_LOOPBACK_MAX_PBUFS
1123 #define LWIP_LOOPBACK_MAX_PBUFS 0
1139 #ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING
1140 #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1152 #ifndef LWIP_NETIF_TX_SINGLE_PBUF
1153 #define LWIP_NETIF_TX_SINGLE_PBUF 1
1164 #ifndef LWIP_HAVE_LOOPIF
1165 #define LWIP_HAVE_LOOPIF 0
1176 #ifndef LWIP_HAVE_SLIPIF
1177 #define LWIP_HAVE_SLIPIF 0
1188 #ifndef TCPIP_THREAD_NAME
1189 #define TCPIP_THREAD_NAME "tcpip_thread"
1197 #ifndef TCPIP_THREAD_STACKSIZE
1198 #define TCPIP_THREAD_STACKSIZE 0
1206 #ifndef TCPIP_THREAD_PRIO
1207 #define TCPIP_THREAD_PRIO 1
1215 #ifndef TCPIP_MBOX_SIZE
1216 #define TCPIP_MBOX_SIZE 0
1222 #ifndef SLIPIF_THREAD_NAME
1223 #define SLIPIF_THREAD_NAME "slipif_loop"
1231 #ifndef SLIPIF_THREAD_STACKSIZE
1232 #define SLIPIF_THREAD_STACKSIZE 0
1240 #ifndef SLIPIF_THREAD_PRIO
1241 #define SLIPIF_THREAD_PRIO 1
1247 #ifndef PPP_THREAD_NAME
1248 #define PPP_THREAD_NAME "pppInputThread"
1256 #ifndef PPP_THREAD_STACKSIZE
1257 #define PPP_THREAD_STACKSIZE 0
1265 #ifndef PPP_THREAD_PRIO
1266 #define PPP_THREAD_PRIO 1
1272 #ifndef DEFAULT_THREAD_NAME
1273 #define DEFAULT_THREAD_NAME "lwIP"
1281 #ifndef DEFAULT_THREAD_STACKSIZE
1282 #define DEFAULT_THREAD_STACKSIZE 0
1290 #ifndef DEFAULT_THREAD_PRIO
1291 #define DEFAULT_THREAD_PRIO 1
1299 #ifndef DEFAULT_RAW_RECVMBOX_SIZE
1300 #define DEFAULT_RAW_RECVMBOX_SIZE 0
1308 #ifndef DEFAULT_UDP_RECVMBOX_SIZE
1309 #define DEFAULT_UDP_RECVMBOX_SIZE 0
1317 #ifndef DEFAULT_TCP_RECVMBOX_SIZE
1318 #define DEFAULT_TCP_RECVMBOX_SIZE 0
1326 #ifndef DEFAULT_ACCEPTMBOX_SIZE
1327 #define DEFAULT_ACCEPTMBOX_SIZE 0
1339 #ifndef LWIP_TCPIP_CORE_LOCKING
1340 #define LWIP_TCPIP_CORE_LOCKING 0
1347 #ifndef LWIP_TCPIP_CORE_LOCKING_INPUT
1348 #define LWIP_TCPIP_CORE_LOCKING_INPUT 0
1354 #ifndef LWIP_NETCONN
1355 #define LWIP_NETCONN 0
1361 #ifndef LWIP_TCPIP_TIMEOUT
1362 #define LWIP_TCPIP_TIMEOUT 1
1374 #define LWIP_SOCKET 0
1381 #ifndef LWIP_COMPAT_SOCKETS
1382 #define LWIP_COMPAT_SOCKETS 0
1390 #ifndef LWIP_POSIX_SOCKETS_IO_NAMES
1391 #define LWIP_POSIX_SOCKETS_IO_NAMES 0
1399 #ifndef LWIP_TCP_KEEPALIVE
1400 #define LWIP_TCP_KEEPALIVE 1
1406 #ifndef LWIP_SO_RCVTIMEO
1407 #define LWIP_SO_RCVTIMEO 0
1413 #ifndef LWIP_SO_RCVBUF
1414 #define LWIP_SO_RCVBUF 0
1420 #ifndef RECV_BUFSIZE_DEFAULT
1421 #define RECV_BUFSIZE_DEFAULT INT_MAX
1436 #ifndef SO_REUSE_RXTOALL
1437 #define SO_REUSE_RXTOALL 0
1449 #define LWIP_STATS 0
1457 #ifndef LWIP_STATS_DISPLAY
1458 #define LWIP_STATS_DISPLAY 0
1465 #define LINK_STATS 1
1471 #ifndef ETHARP_STATS
1472 #define ETHARP_STATS (LWIP_ARP)
1486 #ifndef IPFRAG_STATS
1487 #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
1494 #define ICMP_STATS 1
1501 #define IGMP_STATS (LWIP_IGMP)
1509 #define UDP_STATS (LWIP_UDP)
1517 #define TCP_STATS (LWIP_TCP)
1524 #define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
1531 #define MEMP_STATS (MEMP_MEM_MALLOC == 0)
1538 #define SYS_STATS (NO_SYS == 0)
1542 #define ETHARP_STATS 0
1543 #define LINK_STATS 0
1545 #define IPFRAG_STATS 0
1546 #define ICMP_STATS 0
1547 #define IGMP_STATS 0
1551 #define MEMP_STATS 0
1553 #define LWIP_STATS_DISPLAY 0
1566 #define PPP_SUPPORT 0
1572 #ifndef PPPOE_SUPPORT
1573 #define PPPOE_SUPPORT 0
1579 #ifndef PPPOS_SUPPORT
1580 #define PPPOS_SUPPORT PPP_SUPPORT
1596 #define PAP_SUPPORT 0
1602 #ifndef CHAP_SUPPORT
1603 #define CHAP_SUPPORT 0
1609 #ifndef MSCHAP_SUPPORT
1610 #define MSCHAP_SUPPORT 0
1616 #ifndef CBCP_SUPPORT
1617 #define CBCP_SUPPORT 0
1624 #define CCP_SUPPORT 0
1631 #define VJ_SUPPORT 0
1638 #define MD5_SUPPORT 0
1644 #ifndef FSM_DEFTIMEOUT
1645 #define FSM_DEFTIMEOUT 6
1648 #ifndef FSM_DEFMAXTERMREQS
1649 #define FSM_DEFMAXTERMREQS 2
1652 #ifndef FSM_DEFMAXCONFREQS
1653 #define FSM_DEFMAXCONFREQS 10
1656 #ifndef FSM_DEFMAXNAKLOOPS
1657 #define FSM_DEFMAXNAKLOOPS 5
1660 #ifndef UPAP_DEFTIMEOUT
1661 #define UPAP_DEFTIMEOUT 6
1664 #ifndef UPAP_DEFREQTIME
1665 #define UPAP_DEFREQTIME 30
1668 #ifndef CHAP_DEFTIMEOUT
1669 #define CHAP_DEFTIMEOUT 6
1672 #ifndef CHAP_DEFTRANSMITS
1673 #define CHAP_DEFTRANSMITS 10
1677 #ifndef LCP_ECHOINTERVAL
1678 #define LCP_ECHOINTERVAL 0
1682 #ifndef LCP_MAXECHOFAILS
1683 #define LCP_MAXECHOFAILS 3
1687 #ifndef PPP_MAXIDLEFLAG
1688 #define PPP_MAXIDLEFLAG 100
1699 #define PPP_MTU 1500
1702 #define PPP_MAXMTU 1500
1704 #define PPP_MINMTU 64
1705 #define PPP_MRU 1500
1706 #define PPP_MAXMRU 1500
1708 #define PPP_DEFMRU 296
1710 #define PPP_MINMRU 128
1713 #define MAXNAMELEN 256
1715 #ifndef MAXSECRETLEN
1716 #define MAXSECRETLEN 256
1729 #ifndef CHECKSUM_GEN_IP
1730 #define CHECKSUM_GEN_IP 1
1736 #ifndef CHECKSUM_GEN_UDP
1737 #define CHECKSUM_GEN_UDP 1
1743 #ifndef CHECKSUM_GEN_TCP
1744 #define CHECKSUM_GEN_TCP 1
1750 #ifndef CHECKSUM_CHECK_IP
1751 #define CHECKSUM_CHECK_IP 1
1757 #ifndef CHECKSUM_CHECK_UDP
1758 #define CHECKSUM_CHECK_UDP 1
1764 #ifndef CHECKSUM_CHECK_TCP
1765 #define CHECKSUM_CHECK_TCP 1
1772 #ifndef LWIP_CHECKSUM_ON_COPY
1773 #define LWIP_CHECKSUM_ON_COPY 0
1786 #ifndef LWIP_DBG_MIN_LEVEL
1787 #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
1794 #ifndef LWIP_DBG_TYPES_ON
1795 #define LWIP_DBG_TYPES_ON LWIP_DBG_OFF
1801 #ifndef ETHARP_DEBUG
1802 #define ETHARP_DEBUG LWIP_DBG_OFF
1809 #define NETIF_DEBUG LWIP_DBG_OFF
1816 #define PBUF_DEBUG LWIP_DBG_OFF
1822 #ifndef API_LIB_DEBUG
1823 #define API_LIB_DEBUG LWIP_DBG_OFF
1829 #ifndef API_MSG_DEBUG
1830 #define API_MSG_DEBUG LWIP_DBG_OFF
1836 #ifndef SOCKETS_DEBUG
1837 #define SOCKETS_DEBUG LWIP_DBG_OFF
1844 #define ICMP_DEBUG LWIP_DBG_OFF
1851 #define IGMP_DEBUG LWIP_DBG_OFF
1858 #define INET_DEBUG LWIP_DBG_OFF
1865 #define IP_DEBUG LWIP_DBG_OFF
1871 #ifndef IP_REASS_DEBUG
1872 #define IP_REASS_DEBUG LWIP_DBG_OFF
1879 #define RAW_DEBUG LWIP_DBG_OFF
1886 #define MEM_DEBUG LWIP_DBG_OFF
1893 #define MEMP_DEBUG LWIP_DBG_OFF
1900 #define SYS_DEBUG LWIP_DBG_OFF
1906 #ifndef TIMERS_DEBUG
1907 #define TIMERS_DEBUG LWIP_DBG_OFF
1914 #define TCP_DEBUG LWIP_DBG_OFF
1920 #ifndef TCP_INPUT_DEBUG
1921 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
1927 #ifndef TCP_FR_DEBUG
1928 #define TCP_FR_DEBUG LWIP_DBG_OFF
1935 #ifndef TCP_RTO_DEBUG
1936 #define TCP_RTO_DEBUG LWIP_DBG_OFF
1942 #ifndef TCP_CWND_DEBUG
1943 #define TCP_CWND_DEBUG LWIP_DBG_OFF
1949 #ifndef TCP_WND_DEBUG
1950 #define TCP_WND_DEBUG LWIP_DBG_OFF
1956 #ifndef TCP_OUTPUT_DEBUG
1957 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
1963 #ifndef TCP_RST_DEBUG
1964 #define TCP_RST_DEBUG LWIP_DBG_OFF
1970 #ifndef TCP_QLEN_DEBUG
1971 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
1978 #define UDP_DEBUG LWIP_DBG_OFF
1985 #define TCPIP_DEBUG LWIP_DBG_OFF
1992 #define PPP_DEBUG LWIP_DBG_OFF
1999 #define SLIP_DEBUG LWIP_DBG_OFF
2006 #define DHCP_DEBUG LWIP_DBG_OFF
2012 #ifndef AUTOIP_DEBUG
2013 #define AUTOIP_DEBUG LWIP_DBG_OFF
2019 #ifndef SNMP_MSG_DEBUG
2020 #define SNMP_MSG_DEBUG LWIP_DBG_OFF
2026 #ifndef SNMP_MIB_DEBUG
2027 #define SNMP_MIB_DEBUG LWIP_DBG_OFF
2034 #define DNS_DEBUG LWIP_DBG_OFF