Go to the documentation of this file.
63#if !defined LWIP_HDR_OPT_H
107#if !defined NO_SYS || defined __DOXYGEN__
124#if !defined LWIP_TIMERS || defined __DOXYGEN__
125#ifdef NO_SYS_NO_TIMERS
126#define LWIP_TIMERS (!NO_SYS || (NO_SYS && !NO_SYS_NO_TIMERS))
139#if !defined LWIP_TIMERS_CUSTOM || defined __DOXYGEN__
140#define LWIP_TIMERS_CUSTOM 0
155#if !defined MEMCPY || defined __DOXYGEN__
156#define MEMCPY(dst,src,len) memcpy(dst,src,len)
163#if !defined SMEMCPY || defined __DOXYGEN__
164#define SMEMCPY(dst,src,len) memcpy(dst,src,len)
187#if !defined LWIP_MPU_COMPATIBLE || defined __DOXYGEN__
188#define LWIP_MPU_COMPATIBLE 0
199#if !defined LWIP_TCPIP_CORE_LOCKING || defined __DOXYGEN__
200#define LWIP_TCPIP_CORE_LOCKING 1
211#if !defined LWIP_TCPIP_CORE_LOCKING_INPUT || defined __DOXYGEN__
212#define LWIP_TCPIP_CORE_LOCKING_INPUT 0
222#if !defined SYS_LIGHTWEIGHT_PROT || defined __DOXYGEN__
223#define SYS_LIGHTWEIGHT_PROT 1
244#if !defined MEM_LIBC_MALLOC || defined __DOXYGEN__
245#define MEM_LIBC_MALLOC 0
257#if !defined MEMP_MEM_MALLOC || defined __DOXYGEN__
258#define MEMP_MEM_MALLOC 0
266#if !defined MEM_ALIGNMENT || defined __DOXYGEN__
267#define MEM_ALIGNMENT 1
274#if !defined MEM_SIZE || defined __DOXYGEN__
287#if !defined MEMP_OVERFLOW_CHECK || defined __DOXYGEN__
288#define MEMP_OVERFLOW_CHECK 0
295#if !defined MEMP_SANITY_CHECK || defined __DOXYGEN__
296#define MEMP_SANITY_CHECK 0
305#if !defined MEM_USE_POOLS || defined __DOXYGEN__
306#define MEM_USE_POOLS 0
313#if !defined MEM_USE_POOLS_TRY_BIGGER_POOL || defined __DOXYGEN__
314#define MEM_USE_POOLS_TRY_BIGGER_POOL 0
323#if !defined MEMP_USE_CUSTOM_POOLS || defined __DOXYGEN__
324#define MEMP_USE_CUSTOM_POOLS 0
345#if !defined LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT || defined __DOXYGEN__
346#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
367#if !defined MEMP_NUM_PBUF || defined __DOXYGEN__
368#define MEMP_NUM_PBUF 16
375#if !defined MEMP_NUM_RAW_PCB || defined __DOXYGEN__
376#define MEMP_NUM_RAW_PCB 4
384#if !defined MEMP_NUM_UDP_PCB || defined __DOXYGEN__
385#define MEMP_NUM_UDP_PCB 4
392#if !defined MEMP_NUM_TCP_PCB || defined __DOXYGEN__
393#define MEMP_NUM_TCP_PCB 5
400#if !defined MEMP_NUM_TCP_PCB_LISTEN || defined __DOXYGEN__
401#define MEMP_NUM_TCP_PCB_LISTEN 8
408#if !defined MEMP_NUM_TCP_SEG || defined __DOXYGEN__
409#define MEMP_NUM_TCP_SEG 16
416#if !defined MEMP_NUM_REASSDATA || defined __DOXYGEN__
417#define MEMP_NUM_REASSDATA 5
427#if !defined MEMP_NUM_FRAG_PBUF || defined __DOXYGEN__
428#define MEMP_NUM_FRAG_PBUF 15
437#if !defined MEMP_NUM_ARP_QUEUE || defined __DOXYGEN__
438#define MEMP_NUM_ARP_QUEUE 30
447#if !defined MEMP_NUM_IGMP_GROUP || defined __DOXYGEN__
448#define MEMP_NUM_IGMP_GROUP 8
456#if !defined MEMP_NUM_SYS_TIMEOUT || defined __DOXYGEN__
457#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))
464#if !defined MEMP_NUM_NETBUF || defined __DOXYGEN__
465#define MEMP_NUM_NETBUF 2
472#if !defined MEMP_NUM_NETCONN || defined __DOXYGEN__
473#define MEMP_NUM_NETCONN 4
481#if !defined MEMP_NUM_TCPIP_MSG_API || defined __DOXYGEN__
482#define MEMP_NUM_TCPIP_MSG_API 8
490#if !defined MEMP_NUM_TCPIP_MSG_INPKT || defined __DOXYGEN__
491#define MEMP_NUM_TCPIP_MSG_INPKT 8
498#if !defined MEMP_NUM_NETDB || defined __DOXYGEN__
499#define MEMP_NUM_NETDB 1
506#if !defined MEMP_NUM_LOCALHOSTLIST || defined __DOXYGEN__
507#define MEMP_NUM_LOCALHOSTLIST 1
513#if !defined PBUF_POOL_SIZE || defined __DOXYGEN__
514#define PBUF_POOL_SIZE 16
520#if !defined MEMP_NUM_API_MSG || defined __DOXYGEN__
521#define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API
526#if !defined MEMP_NUM_DNS_API_MSG || defined __DOXYGEN__
527#define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API
533#if !defined MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA || defined __DOXYGEN__
534#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API
540#if !defined MEMP_NUM_NETIFAPI_MSG || defined __DOXYGEN__
541#define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API
560#if !defined LWIP_ARP || defined __DOXYGEN__
567#if !defined ARP_TABLE_SIZE || defined __DOXYGEN__
568#define ARP_TABLE_SIZE 10
575#if !defined ARP_MAXAGE || defined __DOXYGEN__
576#define ARP_MAXAGE 300
586#if !defined ARP_QUEUEING || defined __DOXYGEN__
587#define ARP_QUEUEING 0
594#if !defined ARP_QUEUE_LEN || defined __DOXYGEN__
595#define ARP_QUEUE_LEN 3
608#if !defined ETHARP_SUPPORT_VLAN || defined __DOXYGEN__
609#define ETHARP_SUPPORT_VLAN 0
614#if !defined LWIP_ETHERNET || defined __DOXYGEN__
615#define LWIP_ETHERNET LWIP_ARP
623#if !defined ETH_PAD_SIZE || defined __DOXYGEN__
624#define ETH_PAD_SIZE 0
630#if !defined ETHARP_SUPPORT_STATIC_ENTRIES || defined __DOXYGEN__
631#define ETHARP_SUPPORT_STATIC_ENTRIES 0
638#if !defined ETHARP_TABLE_MATCH_NETIF || defined __DOXYGEN__
639#define ETHARP_TABLE_MATCH_NETIF 0
658#if !defined LWIP_IPV4 || defined __DOXYGEN__
667#if !defined IP_FORWARD || defined __DOXYGEN__
676#if !defined IP_REASSEMBLY || defined __DOXYGEN__
677#define IP_REASSEMBLY 1
685#if !defined IP_FRAG || defined __DOXYGEN__
694#define IP_REASSEMBLY 0
704#if !defined IP_OPTIONS_ALLOWED || defined __DOXYGEN__
705#define IP_OPTIONS_ALLOWED 1
713#if !defined IP_REASS_MAXAGE || defined __DOXYGEN__
714#define IP_REASS_MAXAGE 3
723#if !defined IP_REASS_MAX_PBUFS || defined __DOXYGEN__
724#define IP_REASS_MAX_PBUFS 10
730#if !defined IP_DEFAULT_TTL || defined __DOXYGEN__
731#define IP_DEFAULT_TTL 255
739#if !defined IP_SOF_BROADCAST || defined __DOXYGEN__
740#define IP_SOF_BROADCAST 0
747#if !defined IP_SOF_BROADCAST_RECV || defined __DOXYGEN__
748#define IP_SOF_BROADCAST_RECV 0
758#if !defined IP_FORWARD_ALLOW_TX_ON_RX_NETIF || defined __DOXYGEN__
759#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
767#if !defined LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS || defined __DOXYGEN__
768#define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS 0
788#if !defined LWIP_ICMP || defined __DOXYGEN__
795#if !defined ICMP_TTL || defined __DOXYGEN__
796#define ICMP_TTL (IP_DEFAULT_TTL)
802#if !defined LWIP_BROADCAST_PING || defined __DOXYGEN__
803#define LWIP_BROADCAST_PING 0
809#if !defined LWIP_MULTICAST_PING || defined __DOXYGEN__
810#define LWIP_MULTICAST_PING 0
829#if !defined LWIP_RAW || defined __DOXYGEN__
836#if !defined RAW_TTL || defined __DOXYGEN__
837#define RAW_TTL (IP_DEFAULT_TTL)
856#if !defined LWIP_DHCP || defined __DOXYGEN__
868#if !defined DHCP_DOES_ARP_CHECK || defined __DOXYGEN__
869#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
878#if !defined LWIP_DHCP_CHECK_LINK_UP
879#define LWIP_DHCP_CHECK_LINK_UP 0
885#if !defined LWIP_DHCP_BOOTP_FILE || defined __DOXYGEN__
886#define LWIP_DHCP_BOOTP_FILE 0
894#if !defined LWIP_DHCP_GET_NTP_SRV || defined __DOXYGEN__
895#define LWIP_DHCP_GET_NTP_SRV 0
901#if !defined LWIP_DHCP_MAX_NTP_SERVERS || defined __DOXYGEN__
902#define LWIP_DHCP_MAX_NTP_SERVERS 1
910#if !defined LWIP_DHCP_MAX_DNS_SERVERS || defined __DOXYGEN__
911#define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
930#if !defined LWIP_AUTOIP || defined __DOXYGEN__
943#if !defined LWIP_DHCP_AUTOIP_COOP || defined __DOXYGEN__
944#define LWIP_DHCP_AUTOIP_COOP 0
954#if !defined LWIP_DHCP_AUTOIP_COOP_TRIES || defined __DOXYGEN__
955#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
976#if !defined LWIP_MIB2_CALLBACKS || defined __DOXYGEN__
977#define LWIP_MIB2_CALLBACKS 0
996#if !defined LWIP_IGMP || defined __DOXYGEN__
1008#if !defined LWIP_MULTICAST_TX_OPTIONS || defined __DOXYGEN__
1009#define LWIP_MULTICAST_TX_OPTIONS (LWIP_IGMP && LWIP_UDP)
1029#if !defined LWIP_DNS || defined __DOXYGEN__
1034#if !defined DNS_TABLE_SIZE || defined __DOXYGEN__
1035#define DNS_TABLE_SIZE 4
1039#if !defined DNS_MAX_NAME_LENGTH || defined __DOXYGEN__
1040#define DNS_MAX_NAME_LENGTH 256
1047#if !defined DNS_MAX_SERVERS || defined __DOXYGEN__
1048#define DNS_MAX_SERVERS 2
1052#if !defined DNS_DOES_NAME_CHECK || defined __DOXYGEN__
1053#define DNS_DOES_NAME_CHECK 1
1060#if !defined LWIP_DNS_SECURE || defined __DOXYGEN__
1061#define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)
1065#define LWIP_DNS_SECURE_RAND_XID 1
1066#define LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING 2
1067#define LWIP_DNS_SECURE_RAND_SRC_PORT 4
1077#if !defined DNS_LOCAL_HOSTLIST || defined __DOXYGEN__
1078#define DNS_LOCAL_HOSTLIST 0
1083#if !defined DNS_LOCAL_HOSTLIST_IS_DYNAMIC || defined __DOXYGEN__
1084#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
1089#if !defined LWIP_DNS_SUPPORT_MDNS_QUERIES || defined __DOXYGEN__
1090#define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
1109#if !defined LWIP_UDP || defined __DOXYGEN__
1116#if !defined LWIP_UDPLITE || defined __DOXYGEN__
1117#define LWIP_UDPLITE 0
1123#if !defined UDP_TTL || defined __DOXYGEN__
1124#define UDP_TTL (IP_DEFAULT_TTL)
1130#if !defined LWIP_NETBUF_RECVINFO || defined __DOXYGEN__
1131#define LWIP_NETBUF_RECVINFO 0
1150#if !defined LWIP_TCP || defined __DOXYGEN__
1157#if !defined TCP_TTL || defined __DOXYGEN__
1158#define TCP_TTL (IP_DEFAULT_TTL)
1168#if !defined TCP_WND || defined __DOXYGEN__
1169#define TCP_WND (4 * TCP_MSS)
1175#if !defined TCP_MAXRTX || defined __DOXYGEN__
1176#define TCP_MAXRTX 12
1182#if !defined TCP_SYNMAXRTX || defined __DOXYGEN__
1183#define TCP_SYNMAXRTX 6
1190#if !defined TCP_QUEUE_OOSEQ || defined __DOXYGEN__
1191#define TCP_QUEUE_OOSEQ (LWIP_TCP)
1201#if !defined TCP_MSS || defined __DOXYGEN__
1213#if !defined TCP_CALCULATE_EFF_SEND_MSS || defined __DOXYGEN__
1214#define TCP_CALCULATE_EFF_SEND_MSS 1
1222#if !defined TCP_SND_BUF || defined __DOXYGEN__
1223#define TCP_SND_BUF (2 * TCP_MSS)
1230#if !defined TCP_SND_QUEUELEN || defined __DOXYGEN__
1231#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
1239#if !defined TCP_SNDLOWAT || defined __DOXYGEN__
1240#define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
1248#if !defined TCP_SNDQUEUELOWAT || defined __DOXYGEN__
1249#define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
1256#if !defined TCP_OOSEQ_MAX_BYTES || defined __DOXYGEN__
1257#define TCP_OOSEQ_MAX_BYTES 0
1264#if !defined TCP_OOSEQ_MAX_PBUFS || defined __DOXYGEN__
1265#define TCP_OOSEQ_MAX_PBUFS 0
1271#if !defined TCP_LISTEN_BACKLOG || defined __DOXYGEN__
1272#define TCP_LISTEN_BACKLOG 0
1280#if !defined TCP_DEFAULT_LISTEN_BACKLOG || defined __DOXYGEN__
1281#define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1298#if !defined TCP_OVERSIZE || defined __DOXYGEN__
1299#define TCP_OVERSIZE TCP_MSS
1308#if !defined LWIP_TCP_TIMESTAMPS || defined __DOXYGEN__
1309#define LWIP_TCP_TIMESTAMPS 0
1316#if !defined TCP_WND_UPDATE_THRESHOLD || defined __DOXYGEN__
1317#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4))
1327#if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API) || defined __DOXYGEN__
1328#define LWIP_EVENT_API 0
1329#define LWIP_CALLBACK_API 1
1331#ifndef LWIP_EVENT_API
1332#define LWIP_EVENT_API 0
1334#ifndef LWIP_CALLBACK_API
1335#define LWIP_CALLBACK_API 0
1347#if !defined LWIP_WND_SCALE || defined __DOXYGEN__
1348#define LWIP_WND_SCALE 0
1349#define TCP_RCV_SCALE 0
1370#if !defined PBUF_LINK_HLEN || defined __DOXYGEN__
1371#if defined LWIP_HOOK_VLAN_SET && !defined __DOXYGEN__
1372#define PBUF_LINK_HLEN (18 + ETH_PAD_SIZE)
1374#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1382#if !defined PBUF_LINK_ENCAPSULATION_HLEN || defined __DOXYGEN__
1383#define PBUF_LINK_ENCAPSULATION_HLEN 0u
1391#if !defined PBUF_POOL_BUFSIZE || defined __DOXYGEN__
1392#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN)
1412#if !defined LWIP_NETIF_HOSTNAME || defined __DOXYGEN__
1413#define LWIP_NETIF_HOSTNAME 0
1419#if !defined LWIP_NETIF_API || defined __DOXYGEN__
1420#define LWIP_NETIF_API 0
1427#if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__
1428#define LWIP_NETIF_STATUS_CALLBACK 0
1435#if !defined LWIP_NETIF_LINK_CALLBACK || defined __DOXYGEN__
1436#define LWIP_NETIF_LINK_CALLBACK 0
1443#if !defined LWIP_NETIF_REMOVE_CALLBACK || defined __DOXYGEN__
1444#define LWIP_NETIF_REMOVE_CALLBACK 0
1454#if !defined LWIP_NETIF_HWADDRHINT || defined __DOXYGEN__
1455#define LWIP_NETIF_HWADDRHINT 0
1467#if !defined LWIP_NETIF_TX_SINGLE_PBUF || defined __DOXYGEN__
1468#define LWIP_NETIF_TX_SINGLE_PBUF 0
1475#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
1476#define LWIP_NUM_NETIF_CLIENT_DATA 0
1497#if !defined LWIP_HAVE_LOOPIF || defined __DOXYGEN__
1498#define LWIP_HAVE_LOOPIF LWIP_NETIF_LOOPBACK
1504#if !defined LWIP_LOOPIF_MULTICAST || defined __DOXYGEN__
1505#define LWIP_LOOPIF_MULTICAST 0
1512#if !defined LWIP_NETIF_LOOPBACK || defined __DOXYGEN__
1513#define LWIP_NETIF_LOOPBACK 0
1520#if !defined LWIP_LOOPBACK_MAX_PBUFS || defined __DOXYGEN__
1521#define LWIP_LOOPBACK_MAX_PBUFS 0
1537#if !defined LWIP_NETIF_LOOPBACK_MULTITHREADING || defined __DOXYGEN__
1538#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1557#if !defined TCPIP_THREAD_NAME || defined __DOXYGEN__
1558#define TCPIP_THREAD_NAME "tcpip_thread"
1566#if !defined TCPIP_THREAD_STACKSIZE || defined __DOXYGEN__
1567#define TCPIP_THREAD_STACKSIZE 0
1575#if !defined TCPIP_THREAD_PRIO || defined __DOXYGEN__
1576#define TCPIP_THREAD_PRIO 1
1584#if !defined TCPIP_MBOX_SIZE || defined __DOXYGEN__
1585#define TCPIP_MBOX_SIZE 0
1592#if !defined LWIP_TCPIP_THREAD_ALIVE || defined __DOXYGEN__
1593#define LWIP_TCPIP_THREAD_ALIVE()
1599#if !defined SLIPIF_THREAD_NAME || defined __DOXYGEN__
1600#define SLIPIF_THREAD_NAME "slipif_loop"
1608#if !defined SLIPIF_THREAD_STACKSIZE || defined __DOXYGEN__
1609#define SLIPIF_THREAD_STACKSIZE 0
1617#if !defined SLIPIF_THREAD_PRIO || defined __DOXYGEN__
1618#define SLIPIF_THREAD_PRIO 1
1624#if !defined DEFAULT_THREAD_NAME || defined __DOXYGEN__
1625#define DEFAULT_THREAD_NAME "lwIP"
1633#if !defined DEFAULT_THREAD_STACKSIZE || defined __DOXYGEN__
1634#define DEFAULT_THREAD_STACKSIZE 0
1642#if !defined DEFAULT_THREAD_PRIO || defined __DOXYGEN__
1643#define DEFAULT_THREAD_PRIO 1
1651#if !defined DEFAULT_RAW_RECVMBOX_SIZE || defined __DOXYGEN__
1652#define DEFAULT_RAW_RECVMBOX_SIZE 0
1660#if !defined DEFAULT_UDP_RECVMBOX_SIZE || defined __DOXYGEN__
1661#define DEFAULT_UDP_RECVMBOX_SIZE 0
1669#if !defined DEFAULT_TCP_RECVMBOX_SIZE || defined __DOXYGEN__
1670#define DEFAULT_TCP_RECVMBOX_SIZE 0
1678#if !defined DEFAULT_ACCEPTMBOX_SIZE || defined __DOXYGEN__
1679#define DEFAULT_ACCEPTMBOX_SIZE 0
1698#if !defined LWIP_NETCONN || defined __DOXYGEN__
1699#define LWIP_NETCONN 1
1705#if !defined LWIP_TCPIP_TIMEOUT || defined __DOXYGEN__
1706#define LWIP_TCPIP_TIMEOUT 0
1719#if !defined LWIP_NETCONN_SEM_PER_THREAD || defined __DOXYGEN__
1720#define LWIP_NETCONN_SEM_PER_THREAD 0
1731#if !defined LWIP_NETCONN_FULLDUPLEX || defined __DOXYGEN__
1732#define LWIP_NETCONN_FULLDUPLEX 0
1751#if !defined LWIP_SOCKET || defined __DOXYGEN__
1752#define LWIP_SOCKET 1
1758#if !defined LWIP_SOCKET_SET_ERRNO || defined __DOXYGEN__
1759#define LWIP_SOCKET_SET_ERRNO 1
1768#if !defined LWIP_COMPAT_SOCKETS || defined __DOXYGEN__
1769#define LWIP_COMPAT_SOCKETS 1
1777#if !defined LWIP_POSIX_SOCKETS_IO_NAMES || defined __DOXYGEN__
1778#define LWIP_POSIX_SOCKETS_IO_NAMES 1
1788#if !defined LWIP_SOCKET_OFFSET || defined __DOXYGEN__
1789#define LWIP_SOCKET_OFFSET 0
1797#if !defined LWIP_TCP_KEEPALIVE || defined __DOXYGEN__
1798#define LWIP_TCP_KEEPALIVE 0
1805#if !defined LWIP_SO_SNDTIMEO || defined __DOXYGEN__
1806#define LWIP_SO_SNDTIMEO 0
1813#if !defined LWIP_SO_RCVTIMEO || defined __DOXYGEN__
1814#define LWIP_SO_RCVTIMEO 0
1821#if !defined LWIP_SO_SNDRCVTIMEO_NONSTANDARD || defined __DOXYGEN__
1822#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
1828#if !defined LWIP_SO_RCVBUF || defined __DOXYGEN__
1829#define LWIP_SO_RCVBUF 0
1835#if !defined LWIP_SO_LINGER || defined __DOXYGEN__
1836#define LWIP_SO_LINGER 0
1842#if !defined RECV_BUFSIZE_DEFAULT || defined __DOXYGEN__
1843#define RECV_BUFSIZE_DEFAULT INT_MAX
1849#if !defined LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT || defined __DOXYGEN__
1850#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
1856#if !defined SO_REUSE || defined __DOXYGEN__
1865#if !defined SO_REUSE_RXTOALL || defined __DOXYGEN__
1866#define SO_REUSE_RXTOALL 0
1877#if !defined LWIP_FIONREAD_LINUXMODE || defined __DOXYGEN__
1878#define LWIP_FIONREAD_LINUXMODE 0
1897#if !defined LWIP_STATS || defined __DOXYGEN__
1906#if !defined LWIP_STATS_DISPLAY || defined __DOXYGEN__
1907#define LWIP_STATS_DISPLAY 0
1913#if !defined LINK_STATS || defined __DOXYGEN__
1920#if !defined ETHARP_STATS || defined __DOXYGEN__
1921#define ETHARP_STATS (LWIP_ARP)
1927#if !defined IP_STATS || defined __DOXYGEN__
1935#if !defined IPFRAG_STATS || defined __DOXYGEN__
1936#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
1942#if !defined ICMP_STATS || defined __DOXYGEN__
1949#if !defined IGMP_STATS || defined __DOXYGEN__
1950#define IGMP_STATS (LWIP_IGMP)
1957#if !defined UDP_STATS || defined __DOXYGEN__
1958#define UDP_STATS (LWIP_UDP)
1965#if !defined TCP_STATS || defined __DOXYGEN__
1966#define TCP_STATS (LWIP_TCP)
1972#if !defined MEM_STATS || defined __DOXYGEN__
1973#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
1979#if !defined MEMP_STATS || defined __DOXYGEN__
1980#define MEMP_STATS (MEMP_MEM_MALLOC == 0)
1986#if !defined SYS_STATS || defined __DOXYGEN__
1987#define SYS_STATS (NO_SYS == 0)
1993#if !defined IP6_STATS || defined __DOXYGEN__
1994#define IP6_STATS (LWIP_IPV6)
2000#if !defined ICMP6_STATS || defined __DOXYGEN__
2001#define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6)
2007#if !defined IP6_FRAG_STATS || defined __DOXYGEN__
2008#define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
2014#if !defined MLD6_STATS || defined __DOXYGEN__
2015#define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD)
2021#if !defined ND6_STATS || defined __DOXYGEN__
2022#define ND6_STATS (LWIP_IPV6)
2028#if !defined MIB2_STATS || defined __DOXYGEN__
2035#define ETHARP_STATS 0
2037#define IPFRAG_STATS 0
2045#define LWIP_STATS_DISPLAY 0
2047#define ICMP6_STATS 0
2048#define IP6_FRAG_STATS 0
2073#if !defined LWIP_CHECKSUM_CTRL_PER_NETIF || defined __DOXYGEN__
2074#define LWIP_CHECKSUM_CTRL_PER_NETIF 0
2080#if !defined CHECKSUM_GEN_IP || defined __DOXYGEN__
2081#define CHECKSUM_GEN_IP 1
2087#if !defined CHECKSUM_GEN_UDP || defined __DOXYGEN__
2088#define CHECKSUM_GEN_UDP 1
2094#if !defined CHECKSUM_GEN_TCP || defined __DOXYGEN__
2095#define CHECKSUM_GEN_TCP 1
2101#if !defined CHECKSUM_GEN_ICMP || defined __DOXYGEN__
2102#define CHECKSUM_GEN_ICMP 1
2108#if !defined CHECKSUM_GEN_ICMP6 || defined __DOXYGEN__
2109#define CHECKSUM_GEN_ICMP6 1
2115#if !defined CHECKSUM_CHECK_IP || defined __DOXYGEN__
2116#define CHECKSUM_CHECK_IP 1
2122#if !defined CHECKSUM_CHECK_UDP || defined __DOXYGEN__
2123#define CHECKSUM_CHECK_UDP 1
2129#if !defined CHECKSUM_CHECK_TCP || defined __DOXYGEN__
2130#define CHECKSUM_CHECK_TCP 1
2136#if !defined CHECKSUM_CHECK_ICMP || defined __DOXYGEN__
2137#define CHECKSUM_CHECK_ICMP 1
2143#if !defined CHECKSUM_CHECK_ICMP6 || defined __DOXYGEN__
2144#define CHECKSUM_CHECK_ICMP6 1
2151#if !defined LWIP_CHECKSUM_ON_COPY || defined __DOXYGEN__
2152#define LWIP_CHECKSUM_ON_COPY 0
2171#if !defined LWIP_IPV6 || defined __DOXYGEN__
2178#if !defined LWIP_IPV6_NUM_ADDRESSES || defined __DOXYGEN__
2179#define LWIP_IPV6_NUM_ADDRESSES 3
2185#if !defined LWIP_IPV6_FORWARD || defined __DOXYGEN__
2186#define LWIP_IPV6_FORWARD 0
2192#if !defined LWIP_IPV6_FRAG || defined __DOXYGEN__
2193#define LWIP_IPV6_FRAG 0
2199#if !defined LWIP_IPV6_REASS || defined __DOXYGEN__
2200#define LWIP_IPV6_REASS (LWIP_IPV6)
2207#if !defined LWIP_IPV6_SEND_ROUTER_SOLICIT || defined __DOXYGEN__
2208#define LWIP_IPV6_SEND_ROUTER_SOLICIT 1
2214#if !defined LWIP_IPV6_AUTOCONFIG || defined __DOXYGEN__
2215#define LWIP_IPV6_AUTOCONFIG (LWIP_IPV6)
2221#if !defined LWIP_IPV6_DUP_DETECT_ATTEMPTS || defined __DOXYGEN__
2222#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1
2236#if !defined LWIP_ICMP6 || defined __DOXYGEN__
2237#define LWIP_ICMP6 (LWIP_IPV6)
2244#if !defined LWIP_ICMP6_DATASIZE || defined __DOXYGEN__
2245#define LWIP_ICMP6_DATASIZE 8
2251#if !defined LWIP_ICMP6_HL || defined __DOXYGEN__
2252#define LWIP_ICMP6_HL 255
2268#if !defined LWIP_IPV6_MLD || defined __DOXYGEN__
2269#define LWIP_IPV6_MLD (LWIP_IPV6)
2278#if !defined MEMP_NUM_MLD6_GROUP || defined __DOXYGEN__
2279#define MEMP_NUM_MLD6_GROUP 4
2294#if !defined LWIP_ND6_QUEUEING || defined __DOXYGEN__
2295#define LWIP_ND6_QUEUEING (LWIP_IPV6)
2301#if !defined MEMP_NUM_ND6_QUEUE || defined __DOXYGEN__
2302#define MEMP_NUM_ND6_QUEUE 20
2308#if !defined LWIP_ND6_NUM_NEIGHBORS || defined __DOXYGEN__
2309#define LWIP_ND6_NUM_NEIGHBORS 10
2315#if !defined LWIP_ND6_NUM_DESTINATIONS || defined __DOXYGEN__
2316#define LWIP_ND6_NUM_DESTINATIONS 10
2322#if !defined LWIP_ND6_NUM_PREFIXES || defined __DOXYGEN__
2323#define LWIP_ND6_NUM_PREFIXES 5
2329#if !defined LWIP_ND6_NUM_ROUTERS || defined __DOXYGEN__
2330#define LWIP_ND6_NUM_ROUTERS 3
2337#if !defined LWIP_ND6_MAX_MULTICAST_SOLICIT || defined __DOXYGEN__
2338#define LWIP_ND6_MAX_MULTICAST_SOLICIT 3
2345#if !defined LWIP_ND6_MAX_UNICAST_SOLICIT || defined __DOXYGEN__
2346#define LWIP_ND6_MAX_UNICAST_SOLICIT 3
2352#if !defined LWIP_ND6_MAX_ANYCAST_DELAY_TIME || defined __DOXYGEN__
2353#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000
2359#if !defined LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT || defined __DOXYGEN__
2360#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3
2367#if !defined LWIP_ND6_REACHABLE_TIME || defined __DOXYGEN__
2368#define LWIP_ND6_REACHABLE_TIME 30000
2374#if !defined LWIP_ND6_RETRANS_TIMER || defined __DOXYGEN__
2375#define LWIP_ND6_RETRANS_TIMER 1000
2382#if !defined LWIP_ND6_DELAY_FIRST_PROBE_TIME || defined __DOXYGEN__
2383#define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000
2390#if !defined LWIP_ND6_ALLOW_RA_UPDATES || defined __DOXYGEN__
2391#define LWIP_ND6_ALLOW_RA_UPDATES 1
2399#if !defined LWIP_ND6_TCP_REACHABILITY_HINTS || defined __DOXYGEN__
2400#define LWIP_ND6_TCP_REACHABILITY_HINTS 1
2408#if !defined LWIP_ND6_RDNSS_MAX_DNS_SERVERS || defined __DOXYGEN__
2409#define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
2418#if !defined LWIP_IPV6_DHCP6 || defined __DOXYGEN__
2419#define LWIP_IPV6_DHCP6 0
2441#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h"
2464#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port)
2479#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif)
2490#define LWIP_HOOK_IP4_ROUTE()
2498#define LWIP_HOOK_IP4_ROUTE_SRC(dest, src)
2514#define LWIP_HOOK_ETHARP_GET_GW(netif, dest)
2529#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif)
2541#define LWIP_HOOK_IP6_ROUTE(src, dest)
2557#define LWIP_HOOK_ND6_GET_GW(netif, dest)
2571#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr)
2593#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type)
2601#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type)
2611#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
2633#if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__
2634#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
2642#if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__
2643#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
2649#if !defined ETHARP_DEBUG || defined __DOXYGEN__
2650#define ETHARP_DEBUG LWIP_DBG_OFF
2656#if !defined NETIF_DEBUG || defined __DOXYGEN__
2657#define NETIF_DEBUG LWIP_DBG_OFF
2663#if !defined PBUF_DEBUG || defined __DOXYGEN__
2664#define PBUF_DEBUG LWIP_DBG_OFF
2670#if !defined API_LIB_DEBUG || defined __DOXYGEN__
2671#define API_LIB_DEBUG LWIP_DBG_OFF
2677#if !defined API_MSG_DEBUG || defined __DOXYGEN__
2678#define API_MSG_DEBUG LWIP_DBG_OFF
2684#if !defined SOCKETS_DEBUG || defined __DOXYGEN__
2685#define SOCKETS_DEBUG LWIP_DBG_OFF
2691#if !defined ICMP_DEBUG || defined __DOXYGEN__
2692#define ICMP_DEBUG LWIP_DBG_OFF
2698#if !defined IGMP_DEBUG || defined __DOXYGEN__
2699#define IGMP_DEBUG LWIP_DBG_OFF
2705#if !defined INET_DEBUG || defined __DOXYGEN__
2706#define INET_DEBUG LWIP_DBG_OFF
2712#if !defined IP_DEBUG || defined __DOXYGEN__
2713#define IP_DEBUG LWIP_DBG_OFF
2719#if !defined IP_REASS_DEBUG || defined __DOXYGEN__
2720#define IP_REASS_DEBUG LWIP_DBG_OFF
2726#if !defined RAW_DEBUG || defined __DOXYGEN__
2727#define RAW_DEBUG LWIP_DBG_OFF
2733#if !defined MEM_DEBUG || defined __DOXYGEN__
2734#define MEM_DEBUG LWIP_DBG_OFF
2740#if !defined MEMP_DEBUG || defined __DOXYGEN__
2741#define MEMP_DEBUG LWIP_DBG_OFF
2747#if !defined SYS_DEBUG || defined __DOXYGEN__
2748#define SYS_DEBUG LWIP_DBG_OFF
2754#if !defined TIMERS_DEBUG || defined __DOXYGEN__
2755#define TIMERS_DEBUG LWIP_DBG_OFF
2761#if !defined TCP_DEBUG || defined __DOXYGEN__
2762#define TCP_DEBUG LWIP_DBG_OFF
2768#if !defined TCP_INPUT_DEBUG || defined __DOXYGEN__
2769#define TCP_INPUT_DEBUG LWIP_DBG_OFF
2775#if !defined TCP_FR_DEBUG || defined __DOXYGEN__
2776#define TCP_FR_DEBUG LWIP_DBG_OFF
2783#if !defined TCP_RTO_DEBUG || defined __DOXYGEN__
2784#define TCP_RTO_DEBUG LWIP_DBG_OFF
2790#if !defined TCP_CWND_DEBUG || defined __DOXYGEN__
2791#define TCP_CWND_DEBUG LWIP_DBG_OFF
2797#if !defined TCP_WND_DEBUG || defined __DOXYGEN__
2798#define TCP_WND_DEBUG LWIP_DBG_OFF
2804#if !defined TCP_OUTPUT_DEBUG || defined __DOXYGEN__
2805#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
2811#if !defined TCP_RST_DEBUG || defined __DOXYGEN__
2812#define TCP_RST_DEBUG LWIP_DBG_OFF
2818#if !defined TCP_QLEN_DEBUG || defined __DOXYGEN__
2819#define TCP_QLEN_DEBUG LWIP_DBG_OFF
2825#if !defined UDP_DEBUG || defined __DOXYGEN__
2826#define UDP_DEBUG LWIP_DBG_OFF
2832#if !defined TCPIP_DEBUG || defined __DOXYGEN__
2833#define TCPIP_DEBUG LWIP_DBG_OFF
2839#if !defined SLIP_DEBUG || defined __DOXYGEN__
2840#define SLIP_DEBUG LWIP_DBG_OFF
2846#if !defined DHCP_DEBUG || defined __DOXYGEN__
2847#define DHCP_DEBUG LWIP_DBG_OFF
2853#if !defined AUTOIP_DEBUG || defined __DOXYGEN__
2854#define AUTOIP_DEBUG LWIP_DBG_OFF
2860#if !defined DNS_DEBUG || defined __DOXYGEN__
2861#define DNS_DEBUG LWIP_DBG_OFF
2867#if !defined IP6_DEBUG || defined __DOXYGEN__
2868#define IP6_DEBUG LWIP_DBG_OFF
2888#if !defined LWIP_PERF || defined __DOXYGEN__