38 #ifndef __LWIP_OPT_H__
39 #define __LWIP_OPT_H__
45 #include "include/lwipopts.h"
46 #include "lwip/debug.h"
59 #ifndef SYS_LIGHTWEIGHT_PROT
60 #define SYS_LIGHTWEIGHT_PROT 0
75 #ifndef NO_SYS_NO_TIMERS
76 #define NO_SYS_NO_TIMERS 1
84 #define MEMCPY(dst,src,len) memcpy(dst,src,len)
92 #define SMEMCPY(dst,src,len) memcpy(dst,src,len)
105 #ifndef MEM_LIBC_MALLOC
106 #define MEM_LIBC_MALLOC 0
114 #ifndef MEMP_MEM_MALLOC
115 #define MEMP_MEM_MALLOC 0
123 #ifndef MEM_ALIGNMENT
124 #define MEM_ALIGNMENT 1
132 #define MEM_SIZE 1600
140 #ifndef MEMP_SEPARATE_POOLS
141 #define MEMP_SEPARATE_POOLS 0
153 #ifndef MEMP_OVERFLOW_CHECK
154 #define MEMP_OVERFLOW_CHECK 0
161 #ifndef MEMP_SANITY_CHECK
162 #define MEMP_SANITY_CHECK 0
171 #ifndef MEM_USE_POOLS
172 #define MEM_USE_POOLS 0
179 #ifndef MEM_USE_POOLS_TRY_BIGGER_POOL
180 #define MEM_USE_POOLS_TRY_BIGGER_POOL 0
189 #ifndef MEMP_USE_CUSTOM_POOLS
190 #define MEMP_USE_CUSTOM_POOLS 0
211 #ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
212 #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
225 #ifndef MEMP_NUM_PBUF
226 #define MEMP_NUM_PBUF 16
233 #ifndef MEMP_NUM_RAW_PCB
234 #define MEMP_NUM_RAW_PCB 4
242 #ifndef MEMP_NUM_UDP_PCB
243 #define MEMP_NUM_UDP_PCB 4
250 #ifndef MEMP_NUM_TCP_PCB
251 #define MEMP_NUM_TCP_PCB 5
258 #ifndef MEMP_NUM_TCP_PCB_LISTEN
259 #define MEMP_NUM_TCP_PCB_LISTEN 8
266 #ifndef MEMP_NUM_TCP_SEG
267 #define MEMP_NUM_TCP_SEG 16
274 #ifndef MEMP_NUM_REASSDATA
275 #define MEMP_NUM_REASSDATA 5
285 #ifndef MEMP_NUM_FRAG_PBUF
286 #define MEMP_NUM_FRAG_PBUF 15
295 #ifndef MEMP_NUM_ARP_QUEUE
296 #define MEMP_NUM_ARP_QUEUE 30
305 #ifndef MEMP_NUM_IGMP_GROUP
306 #define MEMP_NUM_IGMP_GROUP 8
313 #ifndef MEMP_NUM_SYS_TIMEOUT
314 #define MEMP_NUM_SYS_TIMEOUT 3
321 #ifndef MEMP_NUM_NETBUF
322 #define MEMP_NUM_NETBUF 2
329 #ifndef MEMP_NUM_NETCONN
330 #define MEMP_NUM_NETCONN 4
338 #ifndef MEMP_NUM_TCPIP_MSG_API
339 #define MEMP_NUM_TCPIP_MSG_API 8
347 #ifndef MEMP_NUM_TCPIP_MSG_INPKT
348 #define MEMP_NUM_TCPIP_MSG_INPKT 8
354 #ifndef MEMP_NUM_SNMP_NODE
355 #define MEMP_NUM_SNMP_NODE 50
362 #ifndef MEMP_NUM_SNMP_ROOTNODE
363 #define MEMP_NUM_SNMP_ROOTNODE 30
371 #ifndef MEMP_NUM_SNMP_VARBIND
372 #define MEMP_NUM_SNMP_VARBIND 2
380 #ifndef MEMP_NUM_SNMP_VALUE
381 #define MEMP_NUM_SNMP_VALUE 3
388 #ifndef MEMP_NUM_NETDB
389 #define MEMP_NUM_NETDB 1
396 #ifndef MEMP_NUM_LOCALHOSTLIST
397 #define MEMP_NUM_LOCALHOSTLIST 1
404 #ifndef MEMP_NUM_PPPOE_INTERFACES
405 #define MEMP_NUM_PPPOE_INTERFACES 1
411 #ifndef PBUF_POOL_SIZE
412 #define PBUF_POOL_SIZE 16
430 #ifndef ARP_TABLE_SIZE
431 #define ARP_TABLE_SIZE 10
442 #define ARP_QUEUEING 0
455 #ifndef ETHARP_TRUST_IP_MAC
456 #define ETHARP_TRUST_IP_MAC 0
465 #ifndef ETHARP_SUPPORT_VLAN
466 #define ETHARP_SUPPORT_VLAN 0
472 #ifndef LWIP_ETHERNET
473 #define LWIP_ETHERNET (LWIP_ARP || PPPOE_SUPPORT)
482 #define ETH_PAD_SIZE 0
488 #ifndef ETHARP_SUPPORT_STATIC_ENTRIES
489 #define ETHARP_SUPPORT_STATIC_ENTRIES 0
512 #ifndef IP_OPTIONS_ALLOWED
513 #define IP_OPTIONS_ALLOWED 1
521 #ifndef IP_REASSEMBLY
522 #define IP_REASSEMBLY 0
539 #ifndef IP_REASS_MAXAGE
540 #define IP_REASS_MAXAGE 3
549 #ifndef IP_REASS_MAX_PBUFS
550 #define IP_REASS_MAX_PBUFS 10
560 #ifndef IP_FRAG_USES_STATIC_BUF
561 #define IP_FRAG_USES_STATIC_BUF 0
568 #if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU)
569 #define IP_FRAG_MAX_MTU 1500
575 #ifndef IP_DEFAULT_TTL
576 #define IP_DEFAULT_TTL 255
584 #ifndef IP_SOF_BROADCAST
585 #define IP_SOF_BROADCAST 0
592 #ifndef IP_SOF_BROADCAST_RECV
593 #define IP_SOF_BROADCAST_RECV 0
613 #define ICMP_TTL (IP_DEFAULT_TTL)
619 #ifndef LWIP_BROADCAST_PING
620 #define LWIP_BROADCAST_PING 0
626 #ifndef LWIP_MULTICAST_PING
627 #define LWIP_MULTICAST_PING 0
646 #define RAW_TTL (IP_DEFAULT_TTL)
664 #ifndef DHCP_DOES_ARP_CHECK
665 #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
677 #define LWIP_AUTOIP 0
684 #ifndef LWIP_DHCP_AUTOIP_COOP
685 #define LWIP_DHCP_AUTOIP_COOP 0
695 #ifndef LWIP_DHCP_AUTOIP_COOP_TRIES
696 #define LWIP_DHCP_AUTOIP_COOP_TRIES 9
717 #ifndef SNMP_CONCURRENT_REQUESTS
718 #define SNMP_CONCURRENT_REQUESTS 1
725 #ifndef SNMP_TRAP_DESTINATIONS
726 #define SNMP_TRAP_DESTINATIONS 1
734 #ifndef SNMP_PRIVATE_MIB
735 #define SNMP_PRIVATE_MIB 0
743 #ifndef SNMP_SAFE_REQUESTS
744 #define SNMP_SAFE_REQUESTS 1
751 #ifndef SNMP_MAX_OCTET_STRING_LEN
752 #define SNMP_MAX_OCTET_STRING_LEN 127
760 #ifndef SNMP_MAX_TREE_DEPTH
761 #define SNMP_MAX_TREE_DEPTH 15
768 #ifndef SNMP_MAX_VALUE_SIZE
769 #define SNMP_MAX_VALUE_SIZE LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))
798 #ifndef DNS_TABLE_SIZE
799 #define DNS_TABLE_SIZE 4
803 #ifndef DNS_MAX_NAME_LENGTH
804 #define DNS_MAX_NAME_LENGTH 256
808 #ifndef DNS_MAX_SERVERS
809 #define DNS_MAX_SERVERS 2
813 #ifndef DNS_DOES_NAME_CHECK
814 #define DNS_DOES_NAME_CHECK 1
819 #define DNS_MSG_SIZE 512
832 #ifndef DNS_LOCAL_HOSTLIST
833 #define DNS_LOCAL_HOSTLIST 0
838 #ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC
839 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
858 #define LWIP_UDPLITE 0
865 #define UDP_TTL (IP_DEFAULT_TTL)
871 #ifndef LWIP_NETBUF_RECVINFO
872 #define LWIP_NETBUF_RECVINFO 0
891 #define TCP_TTL (IP_DEFAULT_TTL)
899 #define TCP_WND (4 * TCP_MSS)
906 #define TCP_MAXRTX 12
912 #ifndef TCP_SYNMAXRTX
913 #define TCP_SYNMAXRTX 6
920 #ifndef TCP_QUEUE_OOSEQ
921 #define TCP_QUEUE_OOSEQ (LWIP_TCP)
943 #ifndef TCP_CALCULATE_EFF_SEND_MSS
944 #define TCP_CALCULATE_EFF_SEND_MSS 1
952 #define TCP_SND_BUF 256
959 #ifndef TCP_SND_QUEUELEN
960 #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
969 #define TCP_SNDLOWAT ((TCP_SND_BUF)/2)
977 #ifndef TCP_SNDQUEUELOWAT
978 #define TCP_SNDQUEUELOWAT ((TCP_SND_QUEUELEN)/2)
984 #ifndef TCP_LISTEN_BACKLOG
985 #define TCP_LISTEN_BACKLOG 0
993 #ifndef TCP_DEFAULT_LISTEN_BACKLOG
994 #define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1011 #ifndef TCP_OVERSIZE
1012 #define TCP_OVERSIZE TCP_MSS
1018 #ifndef LWIP_TCP_TIMESTAMPS
1019 #define LWIP_TCP_TIMESTAMPS 0
1026 #ifndef TCP_WND_UPDATE_THRESHOLD
1027 #define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4)
1056 #ifndef PBUF_LINK_HLEN
1057 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1065 #ifndef PBUF_POOL_BUFSIZE
1066 #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
1078 #ifndef LWIP_NETIF_HOSTNAME
1079 #define LWIP_NETIF_HOSTNAME 0
1085 #ifndef LWIP_NETIF_API
1086 #define LWIP_NETIF_API 0
1093 #ifndef LWIP_NETIF_STATUS_CALLBACK
1094 #define LWIP_NETIF_STATUS_CALLBACK 0
1101 #ifndef LWIP_NETIF_LINK_CALLBACK
1102 #define LWIP_NETIF_LINK_CALLBACK 0
1112 #ifndef LWIP_NETIF_HWADDRHINT
1113 #define LWIP_NETIF_HWADDRHINT 0
1120 #ifndef LWIP_NETIF_LOOPBACK
1121 #define LWIP_NETIF_LOOPBACK 1
1128 #ifndef LWIP_LOOPBACK_MAX_PBUFS
1129 #define LWIP_LOOPBACK_MAX_PBUFS 0
1145 #ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING
1146 #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1158 #ifndef LWIP_NETIF_TX_SINGLE_PBUF
1159 #define LWIP_NETIF_TX_SINGLE_PBUF 0
1170 #ifndef LWIP_HAVE_LOOPIF
1171 #define LWIP_HAVE_LOOPIF 1
1182 #ifndef LWIP_HAVE_SLIPIF
1183 #define LWIP_HAVE_SLIPIF 0
1194 #ifndef TCPIP_THREAD_NAME
1195 #define TCPIP_THREAD_NAME "tcpip_thread"
1203 #ifndef TCPIP_THREAD_STACKSIZE
1204 #define TCPIP_THREAD_STACKSIZE 0
1212 #ifndef TCPIP_THREAD_PRIO
1213 #define TCPIP_THREAD_PRIO 1
1221 #ifndef TCPIP_MBOX_SIZE
1222 #define TCPIP_MBOX_SIZE 0
1228 #ifndef SLIPIF_THREAD_NAME
1229 #define SLIPIF_THREAD_NAME "slipif_loop"
1237 #ifndef SLIPIF_THREAD_STACKSIZE
1238 #define SLIPIF_THREAD_STACKSIZE 0
1246 #ifndef SLIPIF_THREAD_PRIO
1247 #define SLIPIF_THREAD_PRIO 1
1253 #ifndef PPP_THREAD_NAME
1254 #define PPP_THREAD_NAME "pppInputThread"
1262 #ifndef PPP_THREAD_STACKSIZE
1263 #define PPP_THREAD_STACKSIZE 0
1271 #ifndef PPP_THREAD_PRIO
1272 #define PPP_THREAD_PRIO 1
1278 #ifndef DEFAULT_THREAD_NAME
1279 #define DEFAULT_THREAD_NAME "lwIP"
1287 #ifndef DEFAULT_THREAD_STACKSIZE
1288 #define DEFAULT_THREAD_STACKSIZE 0
1296 #ifndef DEFAULT_THREAD_PRIO
1297 #define DEFAULT_THREAD_PRIO 1
1305 #ifndef DEFAULT_RAW_RECVMBOX_SIZE
1306 #define DEFAULT_RAW_RECVMBOX_SIZE 0
1314 #ifndef DEFAULT_UDP_RECVMBOX_SIZE
1315 #define DEFAULT_UDP_RECVMBOX_SIZE 0
1323 #ifndef DEFAULT_TCP_RECVMBOX_SIZE
1324 #define DEFAULT_TCP_RECVMBOX_SIZE 0
1332 #ifndef DEFAULT_ACCEPTMBOX_SIZE
1333 #define DEFAULT_ACCEPTMBOX_SIZE 0
1345 #ifndef LWIP_TCPIP_CORE_LOCKING
1346 #define LWIP_TCPIP_CORE_LOCKING 0
1353 #ifndef LWIP_TCPIP_CORE_LOCKING_INPUT
1354 #define LWIP_TCPIP_CORE_LOCKING_INPUT 0
1360 #ifndef LWIP_NETCONN
1361 #define LWIP_NETCONN 0
1367 #ifndef LWIP_TCPIP_TIMEOUT
1368 #define LWIP_TCPIP_TIMEOUT 1
1380 #define LWIP_SOCKET 0
1387 #ifndef LWIP_COMPAT_SOCKETS
1388 #define LWIP_COMPAT_SOCKETS 1
1396 #ifndef LWIP_POSIX_SOCKETS_IO_NAMES
1397 #define LWIP_POSIX_SOCKETS_IO_NAMES 1
1405 #ifndef LWIP_TCP_KEEPALIVE
1406 #define LWIP_TCP_KEEPALIVE 0
1412 #ifndef LWIP_SO_RCVTIMEO
1413 #define LWIP_SO_RCVTIMEO 0
1419 #ifndef LWIP_SO_RCVBUF
1420 #define LWIP_SO_RCVBUF 0
1426 #ifndef RECV_BUFSIZE_DEFAULT
1427 #define RECV_BUFSIZE_DEFAULT INT_MAX
1442 #ifndef SO_REUSE_RXTOALL
1443 #define SO_REUSE_RXTOALL 0
1455 #define LWIP_STATS 1
1463 #ifndef LWIP_STATS_DISPLAY
1464 #define LWIP_STATS_DISPLAY 0
1471 #define LINK_STATS 1
1477 #ifndef ETHARP_STATS
1478 #define ETHARP_STATS (LWIP_ARP)
1492 #ifndef IPFRAG_STATS
1493 #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
1500 #define ICMP_STATS 1
1507 #define IGMP_STATS (LWIP_IGMP)
1515 #define UDP_STATS (LWIP_UDP)
1523 #define TCP_STATS (LWIP_TCP)
1530 #define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
1537 #define MEMP_STATS (MEMP_MEM_MALLOC == 0)
1544 #define SYS_STATS (NO_SYS == 0)
1549 #define LINK_STATS 0
1551 #define IPFRAG_STATS 0
1552 #define ICMP_STATS 0
1553 #define IGMP_STATS 0
1557 #define MEMP_STATS 0
1559 #define LWIP_STATS_DISPLAY 0
1572 #define PPP_SUPPORT 0
1578 #ifndef PPPOE_SUPPORT
1579 #define PPPOE_SUPPORT 0
1585 #ifndef PPPOS_SUPPORT
1586 #define PPPOS_SUPPORT PPP_SUPPORT
1602 #define PAP_SUPPORT 0
1608 #ifndef CHAP_SUPPORT
1609 #define CHAP_SUPPORT 0
1615 #ifndef MSCHAP_SUPPORT
1616 #define MSCHAP_SUPPORT 0
1622 #ifndef CBCP_SUPPORT
1623 #define CBCP_SUPPORT 0
1630 #define CCP_SUPPORT 0
1637 #define VJ_SUPPORT 0
1644 #define MD5_SUPPORT 0
1650 #ifndef FSM_DEFTIMEOUT
1651 #define FSM_DEFTIMEOUT 6
1654 #ifndef FSM_DEFMAXTERMREQS
1655 #define FSM_DEFMAXTERMREQS 2
1658 #ifndef FSM_DEFMAXCONFREQS
1659 #define FSM_DEFMAXCONFREQS 10
1662 #ifndef FSM_DEFMAXNAKLOOPS
1663 #define FSM_DEFMAXNAKLOOPS 5
1666 #ifndef UPAP_DEFTIMEOUT
1667 #define UPAP_DEFTIMEOUT 6
1670 #ifndef UPAP_DEFREQTIME
1671 #define UPAP_DEFREQTIME 30
1674 #ifndef CHAP_DEFTIMEOUT
1675 #define CHAP_DEFTIMEOUT 6
1678 #ifndef CHAP_DEFTRANSMITS
1679 #define CHAP_DEFTRANSMITS 10
1683 #ifndef LCP_ECHOINTERVAL
1684 #define LCP_ECHOINTERVAL 0
1688 #ifndef LCP_MAXECHOFAILS
1689 #define LCP_MAXECHOFAILS 3
1693 #ifndef PPP_MAXIDLEFLAG
1694 #define PPP_MAXIDLEFLAG 100
1705 #define PPP_MTU 1500
1708 #define PPP_MAXMTU 1500
1710 #define PPP_MINMTU 64
1711 #define PPP_MRU 1500
1712 #define PPP_MAXMRU 1500
1714 #define PPP_DEFMRU 296
1716 #define PPP_MINMRU 128
1719 #define MAXNAMELEN 256
1721 #ifndef MAXSECRETLEN
1722 #define MAXSECRETLEN 256
1735 #ifndef CHECKSUM_GEN_IP
1736 #define CHECKSUM_GEN_IP 1
1742 #ifndef CHECKSUM_GEN_UDP
1743 #define CHECKSUM_GEN_UDP 1
1749 #ifndef CHECKSUM_GEN_TCP
1750 #define CHECKSUM_GEN_TCP 1
1756 #ifndef CHECKSUM_CHECK_IP
1757 #define CHECKSUM_CHECK_IP 1
1763 #ifndef CHECKSUM_CHECK_UDP
1764 #define CHECKSUM_CHECK_UDP 1
1770 #ifndef CHECKSUM_CHECK_TCP
1771 #define CHECKSUM_CHECK_TCP 1
1778 #ifndef LWIP_CHECKSUM_ON_COPY
1779 #define LWIP_CHECKSUM_ON_COPY 0
1792 #ifndef LWIP_DBG_MIN_LEVEL
1793 #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
1800 #ifndef LWIP_DBG_TYPES_ON
1801 #define LWIP_DBG_TYPES_ON LWIP_DBG_ON
1807 #ifndef ETHARP_DEBUG
1808 #define ETHARP_DEBUG LWIP_DBG_OFF
1815 #define NETIF_DEBUG LWIP_DBG_OFF
1822 #define PBUF_DEBUG LWIP_DBG_OFF
1828 #ifndef API_LIB_DEBUG
1829 #define API_LIB_DEBUG LWIP_DBG_OFF
1835 #ifndef API_MSG_DEBUG
1836 #define API_MSG_DEBUG LWIP_DBG_OFF
1842 #ifndef SOCKETS_DEBUG
1843 #define SOCKETS_DEBUG LWIP_DBG_OFF
1850 #define ICMP_DEBUG LWIP_DBG_OFF
1857 #define IGMP_DEBUG LWIP_DBG_OFF
1864 #define INET_DEBUG LWIP_DBG_OFF
1871 #define IP_DEBUG LWIP_DBG_OFF
1877 #ifndef IP_REASS_DEBUG
1878 #define IP_REASS_DEBUG LWIP_DBG_OFF
1885 #define RAW_DEBUG LWIP_DBG_OFF
1892 #define MEM_DEBUG LWIP_DBG_OFF
1899 #define MEMP_DEBUG LWIP_DBG_OFF
1906 #define SYS_DEBUG LWIP_DBG_OFF
1912 #ifndef TIMERS_DEBUG
1913 #define TIMERS_DEBUG LWIP_DBG_OFF
1920 #define TCP_DEBUG LWIP_DBG_OFF
1926 #ifndef TCP_INPUT_DEBUG
1927 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
1933 #ifndef TCP_FR_DEBUG
1934 #define TCP_FR_DEBUG LWIP_DBG_OFF
1941 #ifndef TCP_RTO_DEBUG
1942 #define TCP_RTO_DEBUG LWIP_DBG_OFF
1948 #ifndef TCP_CWND_DEBUG
1949 #define TCP_CWND_DEBUG LWIP_DBG_OFF
1955 #ifndef TCP_WND_DEBUG
1956 #define TCP_WND_DEBUG LWIP_DBG_OFF
1962 #ifndef TCP_OUTPUT_DEBUG
1963 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
1969 #ifndef TCP_RST_DEBUG
1970 #define TCP_RST_DEBUG LWIP_DBG_OFF
1976 #ifndef TCP_QLEN_DEBUG
1977 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
1984 #define UDP_DEBUG LWIP_DBG_OFF
1991 #define TCPIP_DEBUG LWIP_DBG_OFF
1998 #define PPP_DEBUG LWIP_DBG_OFF
2005 #define SLIP_DEBUG LWIP_DBG_OFF
2012 #define DHCP_DEBUG LWIP_DBG_OFF
2018 #ifndef AUTOIP_DEBUG
2019 #define AUTOIP_DEBUG LWIP_DBG_OFF
2025 #ifndef SNMP_MSG_DEBUG
2026 #define SNMP_MSG_DEBUG LWIP_DBG_OFF
2032 #ifndef SNMP_MIB_DEBUG
2033 #define SNMP_MIB_DEBUG LWIP_DBG_OFF
2040 #define DNS_DEBUG LWIP_DBG_OFF