浏览该文件的文档.
44#if !defined LWIP_HDR_OPT_H
88#if !defined NO_SYS || defined __DOXYGEN__
105#if !defined LWIP_TIMERS || defined __DOXYGEN__
106#ifdef NO_SYS_NO_TIMERS
107#define LWIP_TIMERS (!NO_SYS || (NO_SYS && !NO_SYS_NO_TIMERS))
120#if !defined LWIP_TIMERS_CUSTOM || defined __DOXYGEN__
121#define LWIP_TIMERS_CUSTOM 0
136#if !defined MEMCPY || defined __DOXYGEN__
137#define MEMCPY(dst,src,len) memcpy(dst,src,len)
144#if !defined SMEMCPY || defined __DOXYGEN__
145#define SMEMCPY(dst,src,len) memcpy(dst,src,len)
153#if !defined MEMMOVE || defined __DOXYGEN__
154#define MEMMOVE(dst,src,len) memmove(dst,src,len)
177#if !defined LWIP_MPU_COMPATIBLE || defined __DOXYGEN__
178#define LWIP_MPU_COMPATIBLE 0
189#if !defined LWIP_TCPIP_CORE_LOCKING || defined __DOXYGEN__
190#define LWIP_TCPIP_CORE_LOCKING 1
201#if !defined LWIP_TCPIP_CORE_LOCKING_INPUT || defined __DOXYGEN__
202#define LWIP_TCPIP_CORE_LOCKING_INPUT 0
212#if !defined SYS_LIGHTWEIGHT_PROT || defined __DOXYGEN__
213#define SYS_LIGHTWEIGHT_PROT 1
226#if !defined LWIP_ASSERT_CORE_LOCKED || defined __DOXYGEN__
227#define LWIP_ASSERT_CORE_LOCKED()
235#if !defined LWIP_MARK_TCPIP_THREAD || defined __DOXYGEN__
236#define LWIP_MARK_TCPIP_THREAD()
257#if !defined MEM_LIBC_MALLOC || defined __DOXYGEN__
258#define MEM_LIBC_MALLOC 0
270#if !defined MEMP_MEM_MALLOC || defined __DOXYGEN__
271#define MEMP_MEM_MALLOC 0
279#if !defined MEMP_MEM_INIT || defined __DOXYGEN__
280#define MEMP_MEM_INIT 0
288#if !defined MEM_ALIGNMENT || defined __DOXYGEN__
289#define MEM_ALIGNMENT 1
296#if !defined MEM_SIZE || defined __DOXYGEN__
309#if !defined MEMP_OVERFLOW_CHECK || defined __DOXYGEN__
310#define MEMP_OVERFLOW_CHECK 0
317#if !defined MEMP_SANITY_CHECK || defined __DOXYGEN__
318#define MEMP_SANITY_CHECK 0
330#if !defined MEM_OVERFLOW_CHECK || defined __DOXYGEN__
331#define MEM_OVERFLOW_CHECK 0
338#if !defined MEM_SANITY_CHECK || defined __DOXYGEN__
339#define MEM_SANITY_CHECK 0
348#if !defined MEM_USE_POOLS || defined __DOXYGEN__
349#define MEM_USE_POOLS 0
356#if !defined MEM_USE_POOLS_TRY_BIGGER_POOL || defined __DOXYGEN__
357#define MEM_USE_POOLS_TRY_BIGGER_POOL 0
366#if !defined MEMP_USE_CUSTOM_POOLS || defined __DOXYGEN__
367#define MEMP_USE_CUSTOM_POOLS 0
388#if !defined LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT || defined __DOXYGEN__
389#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
410#if !defined MEMP_NUM_PBUF || defined __DOXYGEN__
411#define MEMP_NUM_PBUF 16
418#if !defined MEMP_NUM_RAW_PCB || defined __DOXYGEN__
419#define MEMP_NUM_RAW_PCB 4
427#if !defined MEMP_NUM_UDP_PCB || defined __DOXYGEN__
428#define MEMP_NUM_UDP_PCB 4
435#if !defined MEMP_NUM_TCP_PCB || defined __DOXYGEN__
436#define MEMP_NUM_TCP_PCB 5
443#if !defined MEMP_NUM_TCP_PCB_LISTEN || defined __DOXYGEN__
444#define MEMP_NUM_TCP_PCB_LISTEN 8
451#if !defined MEMP_NUM_TCP_SEG || defined __DOXYGEN__
452#define MEMP_NUM_TCP_SEG 16
461#if !defined MEMP_NUM_ALTCP_PCB || defined __DOXYGEN__
462#define MEMP_NUM_ALTCP_PCB MEMP_NUM_TCP_PCB
469#if !defined MEMP_NUM_REASSDATA || defined __DOXYGEN__
470#define MEMP_NUM_REASSDATA 5
480#if !defined MEMP_NUM_FRAG_PBUF || defined __DOXYGEN__
481#define MEMP_NUM_FRAG_PBUF 15
490#if !defined MEMP_NUM_ARP_QUEUE || defined __DOXYGEN__
491#define MEMP_NUM_ARP_QUEUE 30
500#if !defined MEMP_NUM_IGMP_GROUP || defined __DOXYGEN__
501#define MEMP_NUM_IGMP_GROUP 8
508#define LWIP_NUM_SYS_TIMEOUT_INTERNAL (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_NUM_TIMEOUTS + (LWIP_IPV6 * (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD)))
515#if !defined MEMP_NUM_SYS_TIMEOUT || defined __DOXYGEN__
516#define MEMP_NUM_SYS_TIMEOUT LWIP_NUM_SYS_TIMEOUT_INTERNAL
523#if !defined MEMP_NUM_NETBUF || defined __DOXYGEN__
524#define MEMP_NUM_NETBUF 2
531#if !defined MEMP_NUM_NETCONN || defined __DOXYGEN__
532#define MEMP_NUM_NETCONN 4
540#if !defined MEMP_NUM_SELECT_CB || defined __DOXYGEN__
541#define MEMP_NUM_SELECT_CB 4
549#if !defined MEMP_NUM_TCPIP_MSG_API || defined __DOXYGEN__
550#define MEMP_NUM_TCPIP_MSG_API 8
558#if !defined MEMP_NUM_TCPIP_MSG_INPKT || defined __DOXYGEN__
559#define MEMP_NUM_TCPIP_MSG_INPKT 8
566#if !defined MEMP_NUM_NETDB || defined __DOXYGEN__
567#define MEMP_NUM_NETDB 1
574#if !defined MEMP_NUM_LOCALHOSTLIST || defined __DOXYGEN__
575#define MEMP_NUM_LOCALHOSTLIST 1
581#if !defined PBUF_POOL_SIZE || defined __DOXYGEN__
582#define PBUF_POOL_SIZE 16
588#if !defined MEMP_NUM_API_MSG || defined __DOXYGEN__
589#define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API
594#if !defined MEMP_NUM_DNS_API_MSG || defined __DOXYGEN__
595#define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API
601#if !defined MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA || defined __DOXYGEN__
602#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API
608#if !defined MEMP_NUM_NETIFAPI_MSG || defined __DOXYGEN__
609#define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API
628#if !defined LWIP_ARP || defined __DOXYGEN__
635#if !defined ARP_TABLE_SIZE || defined __DOXYGEN__
636#define ARP_TABLE_SIZE 10
643#if !defined ARP_MAXAGE || defined __DOXYGEN__
644#define ARP_MAXAGE 300
654#if !defined ARP_QUEUEING || defined __DOXYGEN__
655#define ARP_QUEUEING 0
662#if !defined ARP_QUEUE_LEN || defined __DOXYGEN__
663#define ARP_QUEUE_LEN 3
676#if !defined ETHARP_SUPPORT_VLAN || defined __DOXYGEN__
677#define ETHARP_SUPPORT_VLAN 0
682#if !defined LWIP_ETHERNET || defined __DOXYGEN__
683#define LWIP_ETHERNET LWIP_ARP
691#if !defined ETH_PAD_SIZE || defined __DOXYGEN__
692#define ETH_PAD_SIZE 0
698#if !defined ETHARP_SUPPORT_STATIC_ENTRIES || defined __DOXYGEN__
699#define ETHARP_SUPPORT_STATIC_ENTRIES 0
706#if !defined ETHARP_TABLE_MATCH_NETIF || defined __DOXYGEN__
707#define ETHARP_TABLE_MATCH_NETIF !LWIP_SINGLE_NETIF
726#if !defined LWIP_IPV4 || defined __DOXYGEN__
735#if !defined IP_FORWARD || defined __DOXYGEN__
744#if !defined IP_REASSEMBLY || defined __DOXYGEN__
745#define IP_REASSEMBLY 1
753#if !defined IP_FRAG || defined __DOXYGEN__
762#define IP_REASSEMBLY 0
772#if !defined IP_OPTIONS_ALLOWED || defined __DOXYGEN__
773#define IP_OPTIONS_ALLOWED 1
781#if !defined IP_REASS_MAXAGE || defined __DOXYGEN__
782#define IP_REASS_MAXAGE 15
793#if !defined IP_REASS_MAX_PBUFS || defined __DOXYGEN__
794#define IP_REASS_MAX_PBUFS 10
800#if !defined IP_DEFAULT_TTL || defined __DOXYGEN__
801#define IP_DEFAULT_TTL 255
809#if !defined IP_SOF_BROADCAST || defined __DOXYGEN__
810#define IP_SOF_BROADCAST 0
817#if !defined IP_SOF_BROADCAST_RECV || defined __DOXYGEN__
818#define IP_SOF_BROADCAST_RECV 0
828#if !defined IP_FORWARD_ALLOW_TX_ON_RX_NETIF || defined __DOXYGEN__
829#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
849#if !defined LWIP_ICMP || defined __DOXYGEN__
856#if !defined ICMP_TTL || defined __DOXYGEN__
857#define ICMP_TTL IP_DEFAULT_TTL
863#if !defined LWIP_BROADCAST_PING || defined __DOXYGEN__
864#define LWIP_BROADCAST_PING 0
870#if !defined LWIP_MULTICAST_PING || defined __DOXYGEN__
871#define LWIP_MULTICAST_PING 0
890#if !defined LWIP_RAW || defined __DOXYGEN__
897#if !defined RAW_TTL || defined __DOXYGEN__
898#define RAW_TTL IP_DEFAULT_TTL
917#if !defined LWIP_DHCP || defined __DOXYGEN__
929#if !defined DHCP_DOES_ARP_CHECK || defined __DOXYGEN__
930#define DHCP_DOES_ARP_CHECK (LWIP_DHCP && LWIP_ARP)
936#if !defined LWIP_DHCP_BOOTP_FILE || defined __DOXYGEN__
937#define LWIP_DHCP_BOOTP_FILE 0
945#if !defined LWIP_DHCP_GET_NTP_SRV || defined __DOXYGEN__
946#define LWIP_DHCP_GET_NTP_SRV 0
952#if !defined LWIP_DHCP_MAX_NTP_SERVERS || defined __DOXYGEN__
953#define LWIP_DHCP_MAX_NTP_SERVERS 1
961#if !defined LWIP_DHCP_MAX_DNS_SERVERS || defined __DOXYGEN__
962#define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
981#if !defined LWIP_AUTOIP || defined __DOXYGEN__
994#if !defined LWIP_DHCP_AUTOIP_COOP || defined __DOXYGEN__
995#define LWIP_DHCP_AUTOIP_COOP 0
1005#if !defined LWIP_DHCP_AUTOIP_COOP_TRIES || defined __DOXYGEN__
1006#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
1027#if !defined LWIP_MIB2_CALLBACKS || defined __DOXYGEN__
1028#define LWIP_MIB2_CALLBACKS 0
1049#if !defined LWIP_MULTICAST_TX_OPTIONS || defined __DOXYGEN__
1050#define LWIP_MULTICAST_TX_OPTIONS ((LWIP_IGMP || LWIP_IPV6_MLD) && (LWIP_UDP || LWIP_RAW))
1069#if !defined LWIP_IGMP || defined __DOXYGEN__
1094#if !defined LWIP_DNS || defined __DOXYGEN__
1099#if !defined DNS_TABLE_SIZE || defined __DOXYGEN__
1100#define DNS_TABLE_SIZE 4
1104#if !defined DNS_MAX_NAME_LENGTH || defined __DOXYGEN__
1105#define DNS_MAX_NAME_LENGTH 256
1112#if !defined DNS_MAX_SERVERS || defined __DOXYGEN__
1113#define DNS_MAX_SERVERS 2
1117#if !defined DNS_MAX_RETRIES || defined __DOXYGEN__
1118#define DNS_MAX_RETRIES 4
1122#if !defined DNS_DOES_NAME_CHECK || defined __DOXYGEN__
1123#define DNS_DOES_NAME_CHECK 1
1130#if !defined LWIP_DNS_SECURE || defined __DOXYGEN__
1131#define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)
1135#define LWIP_DNS_SECURE_RAND_XID 1
1136#define LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING 2
1137#define LWIP_DNS_SECURE_RAND_SRC_PORT 4
1147#if !defined DNS_LOCAL_HOSTLIST || defined __DOXYGEN__
1148#define DNS_LOCAL_HOSTLIST 0
1153#if !defined DNS_LOCAL_HOSTLIST_IS_DYNAMIC || defined __DOXYGEN__
1154#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
1159#if !defined LWIP_DNS_SUPPORT_MDNS_QUERIES || defined __DOXYGEN__
1160#define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
1179#if !defined LWIP_UDP || defined __DOXYGEN__
1186#if !defined LWIP_UDPLITE || defined __DOXYGEN__
1187#define LWIP_UDPLITE 0
1193#if !defined UDP_TTL || defined __DOXYGEN__
1194#define UDP_TTL IP_DEFAULT_TTL
1200#if !defined LWIP_NETBUF_RECVINFO || defined __DOXYGEN__
1201#define LWIP_NETBUF_RECVINFO 0
1220#if !defined LWIP_TCP || defined __DOXYGEN__
1227#if !defined TCP_TTL || defined __DOXYGEN__
1228#define TCP_TTL IP_DEFAULT_TTL
1238#if !defined TCP_WND || defined __DOXYGEN__
1239#define TCP_WND (4 * TCP_MSS)
1245#if !defined TCP_MAXRTX || defined __DOXYGEN__
1246#define TCP_MAXRTX 12
1252#if !defined TCP_SYNMAXRTX || defined __DOXYGEN__
1253#define TCP_SYNMAXRTX 6
1260#if !defined TCP_QUEUE_OOSEQ || defined __DOXYGEN__
1261#define TCP_QUEUE_OOSEQ LWIP_TCP
1267#if !defined LWIP_TCP_SACK_OUT || defined __DOXYGEN__
1268#define LWIP_TCP_SACK_OUT 0
1281#if !defined LWIP_TCP_MAX_SACK_NUM || defined __DOXYGEN__
1282#define LWIP_TCP_MAX_SACK_NUM 4
1292#if !defined TCP_MSS || defined __DOXYGEN__
1304#if !defined TCP_CALCULATE_EFF_SEND_MSS || defined __DOXYGEN__
1305#define TCP_CALCULATE_EFF_SEND_MSS 1
1313#if !defined TCP_SND_BUF || defined __DOXYGEN__
1314#define TCP_SND_BUF (2 * TCP_MSS)
1321#if !defined TCP_SND_QUEUELEN || defined __DOXYGEN__
1322#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
1330#if !defined TCP_SNDLOWAT || defined __DOXYGEN__
1331#define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
1339#if !defined TCP_SNDQUEUELOWAT || defined __DOXYGEN__
1340#define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
1348#if !defined TCP_OOSEQ_MAX_BYTES || defined __DOXYGEN__
1349#define TCP_OOSEQ_MAX_BYTES 0
1358#if !defined TCP_OOSEQ_BYTES_LIMIT
1359#if TCP_OOSEQ_MAX_BYTES
1360#define TCP_OOSEQ_BYTES_LIMIT(pcb) TCP_OOSEQ_MAX_BYTES
1361#elif defined __DOXYGEN__
1362#define TCP_OOSEQ_BYTES_LIMIT(pcb)
1371#if !defined TCP_OOSEQ_MAX_PBUFS || defined __DOXYGEN__
1372#define TCP_OOSEQ_MAX_PBUFS 0
1381#if !defined TCP_OOSEQ_PBUFS_LIMIT
1382#if TCP_OOSEQ_MAX_PBUFS
1383#define TCP_OOSEQ_PBUFS_LIMIT(pcb) TCP_OOSEQ_MAX_PBUFS
1384#elif defined __DOXYGEN__
1385#define TCP_OOSEQ_PBUFS_LIMIT(pcb)
1392#if !defined TCP_LISTEN_BACKLOG || defined __DOXYGEN__
1393#define TCP_LISTEN_BACKLOG 0
1401#if !defined TCP_DEFAULT_LISTEN_BACKLOG || defined __DOXYGEN__
1402#define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1419#if !defined TCP_OVERSIZE || defined __DOXYGEN__
1420#define TCP_OVERSIZE TCP_MSS
1429#if !defined LWIP_TCP_TIMESTAMPS || defined __DOXYGEN__
1430#define LWIP_TCP_TIMESTAMPS 0
1437#if !defined TCP_WND_UPDATE_THRESHOLD || defined __DOXYGEN__
1438#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4))
1448#if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API) || defined __DOXYGEN__
1449#define LWIP_EVENT_API 0
1450#define LWIP_CALLBACK_API 1
1452#ifndef LWIP_EVENT_API
1453#define LWIP_EVENT_API 0
1455#ifndef LWIP_CALLBACK_API
1456#define LWIP_CALLBACK_API 0
1468#if !defined LWIP_WND_SCALE || defined __DOXYGEN__
1469#define LWIP_WND_SCALE 0
1470#define TCP_RCV_SCALE 0
1478#if !defined LWIP_TCP_PCB_NUM_EXT_ARGS || defined __DOXYGEN__
1479#define LWIP_TCP_PCB_NUM_EXT_ARGS 0
1494#if !defined LWIP_ALTCP || defined __DOXYGEN__
1503#if !defined LWIP_ALTCP_TLS || defined __DOXYGEN__
1504#define LWIP_ALTCP_TLS 0
1526#if !defined PBUF_LINK_HLEN || defined __DOXYGEN__
1527#if defined LWIP_HOOK_VLAN_SET && !defined __DOXYGEN__
1528#define PBUF_LINK_HLEN (18 + ETH_PAD_SIZE)
1530#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1538#if !defined PBUF_LINK_ENCAPSULATION_HLEN || defined __DOXYGEN__
1539#define PBUF_LINK_ENCAPSULATION_HLEN 0
1547#if !defined PBUF_POOL_BUFSIZE || defined __DOXYGEN__
1548#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN)
1555#if !defined LWIP_PBUF_REF_T || defined __DOXYGEN__
1556#define LWIP_PBUF_REF_T u8_t
1576#if !defined LWIP_SINGLE_NETIF || defined __DOXYGEN__
1577#define LWIP_SINGLE_NETIF 0
1584#if !defined LWIP_NETIF_HOSTNAME || defined __DOXYGEN__
1585#define LWIP_NETIF_HOSTNAME 0
1591#if !defined LWIP_NETIF_API || defined __DOXYGEN__
1592#define LWIP_NETIF_API 0
1599#if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__
1600#define LWIP_NETIF_STATUS_CALLBACK 0
1608#if !defined LWIP_NETIF_EXT_STATUS_CALLBACK || defined __DOXYGEN__
1609#define LWIP_NETIF_EXT_STATUS_CALLBACK 0
1616#if !defined LWIP_NETIF_LINK_CALLBACK || defined __DOXYGEN__
1617#define LWIP_NETIF_LINK_CALLBACK 0
1624#if !defined LWIP_NETIF_REMOVE_CALLBACK || defined __DOXYGEN__
1625#define LWIP_NETIF_REMOVE_CALLBACK 0
1635#if !defined LWIP_NETIF_HWADDRHINT || defined __DOXYGEN__
1636#define LWIP_NETIF_HWADDRHINT 0
1657#if !defined LWIP_NETIF_TX_SINGLE_PBUF || defined __DOXYGEN__
1658#define LWIP_NETIF_TX_SINGLE_PBUF 0
1665#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
1666#define LWIP_NUM_NETIF_CLIENT_DATA 0
1687#if !defined LWIP_HAVE_LOOPIF || defined __DOXYGEN__
1688#define LWIP_HAVE_LOOPIF (LWIP_NETIF_LOOPBACK && !LWIP_SINGLE_NETIF)
1694#if !defined LWIP_LOOPIF_MULTICAST || defined __DOXYGEN__
1695#define LWIP_LOOPIF_MULTICAST 0
1702#if !defined LWIP_NETIF_LOOPBACK || defined __DOXYGEN__
1703#define LWIP_NETIF_LOOPBACK 0
1710#if !defined LWIP_LOOPBACK_MAX_PBUFS || defined __DOXYGEN__
1711#define LWIP_LOOPBACK_MAX_PBUFS 0
1727#if !defined LWIP_NETIF_LOOPBACK_MULTITHREADING || defined __DOXYGEN__
1728#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1747#if !defined TCPIP_THREAD_NAME || defined __DOXYGEN__
1748#define TCPIP_THREAD_NAME "tcpip_thread"
1756#if !defined TCPIP_THREAD_STACKSIZE || defined __DOXYGEN__
1757#define TCPIP_THREAD_STACKSIZE 0
1765#if !defined TCPIP_THREAD_PRIO || defined __DOXYGEN__
1766#define TCPIP_THREAD_PRIO 1
1774#if !defined TCPIP_MBOX_SIZE || defined __DOXYGEN__
1775#define TCPIP_MBOX_SIZE 0
1782#if !defined LWIP_TCPIP_THREAD_ALIVE || defined __DOXYGEN__
1783#define LWIP_TCPIP_THREAD_ALIVE()
1789#if !defined SLIPIF_THREAD_NAME || defined __DOXYGEN__
1790#define SLIPIF_THREAD_NAME "slipif_loop"
1798#if !defined SLIPIF_THREAD_STACKSIZE || defined __DOXYGEN__
1799#define SLIPIF_THREAD_STACKSIZE 0
1807#if !defined SLIPIF_THREAD_PRIO || defined __DOXYGEN__
1808#define SLIPIF_THREAD_PRIO 1
1814#if !defined DEFAULT_THREAD_NAME || defined __DOXYGEN__
1815#define DEFAULT_THREAD_NAME "lwIP"
1823#if !defined DEFAULT_THREAD_STACKSIZE || defined __DOXYGEN__
1824#define DEFAULT_THREAD_STACKSIZE 0
1832#if !defined DEFAULT_THREAD_PRIO || defined __DOXYGEN__
1833#define DEFAULT_THREAD_PRIO 1
1841#if !defined DEFAULT_RAW_RECVMBOX_SIZE || defined __DOXYGEN__
1842#define DEFAULT_RAW_RECVMBOX_SIZE 0
1850#if !defined DEFAULT_UDP_RECVMBOX_SIZE || defined __DOXYGEN__
1851#define DEFAULT_UDP_RECVMBOX_SIZE 0
1859#if !defined DEFAULT_TCP_RECVMBOX_SIZE || defined __DOXYGEN__
1860#define DEFAULT_TCP_RECVMBOX_SIZE 0
1868#if !defined DEFAULT_ACCEPTMBOX_SIZE || defined __DOXYGEN__
1869#define DEFAULT_ACCEPTMBOX_SIZE 0
1888#if !defined LWIP_NETCONN || defined __DOXYGEN__
1889#define LWIP_NETCONN 1
1895#if !defined LWIP_TCPIP_TIMEOUT || defined __DOXYGEN__
1896#define LWIP_TCPIP_TIMEOUT 0
1909#if !defined LWIP_NETCONN_SEM_PER_THREAD || defined __DOXYGEN__
1910#define LWIP_NETCONN_SEM_PER_THREAD 0
1921#if !defined LWIP_NETCONN_FULLDUPLEX || defined __DOXYGEN__
1922#define LWIP_NETCONN_FULLDUPLEX 0
1941#if !defined LWIP_SOCKET || defined __DOXYGEN__
1942#define LWIP_SOCKET 1
1951#if !defined LWIP_COMPAT_SOCKETS || defined __DOXYGEN__
1952#define LWIP_COMPAT_SOCKETS 1
1960#if !defined LWIP_POSIX_SOCKETS_IO_NAMES || defined __DOXYGEN__
1961#define LWIP_POSIX_SOCKETS_IO_NAMES 1
1971#if !defined LWIP_SOCKET_OFFSET || defined __DOXYGEN__
1972#define LWIP_SOCKET_OFFSET 0
1980#if !defined LWIP_TCP_KEEPALIVE || defined __DOXYGEN__
1981#define LWIP_TCP_KEEPALIVE 0
1988#if !defined LWIP_SO_SNDTIMEO || defined __DOXYGEN__
1989#define LWIP_SO_SNDTIMEO 0
1996#if !defined LWIP_SO_RCVTIMEO || defined __DOXYGEN__
1997#define LWIP_SO_RCVTIMEO 0
2004#if !defined LWIP_SO_SNDRCVTIMEO_NONSTANDARD || defined __DOXYGEN__
2005#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
2011#if !defined LWIP_SO_RCVBUF || defined __DOXYGEN__
2012#define LWIP_SO_RCVBUF 0
2018#if !defined LWIP_SO_LINGER || defined __DOXYGEN__
2019#define LWIP_SO_LINGER 0
2025#if !defined RECV_BUFSIZE_DEFAULT || defined __DOXYGEN__
2026#define RECV_BUFSIZE_DEFAULT INT_MAX
2032#if !defined LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT || defined __DOXYGEN__
2033#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
2039#if !defined SO_REUSE || defined __DOXYGEN__
2048#if !defined SO_REUSE_RXTOALL || defined __DOXYGEN__
2049#define SO_REUSE_RXTOALL 0
2060#if !defined LWIP_FIONREAD_LINUXMODE || defined __DOXYGEN__
2061#define LWIP_FIONREAD_LINUXMODE 0
2070#if !defined LWIP_SOCKET_SELECT || defined __DOXYGEN__
2071#define LWIP_SOCKET_SELECT 1
2078#if !defined LWIP_SOCKET_POLL || defined __DOXYGEN__
2079#define LWIP_SOCKET_POLL 1
2098#if !defined LWIP_STATS || defined __DOXYGEN__
2107#if !defined LWIP_STATS_DISPLAY || defined __DOXYGEN__
2108#define LWIP_STATS_DISPLAY 0
2114#if !defined LINK_STATS || defined __DOXYGEN__
2121#if !defined ETHARP_STATS || defined __DOXYGEN__
2122#define ETHARP_STATS (LWIP_ARP)
2128#if !defined IP_STATS || defined __DOXYGEN__
2136#if !defined IPFRAG_STATS || defined __DOXYGEN__
2137#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
2143#if !defined ICMP_STATS || defined __DOXYGEN__
2150#if !defined IGMP_STATS || defined __DOXYGEN__
2151#define IGMP_STATS (LWIP_IGMP)
2158#if !defined UDP_STATS || defined __DOXYGEN__
2159#define UDP_STATS (LWIP_UDP)
2166#if !defined TCP_STATS || defined __DOXYGEN__
2167#define TCP_STATS (LWIP_TCP)
2173#if !defined MEM_STATS || defined __DOXYGEN__
2174#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
2180#if !defined MEMP_STATS || defined __DOXYGEN__
2181#define MEMP_STATS (MEMP_MEM_MALLOC == 0)
2187#if !defined SYS_STATS || defined __DOXYGEN__
2188#define SYS_STATS (NO_SYS == 0)
2194#if !defined IP6_STATS || defined __DOXYGEN__
2195#define IP6_STATS (LWIP_IPV6)
2201#if !defined ICMP6_STATS || defined __DOXYGEN__
2202#define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6)
2208#if !defined IP6_FRAG_STATS || defined __DOXYGEN__
2209#define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
2215#if !defined MLD6_STATS || defined __DOXYGEN__
2216#define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD)
2222#if !defined ND6_STATS || defined __DOXYGEN__
2223#define ND6_STATS (LWIP_IPV6)
2229#if !defined MIB2_STATS || defined __DOXYGEN__
2236#define ETHARP_STATS 0
2238#define IPFRAG_STATS 0
2246#define LWIP_STATS_DISPLAY 0
2248#define ICMP6_STATS 0
2249#define IP6_FRAG_STATS 0
2274#if !defined LWIP_CHECKSUM_CTRL_PER_NETIF || defined __DOXYGEN__
2275#define LWIP_CHECKSUM_CTRL_PER_NETIF 0
2281#if !defined CHECKSUM_GEN_IP || defined __DOXYGEN__
2282#define CHECKSUM_GEN_IP 1
2288#if !defined CHECKSUM_GEN_UDP || defined __DOXYGEN__
2289#define CHECKSUM_GEN_UDP 1
2295#if !defined CHECKSUM_GEN_TCP || defined __DOXYGEN__
2296#define CHECKSUM_GEN_TCP 1
2302#if !defined CHECKSUM_GEN_ICMP || defined __DOXYGEN__
2303#define CHECKSUM_GEN_ICMP 1
2309#if !defined CHECKSUM_GEN_ICMP6 || defined __DOXYGEN__
2310#define CHECKSUM_GEN_ICMP6 1
2316#if !defined CHECKSUM_CHECK_IP || defined __DOXYGEN__
2317#define CHECKSUM_CHECK_IP 1
2323#if !defined CHECKSUM_CHECK_UDP || defined __DOXYGEN__
2324#define CHECKSUM_CHECK_UDP 1
2330#if !defined CHECKSUM_CHECK_TCP || defined __DOXYGEN__
2331#define CHECKSUM_CHECK_TCP 1
2337#if !defined CHECKSUM_CHECK_ICMP || defined __DOXYGEN__
2338#define CHECKSUM_CHECK_ICMP 1
2344#if !defined CHECKSUM_CHECK_ICMP6 || defined __DOXYGEN__
2345#define CHECKSUM_CHECK_ICMP6 1
2352#if !defined LWIP_CHECKSUM_ON_COPY || defined __DOXYGEN__
2353#define LWIP_CHECKSUM_ON_COPY 0
2372#if !defined LWIP_IPV6 || defined __DOXYGEN__
2381#if !defined IPV6_REASS_MAXAGE || defined __DOXYGEN__
2382#define IPV6_REASS_MAXAGE 60
2402#if !defined LWIP_IPV6_SCOPES || defined __DOXYGEN__
2403#define LWIP_IPV6_SCOPES (LWIP_IPV6 && !LWIP_SINGLE_NETIF)
2412#if !defined LWIP_IPV6_SCOPES_DEBUG || defined __DOXYGEN__
2413#define LWIP_IPV6_SCOPES_DEBUG 0
2419#if !defined LWIP_IPV6_NUM_ADDRESSES || defined __DOXYGEN__
2420#define LWIP_IPV6_NUM_ADDRESSES 3
2426#if !defined LWIP_IPV6_FORWARD || defined __DOXYGEN__
2427#define LWIP_IPV6_FORWARD 0
2433#if !defined LWIP_IPV6_FRAG || defined __DOXYGEN__
2434#define LWIP_IPV6_FRAG 1
2440#if !defined LWIP_IPV6_REASS || defined __DOXYGEN__
2441#define LWIP_IPV6_REASS LWIP_IPV6
2448#if !defined LWIP_IPV6_SEND_ROUTER_SOLICIT || defined __DOXYGEN__
2449#define LWIP_IPV6_SEND_ROUTER_SOLICIT 1
2455#if !defined LWIP_IPV6_AUTOCONFIG || defined __DOXYGEN__
2456#define LWIP_IPV6_AUTOCONFIG LWIP_IPV6
2466#if !defined LWIP_IPV6_ADDRESS_LIFETIMES || defined __DOXYGEN__
2467#define LWIP_IPV6_ADDRESS_LIFETIMES LWIP_IPV6_AUTOCONFIG
2473#if !defined LWIP_IPV6_DUP_DETECT_ATTEMPTS || defined __DOXYGEN__
2474#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1
2488#if !defined LWIP_ICMP6 || defined __DOXYGEN__
2489#define LWIP_ICMP6 LWIP_IPV6
2496#if !defined LWIP_ICMP6_DATASIZE || defined __DOXYGEN__
2497#define LWIP_ICMP6_DATASIZE 8
2503#if !defined LWIP_ICMP6_HL || defined __DOXYGEN__
2504#define LWIP_ICMP6_HL 255
2520#if !defined LWIP_IPV6_MLD || defined __DOXYGEN__
2521#define LWIP_IPV6_MLD LWIP_IPV6
2530#if !defined MEMP_NUM_MLD6_GROUP || defined __DOXYGEN__
2531#define MEMP_NUM_MLD6_GROUP 4
2546#if !defined LWIP_ND6_QUEUEING || defined __DOXYGEN__
2547#define LWIP_ND6_QUEUEING LWIP_IPV6
2553#if !defined MEMP_NUM_ND6_QUEUE || defined __DOXYGEN__
2554#define MEMP_NUM_ND6_QUEUE 20
2560#if !defined LWIP_ND6_NUM_NEIGHBORS || defined __DOXYGEN__
2561#define LWIP_ND6_NUM_NEIGHBORS 10
2567#if !defined LWIP_ND6_NUM_DESTINATIONS || defined __DOXYGEN__
2568#define LWIP_ND6_NUM_DESTINATIONS 10
2574#if !defined LWIP_ND6_NUM_PREFIXES || defined __DOXYGEN__
2575#define LWIP_ND6_NUM_PREFIXES 5
2581#if !defined LWIP_ND6_NUM_ROUTERS || defined __DOXYGEN__
2582#define LWIP_ND6_NUM_ROUTERS 3
2589#if !defined LWIP_ND6_MAX_MULTICAST_SOLICIT || defined __DOXYGEN__
2590#define LWIP_ND6_MAX_MULTICAST_SOLICIT 3
2597#if !defined LWIP_ND6_MAX_UNICAST_SOLICIT || defined __DOXYGEN__
2598#define LWIP_ND6_MAX_UNICAST_SOLICIT 3
2604#if !defined LWIP_ND6_MAX_ANYCAST_DELAY_TIME || defined __DOXYGEN__
2605#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000
2611#if !defined LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT || defined __DOXYGEN__
2612#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3
2619#if !defined LWIP_ND6_REACHABLE_TIME || defined __DOXYGEN__
2620#define LWIP_ND6_REACHABLE_TIME 30000
2626#if !defined LWIP_ND6_RETRANS_TIMER || defined __DOXYGEN__
2627#define LWIP_ND6_RETRANS_TIMER 1000
2634#if !defined LWIP_ND6_DELAY_FIRST_PROBE_TIME || defined __DOXYGEN__
2635#define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000
2642#if !defined LWIP_ND6_ALLOW_RA_UPDATES || defined __DOXYGEN__
2643#define LWIP_ND6_ALLOW_RA_UPDATES 1
2651#if !defined LWIP_ND6_TCP_REACHABILITY_HINTS || defined __DOXYGEN__
2652#define LWIP_ND6_TCP_REACHABILITY_HINTS 1
2660#if !defined LWIP_ND6_RDNSS_MAX_DNS_SERVERS || defined __DOXYGEN__
2661#define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
2675#if !defined LWIP_IPV6_DHCP6 || defined __DOXYGEN__
2676#define LWIP_IPV6_DHCP6 0
2683#if !defined LWIP_IPV6_DHCP6_STATEFUL || defined __DOXYGEN__
2684#define LWIP_IPV6_DHCP6_STATEFUL 0
2690#if !defined LWIP_IPV6_DHCP6_STATELESS || defined __DOXYGEN__
2691#define LWIP_IPV6_DHCP6_STATELESS LWIP_IPV6_DHCP6
2699#if !defined LWIP_DHCP6_GET_NTP_SRV || defined __DOXYGEN__
2700#define LWIP_DHCP6_GET_NTP_SRV 0
2706#if !defined LWIP_DHCP6_MAX_NTP_SERVERS || defined __DOXYGEN__
2707#define LWIP_DHCP6_MAX_NTP_SERVERS 1
2715#if !defined LWIP_DHCP6_MAX_DNS_SERVERS || defined __DOXYGEN__
2716#define LWIP_DHCP6_MAX_DNS_SERVERS DNS_MAX_SERVERS
2741#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h"
2766#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port)
2796#define LWIP_HOOK_TCP_INPACKET_PCB(pcb, hdr, optlen, opt1len, opt2, p)
2818#define LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH(pcb, internal_len)
2842#define LWIP_HOOK_TCP_OUT_ADD_TCPOPTS(p, hdr, pcb, opts)
2861#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif)
2877#define LWIP_HOOK_IP4_ROUTE()
2894#define LWIP_HOOK_IP4_ROUTE_SRC(src, dest)
2915#define LWIP_HOOK_IP4_CANFORWARD(src, dest)
2937#define LWIP_HOOK_ETHARP_GET_GW(netif, dest)
2956#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif)
2973#define LWIP_HOOK_IP6_ROUTE(src, dest)
2995#define LWIP_HOOK_ND6_GET_GW(netif, dest)
3013#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr)
3037#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type)
3048#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type)
3067#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
3096#define LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, state, msg, msg_type, options_len_ptr)
3124#define LWIP_HOOK_DHCP_PARSE_OPTION(netif, dhcp, state, msg, msg_type, option, len, pbuf, offset)
3152#define LWIP_HOOK_DHCP6_APPEND_OPTIONS(netif, dhcp6, state, msg, msg_type, options_len_ptr, max_len)
3175#define LWIP_HOOK_SOCKETS_SETSOCKOPT(s, sock, level, optname, optval, optlen, err)
3198#define LWIP_HOOK_SOCKETS_GETSOCKOPT(s, sock, level, optname, optval, optlen, err)
3221#define LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, addrtype, err)
3243#if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__
3244#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
3252#if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__
3253#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
3259#if !defined ETHARP_DEBUG || defined __DOXYGEN__
3260#define ETHARP_DEBUG LWIP_DBG_OFF
3266#if !defined NETIF_DEBUG || defined __DOXYGEN__
3267#define NETIF_DEBUG LWIP_DBG_OFF
3273#if !defined PBUF_DEBUG || defined __DOXYGEN__
3274#define PBUF_DEBUG LWIP_DBG_OFF
3280#if !defined API_LIB_DEBUG || defined __DOXYGEN__
3281#define API_LIB_DEBUG LWIP_DBG_OFF
3287#if !defined API_MSG_DEBUG || defined __DOXYGEN__
3288#define API_MSG_DEBUG LWIP_DBG_OFF
3294#if !defined SOCKETS_DEBUG || defined __DOXYGEN__
3295#define SOCKETS_DEBUG LWIP_DBG_OFF
3301#if !defined ICMP_DEBUG || defined __DOXYGEN__
3302#define ICMP_DEBUG LWIP_DBG_OFF
3308#if !defined IGMP_DEBUG || defined __DOXYGEN__
3309#define IGMP_DEBUG LWIP_DBG_OFF
3315#if !defined INET_DEBUG || defined __DOXYGEN__
3316#define INET_DEBUG LWIP_DBG_OFF
3322#if !defined IP_DEBUG || defined __DOXYGEN__
3323#define IP_DEBUG LWIP_DBG_OFF
3329#if !defined IP_REASS_DEBUG || defined __DOXYGEN__
3330#define IP_REASS_DEBUG LWIP_DBG_OFF
3336#if !defined RAW_DEBUG || defined __DOXYGEN__
3337#define RAW_DEBUG LWIP_DBG_OFF
3343#if !defined MEM_DEBUG || defined __DOXYGEN__
3344#define MEM_DEBUG LWIP_DBG_OFF
3350#if !defined MEMP_DEBUG || defined __DOXYGEN__
3351#define MEMP_DEBUG LWIP_DBG_OFF
3357#if !defined SYS_DEBUG || defined __DOXYGEN__
3358#define SYS_DEBUG LWIP_DBG_OFF
3364#if !defined TIMERS_DEBUG || defined __DOXYGEN__
3365#define TIMERS_DEBUG LWIP_DBG_OFF
3371#if !defined TCP_DEBUG || defined __DOXYGEN__
3372#define TCP_DEBUG LWIP_DBG_OFF
3378#if !defined TCP_INPUT_DEBUG || defined __DOXYGEN__
3379#define TCP_INPUT_DEBUG LWIP_DBG_OFF
3385#if !defined TCP_FR_DEBUG || defined __DOXYGEN__
3386#define TCP_FR_DEBUG LWIP_DBG_OFF
3393#if !defined TCP_RTO_DEBUG || defined __DOXYGEN__
3394#define TCP_RTO_DEBUG LWIP_DBG_OFF
3400#if !defined TCP_CWND_DEBUG || defined __DOXYGEN__
3401#define TCP_CWND_DEBUG LWIP_DBG_OFF
3407#if !defined TCP_WND_DEBUG || defined __DOXYGEN__
3408#define TCP_WND_DEBUG LWIP_DBG_OFF
3414#if !defined TCP_OUTPUT_DEBUG || defined __DOXYGEN__
3415#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
3421#if !defined TCP_RST_DEBUG || defined __DOXYGEN__
3422#define TCP_RST_DEBUG LWIP_DBG_OFF
3428#if !defined TCP_QLEN_DEBUG || defined __DOXYGEN__
3429#define TCP_QLEN_DEBUG LWIP_DBG_OFF
3435#if !defined UDP_DEBUG || defined __DOXYGEN__
3436#define UDP_DEBUG LWIP_DBG_OFF
3442#if !defined TCPIP_DEBUG || defined __DOXYGEN__
3443#define TCPIP_DEBUG LWIP_DBG_OFF
3449#if !defined SLIP_DEBUG || defined __DOXYGEN__
3450#define SLIP_DEBUG LWIP_DBG_OFF
3456#if !defined DHCP_DEBUG || defined __DOXYGEN__
3457#define DHCP_DEBUG LWIP_DBG_OFF
3463#if !defined AUTOIP_DEBUG || defined __DOXYGEN__
3464#define AUTOIP_DEBUG LWIP_DBG_OFF
3470#if !defined DNS_DEBUG || defined __DOXYGEN__
3471#define DNS_DEBUG LWIP_DBG_OFF
3477#if !defined IP6_DEBUG || defined __DOXYGEN__
3478#define IP6_DEBUG LWIP_DBG_OFF
3484#if !defined DHCP6_DEBUG || defined __DOXYGEN__
3485#define DHCP6_DEBUG LWIP_DBG_OFF
3494#if !defined LWIP_TESTMODE
3495#define LWIP_TESTMODE 0
3512#if !defined LWIP_PERF || defined __DOXYGEN__