Go to the documentation of this file.
38 #if !defined LWIP_HDR_OPT_H
39 #define LWIP_HDR_OPT_H
81 #if !defined LWIP_TIMERS
82 #ifdef NO_SYS_NO_TIMERS
83 #define LWIP_TIMERS (!NO_SYS || (NO_SYS && !NO_SYS_NO_TIMERS))
96 #if !defined LWIP_TIMERS_CUSTOM
97 #define LWIP_TIMERS_CUSTOM 0
105 #define MEMCPY(dst,src,len) memcpy(dst,src,len)
113 #define SMEMCPY(dst,src,len) memcpy(dst,src,len)
128 #if !defined LWIP_MPU_COMPATIBLE
129 #define LWIP_MPU_COMPATIBLE 0
140 #if !defined LWIP_TCPIP_CORE_LOCKING
141 #define LWIP_TCPIP_CORE_LOCKING 1
152 #if !defined LWIP_TCPIP_CORE_LOCKING_INPUT || defined __DOXYGEN__
153 #define LWIP_TCPIP_CORE_LOCKING_INPUT 0
163 #if !defined SYS_LIGHTWEIGHT_PROT || defined __DOXYGEN__
164 #define SYS_LIGHTWEIGHT_PROT 1
185 #if !defined MEM_LIBC_MALLOC || defined __DOXYGEN__
186 #define MEM_LIBC_MALLOC 0
198 #if !defined MEMP_MEM_MALLOC || defined __DOXYGEN__
199 #define MEMP_MEM_MALLOC 0
207 #if !defined MEM_ALIGNMENT || defined __DOXYGEN__
208 #define MEM_ALIGNMENT 1
215 #if !defined MEM_SIZE || defined __DOXYGEN__
216 #define MEM_SIZE 1600
228 #if !defined MEMP_OVERFLOW_CHECK || defined __DOXYGEN__
229 #define MEMP_OVERFLOW_CHECK 0
236 #if !defined MEMP_SANITY_CHECK || defined __DOXYGEN__
237 #define MEMP_SANITY_CHECK 0
246 #if !defined MEM_USE_POOLS || defined __DOXYGEN__
247 #define MEM_USE_POOLS 0
254 #if !defined MEM_USE_POOLS_TRY_BIGGER_POOL || defined __DOXYGEN__
255 #define MEM_USE_POOLS_TRY_BIGGER_POOL 0
264 #if !defined MEMP_USE_CUSTOM_POOLS || defined __DOXYGEN__
265 #define MEMP_USE_CUSTOM_POOLS 0
286 #if !defined LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT || defined __DOXYGEN__
287 #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
308 #if !defined MEMP_NUM_PBUF || defined __DOXYGEN__
309 #define MEMP_NUM_PBUF 16
316 #if !defined MEMP_NUM_RAW_PCB || defined __DOXYGEN__
317 #define MEMP_NUM_RAW_PCB 4
325 #if !defined MEMP_NUM_UDP_PCB || defined __DOXYGEN__
326 #define MEMP_NUM_UDP_PCB 4
333 #if !defined MEMP_NUM_TCP_PCB || defined __DOXYGEN__
334 #define MEMP_NUM_TCP_PCB 5
341 #if !defined MEMP_NUM_TCP_PCB_LISTEN || defined __DOXYGEN__
342 #define MEMP_NUM_TCP_PCB_LISTEN 8
349 #if !defined MEMP_NUM_TCP_SEG || defined __DOXYGEN__
350 #define MEMP_NUM_TCP_SEG 16
357 #if !defined MEMP_NUM_REASSDATA || defined __DOXYGEN__
358 #define MEMP_NUM_REASSDATA 5
368 #if !defined MEMP_NUM_FRAG_PBUF || defined __DOXYGEN__
369 #define MEMP_NUM_FRAG_PBUF 15
378 #if !defined MEMP_NUM_ARP_QUEUE || defined __DOXYGEN__
379 #define MEMP_NUM_ARP_QUEUE 30
388 #if !defined MEMP_NUM_IGMP_GROUP || defined __DOXYGEN__
389 #define MEMP_NUM_IGMP_GROUP 8
397 #if !defined MEMP_NUM_SYS_TIMEOUT || defined __DOXYGEN__
398 #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))
405 #if !defined MEMP_NUM_NETBUF || defined __DOXYGEN__
406 #define MEMP_NUM_NETBUF 2
413 #if !defined MEMP_NUM_NETCONN || defined __DOXYGEN__
414 #define MEMP_NUM_NETCONN 4
422 #if !defined MEMP_NUM_TCPIP_MSG_API || defined __DOXYGEN__
423 #define MEMP_NUM_TCPIP_MSG_API 8
431 #if !defined MEMP_NUM_TCPIP_MSG_INPKT || defined __DOXYGEN__
432 #define MEMP_NUM_TCPIP_MSG_INPKT 8
439 #if !defined MEMP_NUM_NETDB || defined __DOXYGEN__
440 #define MEMP_NUM_NETDB 1
447 #if !defined MEMP_NUM_LOCALHOSTLIST || defined __DOXYGEN__
448 #define MEMP_NUM_LOCALHOSTLIST 1
454 #if !defined PBUF_POOL_SIZE || defined __DOXYGEN__
455 #define PBUF_POOL_SIZE 16
461 #if !defined MEMP_NUM_API_MSG || defined __DOXYGEN__
462 #define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API
467 #if !defined MEMP_NUM_DNS_API_MSG || defined __DOXYGEN__
468 #define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API
474 #if !defined MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA || defined __DOXYGEN__
475 #define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API
481 #if !defined MEMP_NUM_NETIFAPI_MSG || defined __DOXYGEN__
482 #define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API
501 #if !defined LWIP_ARP || defined __DOXYGEN__
508 #if !defined ARP_TABLE_SIZE || defined __DOXYGEN__
509 #define ARP_TABLE_SIZE 10
516 #if !defined ARP_MAXAGE || defined __DOXYGEN__
517 #define ARP_MAXAGE 300
527 #if !defined ARP_QUEUEING || defined __DOXYGEN__
528 #define ARP_QUEUEING 0
535 #if !defined ARP_QUEUE_LEN || defined __DOXYGEN__
536 #define ARP_QUEUE_LEN 3
549 #if !defined ETHARP_SUPPORT_VLAN || defined __DOXYGEN__
550 #define ETHARP_SUPPORT_VLAN 0
555 #if !defined LWIP_ETHERNET || defined __DOXYGEN__
556 #define LWIP_ETHERNET LWIP_ARP
564 #if !defined ETH_PAD_SIZE || defined __DOXYGEN__
565 #define ETH_PAD_SIZE 0
571 #if !defined ETHARP_SUPPORT_STATIC_ENTRIES || defined __DOXYGEN__
572 #define ETHARP_SUPPORT_STATIC_ENTRIES 0
579 #if !defined ETHARP_TABLE_MATCH_NETIF || defined __DOXYGEN__
580 #define ETHARP_TABLE_MATCH_NETIF 0
599 #if !defined LWIP_IPV4 || defined __DOXYGEN__
608 #if !defined IP_FORWARD || defined __DOXYGEN__
617 #if !defined IP_REASSEMBLY || defined __DOXYGEN__
618 #define IP_REASSEMBLY 1
626 #if !defined IP_FRAG || defined __DOXYGEN__
635 #define IP_REASSEMBLY 0
645 #if !defined IP_OPTIONS_ALLOWED || defined __DOXYGEN__
646 #define IP_OPTIONS_ALLOWED 1
654 #if !defined IP_REASS_MAXAGE || defined __DOXYGEN__
655 #define IP_REASS_MAXAGE 3
664 #if !defined IP_REASS_MAX_PBUFS || defined __DOXYGEN__
665 #define IP_REASS_MAX_PBUFS 10
671 #if !defined IP_DEFAULT_TTL || defined __DOXYGEN__
672 #define IP_DEFAULT_TTL 255
680 #if !defined IP_SOF_BROADCAST || defined __DOXYGEN__
681 #define IP_SOF_BROADCAST 0
688 #if !defined IP_SOF_BROADCAST_RECV || defined __DOXYGEN__
689 #define IP_SOF_BROADCAST_RECV 0
699 #if !defined IP_FORWARD_ALLOW_TX_ON_RX_NETIF || defined __DOXYGEN__
700 #define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
708 #if !defined LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS || defined __DOXYGEN__
709 #define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS 0
729 #if !defined LWIP_ICMP || defined __DOXYGEN__
736 #if !defined ICMP_TTL || defined __DOXYGEN__
737 #define ICMP_TTL (IP_DEFAULT_TTL)
743 #if !defined LWIP_BROADCAST_PING || defined __DOXYGEN__
744 #define LWIP_BROADCAST_PING 0
750 #if !defined LWIP_MULTICAST_PING || defined __DOXYGEN__
751 #define LWIP_MULTICAST_PING 0
770 #if !defined LWIP_RAW || defined __DOXYGEN__
777 #if !defined RAW_TTL || defined __DOXYGEN__
778 #define RAW_TTL (IP_DEFAULT_TTL)
797 #if !defined LWIP_DHCP || defined __DOXYGEN__
809 #if !defined DHCP_DOES_ARP_CHECK || defined __DOXYGEN__
810 #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
819 #if !defined LWIP_DHCP_CHECK_LINK_UP
820 #define LWIP_DHCP_CHECK_LINK_UP 0
826 #if !defined LWIP_DHCP_BOOTP_FILE || defined __DOXYGEN__
827 #define LWIP_DHCP_BOOTP_FILE 0
835 #if !defined LWIP_DHCP_GET_NTP_SRV || defined __DOXYGEN__
836 #define LWIP_DHCP_GET_NTP_SRV 0
842 #if !defined LWIP_DHCP_MAX_NTP_SERVERS || defined __DOXYGEN__
843 #define LWIP_DHCP_MAX_NTP_SERVERS 1
851 #if !defined LWIP_DHCP_MAX_DNS_SERVERS || defined __DOXYGEN__
852 #define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
871 #if !defined LWIP_AUTOIP || defined __DOXYGEN__
872 #define LWIP_AUTOIP 0
877 #define LWIP_AUTOIP 0
884 #if !defined LWIP_DHCP_AUTOIP_COOP || defined __DOXYGEN__
885 #define LWIP_DHCP_AUTOIP_COOP 0
895 #if !defined LWIP_DHCP_AUTOIP_COOP_TRIES || defined __DOXYGEN__
896 #define LWIP_DHCP_AUTOIP_COOP_TRIES 9
917 #if !defined LWIP_MIB2_CALLBACKS || defined __DOXYGEN__
918 #define LWIP_MIB2_CALLBACKS 0
937 #if !defined LWIP_IGMP || defined __DOXYGEN__
949 #if !defined LWIP_MULTICAST_TX_OPTIONS || defined __DOXYGEN__
950 #define LWIP_MULTICAST_TX_OPTIONS (LWIP_IGMP && LWIP_UDP)
970 #if !defined LWIP_DNS || defined __DOXYGEN__
975 #if !defined DNS_TABLE_SIZE || defined __DOXYGEN__
976 #define DNS_TABLE_SIZE 4
980 #if !defined DNS_MAX_NAME_LENGTH || defined __DOXYGEN__
981 #define DNS_MAX_NAME_LENGTH 256
988 #if !defined DNS_MAX_SERVERS || defined __DOXYGEN__
989 #define DNS_MAX_SERVERS 2
993 #if !defined DNS_DOES_NAME_CHECK || defined __DOXYGEN__
994 #define DNS_DOES_NAME_CHECK 1
1001 #if !defined LWIP_DNS_SECURE || defined __DOXYGEN__
1002 #define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)
1006 #define LWIP_DNS_SECURE_RAND_XID 1
1007 #define LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING 2
1008 #define LWIP_DNS_SECURE_RAND_SRC_PORT 4
1018 #if !defined DNS_LOCAL_HOSTLIST || defined __DOXYGEN__
1019 #define DNS_LOCAL_HOSTLIST 0
1024 #if !defined DNS_LOCAL_HOSTLIST_IS_DYNAMIC || defined __DOXYGEN__
1025 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
1030 #if !defined LWIP_DNS_SUPPORT_MDNS_QUERIES || defined __DOXYGEN__
1031 #define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
1050 #if !defined LWIP_UDP || defined __DOXYGEN__
1057 #if !defined LWIP_UDPLITE || defined __DOXYGEN__
1058 #define LWIP_UDPLITE 0
1064 #if !defined UDP_TTL || defined __DOXYGEN__
1065 #define UDP_TTL (IP_DEFAULT_TTL)
1071 #if !defined LWIP_NETBUF_RECVINFO || defined __DOXYGEN__
1072 #define LWIP_NETBUF_RECVINFO 0
1091 #if !defined LWIP_TCP || defined __DOXYGEN__
1098 #if !defined TCP_TTL || defined __DOXYGEN__
1099 #define TCP_TTL (IP_DEFAULT_TTL)
1109 #if !defined TCP_WND || defined __DOXYGEN__
1110 #define TCP_WND (4 * TCP_MSS)
1116 #if !defined TCP_MAXRTX || defined __DOXYGEN__
1117 #define TCP_MAXRTX 12
1123 #if !defined TCP_SYNMAXRTX || defined __DOXYGEN__
1124 #define TCP_SYNMAXRTX 6
1131 #if !defined TCP_QUEUE_OOSEQ || defined __DOXYGEN__
1132 #define TCP_QUEUE_OOSEQ (LWIP_TCP)
1142 #if !defined TCP_MSS || defined __DOXYGEN__
1154 #if !defined TCP_CALCULATE_EFF_SEND_MSS || defined __DOXYGEN__
1155 #define TCP_CALCULATE_EFF_SEND_MSS 1
1162 #if !defined TCP_SND_BUF || defined __DOXYGEN__
1163 #define TCP_SND_BUF (2 * TCP_MSS)
1170 #if !defined TCP_SND_QUEUELEN || defined __DOXYGEN__
1171 #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
1179 #if !defined TCP_SNDLOWAT || defined __DOXYGEN__
1180 #define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
1188 #if !defined TCP_SNDQUEUELOWAT || defined __DOXYGEN__
1189 #define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
1196 #if !defined TCP_OOSEQ_MAX_BYTES || defined __DOXYGEN__
1197 #define TCP_OOSEQ_MAX_BYTES 0
1204 #if !defined TCP_OOSEQ_MAX_PBUFS || defined __DOXYGEN__
1205 #define TCP_OOSEQ_MAX_PBUFS 0
1211 #if !defined TCP_LISTEN_BACKLOG || defined __DOXYGEN__
1212 #define TCP_LISTEN_BACKLOG 0
1220 #if !defined TCP_DEFAULT_LISTEN_BACKLOG || defined __DOXYGEN__
1221 #define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1238 #if !defined TCP_OVERSIZE || defined __DOXYGEN__
1239 #define TCP_OVERSIZE TCP_MSS
1248 #if !defined LWIP_TCP_TIMESTAMPS || defined __DOXYGEN__
1249 #define LWIP_TCP_TIMESTAMPS 0
1256 #if !defined TCP_WND_UPDATE_THRESHOLD || defined __DOXYGEN__
1257 #define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4))
1267 #if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API) || defined __DOXYGEN__
1268 #define LWIP_EVENT_API 0
1269 #define LWIP_CALLBACK_API 1
1271 #ifndef LWIP_EVENT_API
1272 #define LWIP_EVENT_API 0
1274 #ifndef LWIP_CALLBACK_API
1275 #define LWIP_CALLBACK_API 0
1287 #if !defined LWIP_WND_SCALE || defined __DOXYGEN__
1288 #define LWIP_WND_SCALE 0
1289 #define TCP_RCV_SCALE 0
1310 #if !defined PBUF_LINK_HLEN || defined __DOXYGEN__
1311 #if defined LWIP_HOOK_VLAN_SET && !defined __DOXYGEN__
1312 #define PBUF_LINK_HLEN (18 + ETH_PAD_SIZE)
1314 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1322 #if !defined PBUF_LINK_ENCAPSULATION_HLEN || defined __DOXYGEN__
1323 #define PBUF_LINK_ENCAPSULATION_HLEN 0u
1331 #if !defined PBUF_POOL_BUFSIZE || defined __DOXYGEN__
1332 #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN)
1352 #if !defined LWIP_NETIF_HOSTNAME || defined __DOXYGEN__
1353 #define LWIP_NETIF_HOSTNAME 0
1359 #if !defined LWIP_NETIF_API || defined __DOXYGEN__
1360 #define LWIP_NETIF_API 0
1367 #if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__
1368 #define LWIP_NETIF_STATUS_CALLBACK 0
1375 #if !defined LWIP_NETIF_LINK_CALLBACK || defined __DOXYGEN__
1376 #define LWIP_NETIF_LINK_CALLBACK 0
1383 #if !defined LWIP_NETIF_REMOVE_CALLBACK || defined __DOXYGEN__
1384 #define LWIP_NETIF_REMOVE_CALLBACK 0
1394 #if !defined LWIP_NETIF_HWADDRHINT || defined __DOXYGEN__
1395 #define LWIP_NETIF_HWADDRHINT 0
1407 #if !defined LWIP_NETIF_TX_SINGLE_PBUF || defined __DOXYGEN__
1408 #define LWIP_NETIF_TX_SINGLE_PBUF 0
1415 #if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
1416 #define LWIP_NUM_NETIF_CLIENT_DATA 0
1437 #if !defined LWIP_HAVE_LOOPIF || defined __DOXYGEN__
1438 #define LWIP_HAVE_LOOPIF LWIP_NETIF_LOOPBACK
1444 #if !defined LWIP_LOOPIF_MULTICAST || defined __DOXYGEN__
1445 #define LWIP_LOOPIF_MULTICAST 0
1452 #if !defined LWIP_NETIF_LOOPBACK || defined __DOXYGEN__
1453 #define LWIP_NETIF_LOOPBACK 0
1460 #if !defined LWIP_LOOPBACK_MAX_PBUFS || defined __DOXYGEN__
1461 #define LWIP_LOOPBACK_MAX_PBUFS 0
1477 #if !defined LWIP_NETIF_LOOPBACK_MULTITHREADING || defined __DOXYGEN__
1478 #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1497 #if !defined TCPIP_THREAD_NAME || defined __DOXYGEN__
1498 #define TCPIP_THREAD_NAME "tcpip_thread"
1506 #if !defined TCPIP_THREAD_STACKSIZE || defined __DOXYGEN__
1507 #define TCPIP_THREAD_STACKSIZE 0
1515 #if !defined TCPIP_THREAD_PRIO || defined __DOXYGEN__
1516 #define TCPIP_THREAD_PRIO 1
1524 #if !defined TCPIP_MBOX_SIZE || defined __DOXYGEN__
1525 #define TCPIP_MBOX_SIZE 0
1532 #if !defined LWIP_TCPIP_THREAD_ALIVE || defined __DOXYGEN__
1533 #define LWIP_TCPIP_THREAD_ALIVE()
1539 #if !defined SLIPIF_THREAD_NAME || defined __DOXYGEN__
1540 #define SLIPIF_THREAD_NAME "slipif_loop"
1548 #if !defined SLIPIF_THREAD_STACKSIZE || defined __DOXYGEN__
1549 #define SLIPIF_THREAD_STACKSIZE 0
1557 #if !defined SLIPIF_THREAD_PRIO || defined __DOXYGEN__
1558 #define SLIPIF_THREAD_PRIO 1
1564 #if !defined DEFAULT_THREAD_NAME || defined __DOXYGEN__
1565 #define DEFAULT_THREAD_NAME "lwIP"
1573 #if !defined DEFAULT_THREAD_STACKSIZE || defined __DOXYGEN__
1574 #define DEFAULT_THREAD_STACKSIZE 0
1582 #if !defined DEFAULT_THREAD_PRIO || defined __DOXYGEN__
1583 #define DEFAULT_THREAD_PRIO 1
1591 #if !defined DEFAULT_RAW_RECVMBOX_SIZE || defined __DOXYGEN__
1592 #define DEFAULT_RAW_RECVMBOX_SIZE 0
1600 #if !defined DEFAULT_UDP_RECVMBOX_SIZE || defined __DOXYGEN__
1601 #define DEFAULT_UDP_RECVMBOX_SIZE 0
1609 #if !defined DEFAULT_TCP_RECVMBOX_SIZE || defined __DOXYGEN__
1610 #define DEFAULT_TCP_RECVMBOX_SIZE 0
1618 #if !defined DEFAULT_ACCEPTMBOX_SIZE || defined __DOXYGEN__
1619 #define DEFAULT_ACCEPTMBOX_SIZE 0
1638 #if !defined LWIP_NETCONN || defined __DOXYGEN__
1639 #define LWIP_NETCONN 1
1645 #if !defined LWIP_TCPIP_TIMEOUT || defined __DOXYGEN__
1646 #define LWIP_TCPIP_TIMEOUT 0
1659 #if !defined LWIP_NETCONN_SEM_PER_THREAD || defined __DOXYGEN__
1660 #define LWIP_NETCONN_SEM_PER_THREAD 0
1671 #if !defined LWIP_NETCONN_FULLDUPLEX || defined __DOXYGEN__
1672 #define LWIP_NETCONN_FULLDUPLEX 0
1691 #if !defined LWIP_SOCKET || defined __DOXYGEN__
1692 #define LWIP_SOCKET 1
1698 #if !defined LWIP_SOCKET_SET_ERRNO || defined __DOXYGEN__
1699 #define LWIP_SOCKET_SET_ERRNO 1
1708 #if !defined LWIP_COMPAT_SOCKETS || defined __DOXYGEN__
1709 #define LWIP_COMPAT_SOCKETS 1
1717 #if !defined LWIP_POSIX_SOCKETS_IO_NAMES || defined __DOXYGEN__
1718 #define LWIP_POSIX_SOCKETS_IO_NAMES 1
1728 #if !defined LWIP_SOCKET_OFFSET || defined __DOXYGEN__
1729 #define LWIP_SOCKET_OFFSET 0
1737 #if !defined LWIP_TCP_KEEPALIVE || defined __DOXYGEN__
1738 #define LWIP_TCP_KEEPALIVE 0
1745 #if !defined LWIP_SO_SNDTIMEO || defined __DOXYGEN__
1746 #define LWIP_SO_SNDTIMEO 0
1753 #if !defined LWIP_SO_RCVTIMEO || defined __DOXYGEN__
1754 #define LWIP_SO_RCVTIMEO 0
1761 #if !defined LWIP_SO_SNDRCVTIMEO_NONSTANDARD || defined __DOXYGEN__
1762 #define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
1768 #if !defined LWIP_SO_RCVBUF || defined __DOXYGEN__
1769 #define LWIP_SO_RCVBUF 0
1775 #if !defined LWIP_SO_LINGER || defined __DOXYGEN__
1776 #define LWIP_SO_LINGER 0
1782 #if !defined RECV_BUFSIZE_DEFAULT || defined __DOXYGEN__
1783 #define RECV_BUFSIZE_DEFAULT INT_MAX
1789 #if !defined LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT || defined __DOXYGEN__
1790 #define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
1796 #if !defined SO_REUSE || defined __DOXYGEN__
1805 #if !defined SO_REUSE_RXTOALL || defined __DOXYGEN__
1806 #define SO_REUSE_RXTOALL 0
1817 #if !defined LWIP_FIONREAD_LINUXMODE || defined __DOXYGEN__
1818 #define LWIP_FIONREAD_LINUXMODE 0
1837 #if !defined LWIP_STATS || defined __DOXYGEN__
1838 #define LWIP_STATS 1
1846 #if !defined LWIP_STATS_DISPLAY || defined __DOXYGEN__
1847 #define LWIP_STATS_DISPLAY 0
1853 #if !defined LINK_STATS || defined __DOXYGEN__
1854 #define LINK_STATS 1
1860 #if !defined ETHARP_STATS || defined __DOXYGEN__
1861 #define ETHARP_STATS (LWIP_ARP)
1867 #if !defined IP_STATS || defined __DOXYGEN__
1875 #if !defined IPFRAG_STATS || defined __DOXYGEN__
1876 #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
1882 #if !defined ICMP_STATS || defined __DOXYGEN__
1883 #define ICMP_STATS 1
1889 #if !defined IGMP_STATS || defined __DOXYGEN__
1890 #define IGMP_STATS (LWIP_IGMP)
1897 #if !defined UDP_STATS || defined __DOXYGEN__
1898 #define UDP_STATS (LWIP_UDP)
1905 #if !defined TCP_STATS || defined __DOXYGEN__
1906 #define TCP_STATS (LWIP_TCP)
1912 #if !defined MEM_STATS || defined __DOXYGEN__
1913 #define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
1919 #if !defined MEMP_STATS || defined __DOXYGEN__
1920 #define MEMP_STATS (MEMP_MEM_MALLOC == 0)
1926 #if !defined SYS_STATS || defined __DOXYGEN__
1927 #define SYS_STATS (NO_SYS == 0)
1933 #if !defined IP6_STATS || defined __DOXYGEN__
1934 #define IP6_STATS (LWIP_IPV6)
1940 #if !defined ICMP6_STATS || defined __DOXYGEN__
1941 #define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6)
1947 #if !defined IP6_FRAG_STATS || defined __DOXYGEN__
1948 #define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
1954 #if !defined MLD6_STATS || defined __DOXYGEN__
1955 #define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD)
1961 #if !defined ND6_STATS || defined __DOXYGEN__
1962 #define ND6_STATS (LWIP_IPV6)
1968 #if !defined MIB2_STATS || defined __DOXYGEN__
1969 #define MIB2_STATS 0
1974 #define LINK_STATS 0
1975 #define ETHARP_STATS 0
1977 #define IPFRAG_STATS 0
1978 #define ICMP_STATS 0
1979 #define IGMP_STATS 0
1983 #define MEMP_STATS 0
1985 #define LWIP_STATS_DISPLAY 0
1987 #define ICMP6_STATS 0
1988 #define IP6_FRAG_STATS 0
1989 #define MLD6_STATS 0
1991 #define MIB2_STATS 0
2013 #if !defined LWIP_CHECKSUM_CTRL_PER_NETIF || defined __DOXYGEN__
2014 #define LWIP_CHECKSUM_CTRL_PER_NETIF 0
2020 #if !defined CHECKSUM_GEN_IP || defined __DOXYGEN__
2021 #define CHECKSUM_GEN_IP 1
2027 #if !defined CHECKSUM_GEN_UDP || defined __DOXYGEN__
2028 #define CHECKSUM_GEN_UDP 1
2034 #if !defined CHECKSUM_GEN_TCP || defined __DOXYGEN__
2035 #define CHECKSUM_GEN_TCP 1
2041 #if !defined CHECKSUM_GEN_ICMP || defined __DOXYGEN__
2042 #define CHECKSUM_GEN_ICMP 1
2048 #if !defined CHECKSUM_GEN_ICMP6 || defined __DOXYGEN__
2049 #define CHECKSUM_GEN_ICMP6 1
2055 #if !defined CHECKSUM_CHECK_IP || defined __DOXYGEN__
2056 #define CHECKSUM_CHECK_IP 1
2062 #if !defined CHECKSUM_CHECK_UDP || defined __DOXYGEN__
2063 #define CHECKSUM_CHECK_UDP 1
2069 #if !defined CHECKSUM_CHECK_TCP || defined __DOXYGEN__
2070 #define CHECKSUM_CHECK_TCP 1
2076 #if !defined CHECKSUM_CHECK_ICMP || defined __DOXYGEN__
2077 #define CHECKSUM_CHECK_ICMP 1
2083 #if !defined CHECKSUM_CHECK_ICMP6 || defined __DOXYGEN__
2084 #define CHECKSUM_CHECK_ICMP6 1
2091 #if !defined LWIP_CHECKSUM_ON_COPY || defined __DOXYGEN__
2092 #define LWIP_CHECKSUM_ON_COPY 0
2111 #if !defined LWIP_IPV6 || defined __DOXYGEN__
2118 #if !defined LWIP_IPV6_NUM_ADDRESSES || defined __DOXYGEN__
2119 #define LWIP_IPV6_NUM_ADDRESSES 3
2125 #if !defined LWIP_IPV6_FORWARD || defined __DOXYGEN__
2126 #define LWIP_IPV6_FORWARD 0
2132 #if !defined LWIP_IPV6_FRAG || defined __DOXYGEN__
2133 #define LWIP_IPV6_FRAG 0
2139 #if !defined LWIP_IPV6_REASS || defined __DOXYGEN__
2140 #define LWIP_IPV6_REASS (LWIP_IPV6)
2147 #if !defined LWIP_IPV6_SEND_ROUTER_SOLICIT || defined __DOXYGEN__
2148 #define LWIP_IPV6_SEND_ROUTER_SOLICIT 1
2154 #if !defined LWIP_IPV6_AUTOCONFIG || defined __DOXYGEN__
2155 #define LWIP_IPV6_AUTOCONFIG (LWIP_IPV6)
2161 #if !defined LWIP_IPV6_DUP_DETECT_ATTEMPTS || defined __DOXYGEN__
2162 #define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1
2176 #if !defined LWIP_ICMP6 || defined __DOXYGEN__
2177 #define LWIP_ICMP6 (LWIP_IPV6)
2184 #if !defined LWIP_ICMP6_DATASIZE || defined __DOXYGEN__
2185 #define LWIP_ICMP6_DATASIZE 8
2191 #if !defined LWIP_ICMP6_HL || defined __DOXYGEN__
2192 #define LWIP_ICMP6_HL 255
2208 #if !defined LWIP_IPV6_MLD || defined __DOXYGEN__
2209 #define LWIP_IPV6_MLD (LWIP_IPV6)
2218 #if !defined MEMP_NUM_MLD6_GROUP || defined __DOXYGEN__
2219 #define MEMP_NUM_MLD6_GROUP 4
2234 #if !defined LWIP_ND6_QUEUEING || defined __DOXYGEN__
2235 #define LWIP_ND6_QUEUEING (LWIP_IPV6)
2241 #if !defined MEMP_NUM_ND6_QUEUE || defined __DOXYGEN__
2242 #define MEMP_NUM_ND6_QUEUE 20
2248 #if !defined LWIP_ND6_NUM_NEIGHBORS || defined __DOXYGEN__
2249 #define LWIP_ND6_NUM_NEIGHBORS 10
2255 #if !defined LWIP_ND6_NUM_DESTINATIONS || defined __DOXYGEN__
2256 #define LWIP_ND6_NUM_DESTINATIONS 10
2262 #if !defined LWIP_ND6_NUM_PREFIXES || defined __DOXYGEN__
2263 #define LWIP_ND6_NUM_PREFIXES 5
2269 #if !defined LWIP_ND6_NUM_ROUTERS || defined __DOXYGEN__
2270 #define LWIP_ND6_NUM_ROUTERS 3
2277 #if !defined LWIP_ND6_MAX_MULTICAST_SOLICIT || defined __DOXYGEN__
2278 #define LWIP_ND6_MAX_MULTICAST_SOLICIT 3
2285 #if !defined LWIP_ND6_MAX_UNICAST_SOLICIT || defined __DOXYGEN__
2286 #define LWIP_ND6_MAX_UNICAST_SOLICIT 3
2292 #if !defined LWIP_ND6_MAX_ANYCAST_DELAY_TIME || defined __DOXYGEN__
2293 #define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000
2299 #if !defined LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT || defined __DOXYGEN__
2300 #define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3
2307 #if !defined LWIP_ND6_REACHABLE_TIME || defined __DOXYGEN__
2308 #define LWIP_ND6_REACHABLE_TIME 30000
2314 #if !defined LWIP_ND6_RETRANS_TIMER || defined __DOXYGEN__
2315 #define LWIP_ND6_RETRANS_TIMER 1000
2322 #if !defined LWIP_ND6_DELAY_FIRST_PROBE_TIME || defined __DOXYGEN__
2323 #define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000
2330 #if !defined LWIP_ND6_ALLOW_RA_UPDATES || defined __DOXYGEN__
2331 #define LWIP_ND6_ALLOW_RA_UPDATES 1
2339 #if !defined LWIP_ND6_TCP_REACHABILITY_HINTS || defined __DOXYGEN__
2340 #define LWIP_ND6_TCP_REACHABILITY_HINTS 1
2348 #if !defined LWIP_ND6_RDNSS_MAX_DNS_SERVERS || defined __DOXYGEN__
2349 #define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
2358 #if !defined LWIP_IPV6_DHCP6 || defined __DOXYGEN__
2359 #define LWIP_IPV6_DHCP6 0
2381 #define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h"
2404 #define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port)
2419 #define LWIP_HOOK_IP4_INPUT(pbuf, input_netif)
2430 #define LWIP_HOOK_IP4_ROUTE()
2438 #define LWIP_HOOK_IP4_ROUTE_SRC(dest, src)
2454 #define LWIP_HOOK_ETHARP_GET_GW(netif, dest)
2469 #define LWIP_HOOK_IP6_INPUT(pbuf, input_netif)
2481 #define LWIP_HOOK_IP6_ROUTE(src, dest)
2497 #define LWIP_HOOK_ND6_GET_GW(netif, dest)
2511 #define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr)
2533 #define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type)
2541 #define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type)
2551 #define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
2573 #if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__
2574 #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
2582 #if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__
2583 #define LWIP_DBG_TYPES_ON LWIP_DBG_ON
2589 #if !defined ETHARP_DEBUG || defined __DOXYGEN__
2590 #define ETHARP_DEBUG LWIP_DBG_OFF
2596 #if !defined NETIF_DEBUG || defined __DOXYGEN__
2597 #define NETIF_DEBUG LWIP_DBG_OFF
2603 #if !defined PBUF_DEBUG || defined __DOXYGEN__
2604 #define PBUF_DEBUG LWIP_DBG_OFF
2610 #if !defined API_LIB_DEBUG || defined __DOXYGEN__
2611 #define API_LIB_DEBUG LWIP_DBG_OFF
2617 #if !defined API_MSG_DEBUG || defined __DOXYGEN__
2618 #define API_MSG_DEBUG LWIP_DBG_OFF
2624 #if !defined SOCKETS_DEBUG || defined __DOXYGEN__
2625 #define SOCKETS_DEBUG LWIP_DBG_OFF
2631 #if !defined ICMP_DEBUG || defined __DOXYGEN__
2632 #define ICMP_DEBUG LWIP_DBG_OFF
2638 #if !defined IGMP_DEBUG || defined __DOXYGEN__
2639 #define IGMP_DEBUG LWIP_DBG_OFF
2645 #if !defined INET_DEBUG || defined __DOXYGEN__
2646 #define INET_DEBUG LWIP_DBG_OFF
2652 #if !defined IP_DEBUG || defined __DOXYGEN__
2653 #define IP_DEBUG LWIP_DBG_OFF
2659 #if !defined IP_REASS_DEBUG || defined __DOXYGEN__
2660 #define IP_REASS_DEBUG LWIP_DBG_OFF
2666 #if !defined RAW_DEBUG || defined __DOXYGEN__
2667 #define RAW_DEBUG LWIP_DBG_OFF
2673 #if !defined MEM_DEBUG || defined __DOXYGEN__
2674 #define MEM_DEBUG LWIP_DBG_OFF
2680 #if !defined MEMP_DEBUG || defined __DOXYGEN__
2681 #define MEMP_DEBUG LWIP_DBG_OFF
2687 #if !defined SYS_DEBUG || defined __DOXYGEN__
2688 #define SYS_DEBUG LWIP_DBG_OFF
2694 #if !defined TIMERS_DEBUG || defined __DOXYGEN__
2695 #define TIMERS_DEBUG LWIP_DBG_OFF
2701 #if !defined TCP_DEBUG || defined __DOXYGEN__
2702 #define TCP_DEBUG LWIP_DBG_OFF
2708 #if !defined TCP_INPUT_DEBUG || defined __DOXYGEN__
2709 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
2715 #if !defined TCP_FR_DEBUG || defined __DOXYGEN__
2716 #define TCP_FR_DEBUG LWIP_DBG_OFF
2723 #if !defined TCP_RTO_DEBUG || defined __DOXYGEN__
2724 #define TCP_RTO_DEBUG LWIP_DBG_OFF
2730 #if !defined TCP_CWND_DEBUG || defined __DOXYGEN__
2731 #define TCP_CWND_DEBUG LWIP_DBG_OFF
2737 #if !defined TCP_WND_DEBUG || defined __DOXYGEN__
2738 #define TCP_WND_DEBUG LWIP_DBG_OFF
2744 #if !defined TCP_OUTPUT_DEBUG || defined __DOXYGEN__
2745 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
2751 #if !defined TCP_RST_DEBUG || defined __DOXYGEN__
2752 #define TCP_RST_DEBUG LWIP_DBG_OFF
2758 #if !defined TCP_QLEN_DEBUG || defined __DOXYGEN__
2759 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
2765 #if !defined UDP_DEBUG || defined __DOXYGEN__
2766 #define UDP_DEBUG LWIP_DBG_OFF
2772 #if !defined TCPIP_DEBUG || defined __DOXYGEN__
2773 #define TCPIP_DEBUG LWIP_DBG_OFF
2779 #if !defined SLIP_DEBUG || defined __DOXYGEN__
2780 #define SLIP_DEBUG LWIP_DBG_OFF
2786 #if !defined DHCP_DEBUG || defined __DOXYGEN__
2787 #define DHCP_DEBUG LWIP_DBG_OFF
2793 #if !defined AUTOIP_DEBUG || defined __DOXYGEN__
2794 #define AUTOIP_DEBUG LWIP_DBG_OFF
2800 #if !defined DNS_DEBUG || defined __DOXYGEN__
2801 #define DNS_DEBUG LWIP_DBG_OFF
2807 #if !defined IP6_DEBUG || defined __DOXYGEN__
2808 #define IP6_DEBUG LWIP_DBG_OFF
2828 #if !defined LWIP_PERF || defined __DOXYGEN__