TuyaOS
opt.h
浏览该文件的文档.
1
7/*
8 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
9 * All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without modification,
12 * are permitted provided that the following conditions are met:
13 *
14 * 1. Redistributions of source code must retain the above copyright notice,
15 * this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright notice,
17 * this list of conditions and the following disclaimer in the documentation
18 * and/or other materials provided with the distribution.
19 * 3. The name of the author may not be used to endorse or promote products
20 * derived from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
23 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
25 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
27 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
30 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
31 * OF SUCH DAMAGE.
32 *
33 * This file is part of the lwIP TCP/IP stack.
34 *
35 * Author: Adam Dunkels <adam@sics.se>
36 *
37 */
38
39/*
40 * NOTE: || defined __DOXYGEN__ is a workaround for doxygen bug -
41 * without this, doxygen does not see the actual #define
42 */
43
44#if !defined LWIP_HDR_OPT_H
45#define LWIP_HDR_OPT_H
46
47/*
48 * Include user defined options first. Anything not defined in these files
49 * will be set to standard values. Override anything you don't like!
50 */
51#include "lwipopts.h"
52#include "lwip/debug.h"
53
71 /*
72 ------------------------------------
73 -------------- NO SYS --------------
74 ------------------------------------
75*/
88#if !defined NO_SYS || defined __DOXYGEN__
89#define NO_SYS 0
90#endif
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))
108#else
109#define LWIP_TIMERS 1
110#endif
111#endif
112
120#if !defined LWIP_TIMERS_CUSTOM || defined __DOXYGEN__
121#define LWIP_TIMERS_CUSTOM 0
122#endif
136#if !defined MEMCPY || defined __DOXYGEN__
137#define MEMCPY(dst,src,len) memcpy(dst,src,len)
138#endif
139
144#if !defined SMEMCPY || defined __DOXYGEN__
145#define SMEMCPY(dst,src,len) memcpy(dst,src,len)
146#endif
147
153#if !defined MEMMOVE || defined __DOXYGEN__
154#define MEMMOVE(dst,src,len) memmove(dst,src,len)
155#endif
160/*
161 ------------------------------------
162 ----------- Core locking -----------
163 ------------------------------------
164*/
177#if !defined LWIP_MPU_COMPATIBLE || defined __DOXYGEN__
178#define LWIP_MPU_COMPATIBLE 0
179#endif
180
189#if !defined LWIP_TCPIP_CORE_LOCKING || defined __DOXYGEN__
190#define LWIP_TCPIP_CORE_LOCKING 1
191#endif
192
201#if !defined LWIP_TCPIP_CORE_LOCKING_INPUT || defined __DOXYGEN__
202#define LWIP_TCPIP_CORE_LOCKING_INPUT 0
203#endif
204
212#if !defined SYS_LIGHTWEIGHT_PROT || defined __DOXYGEN__
213#define SYS_LIGHTWEIGHT_PROT 1
214#endif
215
226#if !defined LWIP_ASSERT_CORE_LOCKED || defined __DOXYGEN__
227#define LWIP_ASSERT_CORE_LOCKED()
228#endif
229
235#if !defined LWIP_MARK_TCPIP_THREAD || defined __DOXYGEN__
236#define LWIP_MARK_TCPIP_THREAD()
237#endif
242/*
243 ------------------------------------
244 ---------- Memory options ----------
245 ------------------------------------
246*/
257#if !defined MEM_LIBC_MALLOC || defined __DOXYGEN__
258#define MEM_LIBC_MALLOC 0
259#endif
260
270#if !defined MEMP_MEM_MALLOC || defined __DOXYGEN__
271#define MEMP_MEM_MALLOC 0
272#endif
273
279#if !defined MEMP_MEM_INIT || defined __DOXYGEN__
280#define MEMP_MEM_INIT 0
281#endif
282
288#if !defined MEM_ALIGNMENT || defined __DOXYGEN__
289#define MEM_ALIGNMENT 1
290#endif
291
296#if !defined MEM_SIZE || defined __DOXYGEN__
297#define MEM_SIZE 1600
298#endif
299
309#if !defined MEMP_OVERFLOW_CHECK || defined __DOXYGEN__
310#define MEMP_OVERFLOW_CHECK 0
311#endif
312
317#if !defined MEMP_SANITY_CHECK || defined __DOXYGEN__
318#define MEMP_SANITY_CHECK 0
319#endif
320
330#if !defined MEM_OVERFLOW_CHECK || defined __DOXYGEN__
331#define MEM_OVERFLOW_CHECK 0
332#endif
333
338#if !defined MEM_SANITY_CHECK || defined __DOXYGEN__
339#define MEM_SANITY_CHECK 0
340#endif
341
348#if !defined MEM_USE_POOLS || defined __DOXYGEN__
349#define MEM_USE_POOLS 0
350#endif
351
356#if !defined MEM_USE_POOLS_TRY_BIGGER_POOL || defined __DOXYGEN__
357#define MEM_USE_POOLS_TRY_BIGGER_POOL 0
358#endif
359
366#if !defined MEMP_USE_CUSTOM_POOLS || defined __DOXYGEN__
367#define MEMP_USE_CUSTOM_POOLS 0
368#endif
369
388#if !defined LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT || defined __DOXYGEN__
389#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
390#endif
395/*
396 ------------------------------------------------
397 ---------- Internal Memory Pool Sizes ----------
398 ------------------------------------------------
399*/
410#if !defined MEMP_NUM_PBUF || defined __DOXYGEN__
411#define MEMP_NUM_PBUF 16
412#endif
413
418#if !defined MEMP_NUM_RAW_PCB || defined __DOXYGEN__
419#define MEMP_NUM_RAW_PCB 4
420#endif
421
427#if !defined MEMP_NUM_UDP_PCB || defined __DOXYGEN__
428#define MEMP_NUM_UDP_PCB 4
429#endif
430
435#if !defined MEMP_NUM_TCP_PCB || defined __DOXYGEN__
436#define MEMP_NUM_TCP_PCB 5
437#endif
438
443#if !defined MEMP_NUM_TCP_PCB_LISTEN || defined __DOXYGEN__
444#define MEMP_NUM_TCP_PCB_LISTEN 8
445#endif
446
451#if !defined MEMP_NUM_TCP_SEG || defined __DOXYGEN__
452#define MEMP_NUM_TCP_SEG 16
453#endif
454
461#if !defined MEMP_NUM_ALTCP_PCB || defined __DOXYGEN__
462#define MEMP_NUM_ALTCP_PCB MEMP_NUM_TCP_PCB
463#endif
464
469#if !defined MEMP_NUM_REASSDATA || defined __DOXYGEN__
470#define MEMP_NUM_REASSDATA 5
471#endif
472
480#if !defined MEMP_NUM_FRAG_PBUF || defined __DOXYGEN__
481#define MEMP_NUM_FRAG_PBUF 15
482#endif
483
490#if !defined MEMP_NUM_ARP_QUEUE || defined __DOXYGEN__
491#define MEMP_NUM_ARP_QUEUE 30
492#endif
493
500#if !defined MEMP_NUM_IGMP_GROUP || defined __DOXYGEN__
501#define MEMP_NUM_IGMP_GROUP 8
502#endif
503
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)))
509
515#if !defined MEMP_NUM_SYS_TIMEOUT || defined __DOXYGEN__
516#define MEMP_NUM_SYS_TIMEOUT LWIP_NUM_SYS_TIMEOUT_INTERNAL
517#endif
518
523#if !defined MEMP_NUM_NETBUF || defined __DOXYGEN__
524#define MEMP_NUM_NETBUF 2
525#endif
526
531#if !defined MEMP_NUM_NETCONN || defined __DOXYGEN__
532#define MEMP_NUM_NETCONN 4
533#endif
534
540#if !defined MEMP_NUM_SELECT_CB || defined __DOXYGEN__
541#define MEMP_NUM_SELECT_CB 4
542#endif
543
549#if !defined MEMP_NUM_TCPIP_MSG_API || defined __DOXYGEN__
550#define MEMP_NUM_TCPIP_MSG_API 8
551#endif
552
558#if !defined MEMP_NUM_TCPIP_MSG_INPKT || defined __DOXYGEN__
559#define MEMP_NUM_TCPIP_MSG_INPKT 8
560#endif
561
566#if !defined MEMP_NUM_NETDB || defined __DOXYGEN__
567#define MEMP_NUM_NETDB 1
568#endif
569
574#if !defined MEMP_NUM_LOCALHOSTLIST || defined __DOXYGEN__
575#define MEMP_NUM_LOCALHOSTLIST 1
576#endif
577
581#if !defined PBUF_POOL_SIZE || defined __DOXYGEN__
582#define PBUF_POOL_SIZE 16
583#endif
584
588#if !defined MEMP_NUM_API_MSG || defined __DOXYGEN__
589#define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API
590#endif
591
594#if !defined MEMP_NUM_DNS_API_MSG || defined __DOXYGEN__
595#define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API
596#endif
597
601#if !defined MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA || defined __DOXYGEN__
602#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API
603#endif
604
608#if !defined MEMP_NUM_NETIFAPI_MSG || defined __DOXYGEN__
609#define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API
610#endif
615/*
616 ---------------------------------
617 ---------- ARP options ----------
618 ---------------------------------
619*/
628#if !defined LWIP_ARP || defined __DOXYGEN__
629#define LWIP_ARP 1
630#endif
631
635#if !defined ARP_TABLE_SIZE || defined __DOXYGEN__
636#define ARP_TABLE_SIZE 10
637#endif
638
643#if !defined ARP_MAXAGE || defined __DOXYGEN__
644#define ARP_MAXAGE 300
645#endif
646
654#if !defined ARP_QUEUEING || defined __DOXYGEN__
655#define ARP_QUEUEING 0
656#endif
657
662#if !defined ARP_QUEUE_LEN || defined __DOXYGEN__
663#define ARP_QUEUE_LEN 3
664#endif
665
676#if !defined ETHARP_SUPPORT_VLAN || defined __DOXYGEN__
677#define ETHARP_SUPPORT_VLAN 0
678#endif
679
682#if !defined LWIP_ETHERNET || defined __DOXYGEN__
683#define LWIP_ETHERNET LWIP_ARP
684#endif
685
691#if !defined ETH_PAD_SIZE || defined __DOXYGEN__
692#define ETH_PAD_SIZE 0
693#endif
694
698#if !defined ETHARP_SUPPORT_STATIC_ENTRIES || defined __DOXYGEN__
699#define ETHARP_SUPPORT_STATIC_ENTRIES 0
700#endif
701
706#if !defined ETHARP_TABLE_MATCH_NETIF || defined __DOXYGEN__
707#define ETHARP_TABLE_MATCH_NETIF !LWIP_SINGLE_NETIF
708#endif
713/*
714 --------------------------------
715 ---------- IP options ----------
716 --------------------------------
717*/
726#if !defined LWIP_IPV4 || defined __DOXYGEN__
727#define LWIP_IPV4 1
728#endif
729
735#if !defined IP_FORWARD || defined __DOXYGEN__
736#define IP_FORWARD 0
737#endif
738
744#if !defined IP_REASSEMBLY || defined __DOXYGEN__
745#define IP_REASSEMBLY 1
746#endif
747
753#if !defined IP_FRAG || defined __DOXYGEN__
754#define IP_FRAG 1
755#endif
756
757#if !LWIP_IPV4
758/* disable IPv4 extensions when IPv4 is disabled */
759#undef IP_FORWARD
760#define IP_FORWARD 0
761#undef IP_REASSEMBLY
762#define IP_REASSEMBLY 0
763#undef IP_FRAG
764#define IP_FRAG 0
765#endif /* !LWIP_IPV4 */
766
772#if !defined IP_OPTIONS_ALLOWED || defined __DOXYGEN__
773#define IP_OPTIONS_ALLOWED 1
774#endif
775
781#if !defined IP_REASS_MAXAGE || defined __DOXYGEN__
782#define IP_REASS_MAXAGE 15
783#endif
784
793#if !defined IP_REASS_MAX_PBUFS || defined __DOXYGEN__
794#define IP_REASS_MAX_PBUFS 10
795#endif
796
800#if !defined IP_DEFAULT_TTL || defined __DOXYGEN__
801#define IP_DEFAULT_TTL 255
802#endif
803
809#if !defined IP_SOF_BROADCAST || defined __DOXYGEN__
810#define IP_SOF_BROADCAST 0
811#endif
812
817#if !defined IP_SOF_BROADCAST_RECV || defined __DOXYGEN__
818#define IP_SOF_BROADCAST_RECV 0
819#endif
820
828#if !defined IP_FORWARD_ALLOW_TX_ON_RX_NETIF || defined __DOXYGEN__
829#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
830#endif
835/*
836 ----------------------------------
837 ---------- ICMP options ----------
838 ----------------------------------
839*/
849#if !defined LWIP_ICMP || defined __DOXYGEN__
850#define LWIP_ICMP 1
851#endif
852
856#if !defined ICMP_TTL || defined __DOXYGEN__
857#define ICMP_TTL IP_DEFAULT_TTL
858#endif
859
863#if !defined LWIP_BROADCAST_PING || defined __DOXYGEN__
864#define LWIP_BROADCAST_PING 0
865#endif
866
870#if !defined LWIP_MULTICAST_PING || defined __DOXYGEN__
871#define LWIP_MULTICAST_PING 0
872#endif
877/*
878 ---------------------------------
879 ---------- RAW options ----------
880 ---------------------------------
881*/
890#if !defined LWIP_RAW || defined __DOXYGEN__
891#define LWIP_RAW 0
892#endif
893
897#if !defined RAW_TTL || defined __DOXYGEN__
898#define RAW_TTL IP_DEFAULT_TTL
899#endif
904/*
905 ----------------------------------
906 ---------- DHCP options ----------
907 ----------------------------------
908*/
917#if !defined LWIP_DHCP || defined __DOXYGEN__
918#define LWIP_DHCP 0
919#endif
920#if !LWIP_IPV4
921/* disable DHCP when IPv4 is disabled */
922#undef LWIP_DHCP
923#define LWIP_DHCP 0
924#endif /* !LWIP_IPV4 */
925
929#if !defined DHCP_DOES_ARP_CHECK || defined __DOXYGEN__
930#define DHCP_DOES_ARP_CHECK (LWIP_DHCP && LWIP_ARP)
931#endif
932
936#if !defined LWIP_DHCP_BOOTP_FILE || defined __DOXYGEN__
937#define LWIP_DHCP_BOOTP_FILE 0
938#endif
939
945#if !defined LWIP_DHCP_GET_NTP_SRV || defined __DOXYGEN__
946#define LWIP_DHCP_GET_NTP_SRV 0
947#endif
948
952#if !defined LWIP_DHCP_MAX_NTP_SERVERS || defined __DOXYGEN__
953#define LWIP_DHCP_MAX_NTP_SERVERS 1
954#endif
955
961#if !defined LWIP_DHCP_MAX_DNS_SERVERS || defined __DOXYGEN__
962#define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
963#endif
968/*
969 ------------------------------------
970 ---------- AUTOIP options ----------
971 ------------------------------------
972*/
981#if !defined LWIP_AUTOIP || defined __DOXYGEN__
982#define LWIP_AUTOIP 0
983#endif
984#if !LWIP_IPV4
985/* disable AUTOIP when IPv4 is disabled */
986#undef LWIP_AUTOIP
987#define LWIP_AUTOIP 0
988#endif /* !LWIP_IPV4 */
989
994#if !defined LWIP_DHCP_AUTOIP_COOP || defined __DOXYGEN__
995#define LWIP_DHCP_AUTOIP_COOP 0
996#endif
997
1005#if !defined LWIP_DHCP_AUTOIP_COOP_TRIES || defined __DOXYGEN__
1006#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
1007#endif
1012/*
1013 ----------------------------------
1014 ----- SNMP MIB2 support -----
1015 ----------------------------------
1016*/
1027#if !defined LWIP_MIB2_CALLBACKS || defined __DOXYGEN__
1028#define LWIP_MIB2_CALLBACKS 0
1029#endif
1034/*
1035 ----------------------------------
1036 -------- Multicast options -------
1037 ----------------------------------
1038*/
1049#if !defined LWIP_MULTICAST_TX_OPTIONS || defined __DOXYGEN__
1050#define LWIP_MULTICAST_TX_OPTIONS ((LWIP_IGMP || LWIP_IPV6_MLD) && (LWIP_UDP || LWIP_RAW))
1051#endif
1056/*
1057 ----------------------------------
1058 ---------- IGMP options ----------
1059 ----------------------------------
1060*/
1069#if !defined LWIP_IGMP || defined __DOXYGEN__
1070#define LWIP_IGMP 0
1071#endif
1072#if !LWIP_IPV4
1073#undef LWIP_IGMP
1074#define LWIP_IGMP 0
1075#endif
1080/*
1081 ----------------------------------
1082 ---------- DNS options -----------
1083 ----------------------------------
1084*/
1094#if !defined LWIP_DNS || defined __DOXYGEN__
1095#define LWIP_DNS 0
1096#endif
1097
1099#if !defined DNS_TABLE_SIZE || defined __DOXYGEN__
1100#define DNS_TABLE_SIZE 4
1101#endif
1102
1104#if !defined DNS_MAX_NAME_LENGTH || defined __DOXYGEN__
1105#define DNS_MAX_NAME_LENGTH 256
1106#endif
1107
1112#if !defined DNS_MAX_SERVERS || defined __DOXYGEN__
1113#define DNS_MAX_SERVERS 2
1114#endif
1115
1117#if !defined DNS_MAX_RETRIES || defined __DOXYGEN__
1118#define DNS_MAX_RETRIES 4
1119#endif
1120
1122#if !defined DNS_DOES_NAME_CHECK || defined __DOXYGEN__
1123#define DNS_DOES_NAME_CHECK 1
1124#endif
1125
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)
1132#endif
1133
1134/* A list of DNS security features follows */
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
1138
1147#if !defined DNS_LOCAL_HOSTLIST || defined __DOXYGEN__
1148#define DNS_LOCAL_HOSTLIST 0
1149#endif /* DNS_LOCAL_HOSTLIST */
1150
1153#if !defined DNS_LOCAL_HOSTLIST_IS_DYNAMIC || defined __DOXYGEN__
1154#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
1155#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
1156
1159#if !defined LWIP_DNS_SUPPORT_MDNS_QUERIES || defined __DOXYGEN__
1160#define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
1161#endif
1166/*
1167 ---------------------------------
1168 ---------- UDP options ----------
1169 ---------------------------------
1170*/
1179#if !defined LWIP_UDP || defined __DOXYGEN__
1180#define LWIP_UDP 1
1181#endif
1182
1186#if !defined LWIP_UDPLITE || defined __DOXYGEN__
1187#define LWIP_UDPLITE 0
1188#endif
1189
1193#if !defined UDP_TTL || defined __DOXYGEN__
1194#define UDP_TTL IP_DEFAULT_TTL
1195#endif
1196
1200#if !defined LWIP_NETBUF_RECVINFO || defined __DOXYGEN__
1201#define LWIP_NETBUF_RECVINFO 0
1202#endif
1207/*
1208 ---------------------------------
1209 ---------- TCP options ----------
1210 ---------------------------------
1211*/
1220#if !defined LWIP_TCP || defined __DOXYGEN__
1221#define LWIP_TCP 1
1222#endif
1223
1227#if !defined TCP_TTL || defined __DOXYGEN__
1228#define TCP_TTL IP_DEFAULT_TTL
1229#endif
1230
1238#if !defined TCP_WND || defined __DOXYGEN__
1239#define TCP_WND (4 * TCP_MSS)
1240#endif
1241
1245#if !defined TCP_MAXRTX || defined __DOXYGEN__
1246#define TCP_MAXRTX 12
1247#endif
1248
1252#if !defined TCP_SYNMAXRTX || defined __DOXYGEN__
1253#define TCP_SYNMAXRTX 6
1254#endif
1255
1260#if !defined TCP_QUEUE_OOSEQ || defined __DOXYGEN__
1261#define TCP_QUEUE_OOSEQ LWIP_TCP
1262#endif
1263
1267#if !defined LWIP_TCP_SACK_OUT || defined __DOXYGEN__
1268#define LWIP_TCP_SACK_OUT 0
1269#endif
1270
1281#if !defined LWIP_TCP_MAX_SACK_NUM || defined __DOXYGEN__
1282#define LWIP_TCP_MAX_SACK_NUM 4
1283#endif
1284
1292#if !defined TCP_MSS || defined __DOXYGEN__
1293#define TCP_MSS 536
1294#endif
1295
1304#if !defined TCP_CALCULATE_EFF_SEND_MSS || defined __DOXYGEN__
1305#define TCP_CALCULATE_EFF_SEND_MSS 1
1306#endif
1307
1308
1313#if !defined TCP_SND_BUF || defined __DOXYGEN__
1314#define TCP_SND_BUF (2 * TCP_MSS)
1315#endif
1316
1321#if !defined TCP_SND_QUEUELEN || defined __DOXYGEN__
1322#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
1323#endif
1324
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)
1332#endif
1333
1339#if !defined TCP_SNDQUEUELOWAT || defined __DOXYGEN__
1340#define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
1341#endif
1342
1348#if !defined TCP_OOSEQ_MAX_BYTES || defined __DOXYGEN__
1349#define TCP_OOSEQ_MAX_BYTES 0
1350#endif
1351
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)
1363#endif
1364#endif
1365
1371#if !defined TCP_OOSEQ_MAX_PBUFS || defined __DOXYGEN__
1372#define TCP_OOSEQ_MAX_PBUFS 0
1373#endif
1374
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)
1386#endif
1387#endif
1388
1392#if !defined TCP_LISTEN_BACKLOG || defined __DOXYGEN__
1393#define TCP_LISTEN_BACKLOG 0
1394#endif
1395
1401#if !defined TCP_DEFAULT_LISTEN_BACKLOG || defined __DOXYGEN__
1402#define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1403#endif
1404
1419#if !defined TCP_OVERSIZE || defined __DOXYGEN__
1420#define TCP_OVERSIZE TCP_MSS
1421#endif
1422
1429#if !defined LWIP_TCP_TIMESTAMPS || defined __DOXYGEN__
1430#define LWIP_TCP_TIMESTAMPS 0
1431#endif
1432
1437#if !defined TCP_WND_UPDATE_THRESHOLD || defined __DOXYGEN__
1438#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4))
1439#endif
1440
1448#if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API) || defined __DOXYGEN__
1449#define LWIP_EVENT_API 0
1450#define LWIP_CALLBACK_API 1
1451#else
1452#ifndef LWIP_EVENT_API
1453#define LWIP_EVENT_API 0
1454#endif
1455#ifndef LWIP_CALLBACK_API
1456#define LWIP_CALLBACK_API 0
1457#endif
1458#endif
1459
1468#if !defined LWIP_WND_SCALE || defined __DOXYGEN__
1469#define LWIP_WND_SCALE 0
1470#define TCP_RCV_SCALE 0
1471#endif
1472
1478#if !defined LWIP_TCP_PCB_NUM_EXT_ARGS || defined __DOXYGEN__
1479#define LWIP_TCP_PCB_NUM_EXT_ARGS 0
1480#endif
1481
1494#if !defined LWIP_ALTCP || defined __DOXYGEN__
1495#define LWIP_ALTCP 0
1496#endif
1497
1503#if !defined LWIP_ALTCP_TLS || defined __DOXYGEN__
1504#define LWIP_ALTCP_TLS 0
1505#endif
1506
1511/*
1512 ----------------------------------
1513 ---------- Pbuf options ----------
1514 ----------------------------------
1515*/
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)
1529#else /* LWIP_HOOK_VLAN_SET */
1530#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1531#endif /* LWIP_HOOK_VLAN_SET */
1532#endif
1533
1538#if !defined PBUF_LINK_ENCAPSULATION_HLEN || defined __DOXYGEN__
1539#define PBUF_LINK_ENCAPSULATION_HLEN 0
1540#endif
1541
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)
1549#endif
1550
1555#if !defined LWIP_PBUF_REF_T || defined __DOXYGEN__
1556#define LWIP_PBUF_REF_T u8_t
1557#endif
1562/*
1563 ------------------------------------------------
1564 ---------- Network Interfaces options ----------
1565 ------------------------------------------------
1566*/
1576#if !defined LWIP_SINGLE_NETIF || defined __DOXYGEN__
1577#define LWIP_SINGLE_NETIF 0
1578#endif
1579
1584#if !defined LWIP_NETIF_HOSTNAME || defined __DOXYGEN__
1585#define LWIP_NETIF_HOSTNAME 0
1586#endif
1587
1591#if !defined LWIP_NETIF_API || defined __DOXYGEN__
1592#define LWIP_NETIF_API 0
1593#endif
1594
1599#if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__
1600#define LWIP_NETIF_STATUS_CALLBACK 0
1601#endif
1602
1608#if !defined LWIP_NETIF_EXT_STATUS_CALLBACK || defined __DOXYGEN__
1609#define LWIP_NETIF_EXT_STATUS_CALLBACK 0
1610#endif
1611
1616#if !defined LWIP_NETIF_LINK_CALLBACK || defined __DOXYGEN__
1617#define LWIP_NETIF_LINK_CALLBACK 0
1618#endif
1619
1624#if !defined LWIP_NETIF_REMOVE_CALLBACK || defined __DOXYGEN__
1625#define LWIP_NETIF_REMOVE_CALLBACK 0
1626#endif
1627
1635#if !defined LWIP_NETIF_HWADDRHINT || defined __DOXYGEN__
1636#define LWIP_NETIF_HWADDRHINT 0
1637#endif
1638
1657#if !defined LWIP_NETIF_TX_SINGLE_PBUF || defined __DOXYGEN__
1658#define LWIP_NETIF_TX_SINGLE_PBUF 0
1659#endif /* LWIP_NETIF_TX_SINGLE_PBUF */
1660
1665#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
1666#define LWIP_NUM_NETIF_CLIENT_DATA 0
1667#endif
1672/*
1673 ------------------------------------
1674 ---------- LOOPIF options ----------
1675 ------------------------------------
1676*/
1687#if !defined LWIP_HAVE_LOOPIF || defined __DOXYGEN__
1688#define LWIP_HAVE_LOOPIF (LWIP_NETIF_LOOPBACK && !LWIP_SINGLE_NETIF)
1689#endif
1690
1694#if !defined LWIP_LOOPIF_MULTICAST || defined __DOXYGEN__
1695#define LWIP_LOOPIF_MULTICAST 0
1696#endif
1697
1702#if !defined LWIP_NETIF_LOOPBACK || defined __DOXYGEN__
1703#define LWIP_NETIF_LOOPBACK 0
1704#endif
1705
1710#if !defined LWIP_LOOPBACK_MAX_PBUFS || defined __DOXYGEN__
1711#define LWIP_LOOPBACK_MAX_PBUFS 0
1712#endif
1713
1727#if !defined LWIP_NETIF_LOOPBACK_MULTITHREADING || defined __DOXYGEN__
1728#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1729#endif
1734/*
1735 ------------------------------------
1736 ---------- Thread options ----------
1737 ------------------------------------
1738*/
1747#if !defined TCPIP_THREAD_NAME || defined __DOXYGEN__
1748#define TCPIP_THREAD_NAME "tcpip_thread"
1749#endif
1750
1756#if !defined TCPIP_THREAD_STACKSIZE || defined __DOXYGEN__
1757#define TCPIP_THREAD_STACKSIZE 0
1758#endif
1759
1765#if !defined TCPIP_THREAD_PRIO || defined __DOXYGEN__
1766#define TCPIP_THREAD_PRIO 1
1767#endif
1768
1774#if !defined TCPIP_MBOX_SIZE || defined __DOXYGEN__
1775#define TCPIP_MBOX_SIZE 0
1776#endif
1777
1782#if !defined LWIP_TCPIP_THREAD_ALIVE || defined __DOXYGEN__
1783#define LWIP_TCPIP_THREAD_ALIVE()
1784#endif
1785
1789#if !defined SLIPIF_THREAD_NAME || defined __DOXYGEN__
1790#define SLIPIF_THREAD_NAME "slipif_loop"
1791#endif
1792
1798#if !defined SLIPIF_THREAD_STACKSIZE || defined __DOXYGEN__
1799#define SLIPIF_THREAD_STACKSIZE 0
1800#endif
1801
1807#if !defined SLIPIF_THREAD_PRIO || defined __DOXYGEN__
1808#define SLIPIF_THREAD_PRIO 1
1809#endif
1810
1814#if !defined DEFAULT_THREAD_NAME || defined __DOXYGEN__
1815#define DEFAULT_THREAD_NAME "lwIP"
1816#endif
1817
1823#if !defined DEFAULT_THREAD_STACKSIZE || defined __DOXYGEN__
1824#define DEFAULT_THREAD_STACKSIZE 0
1825#endif
1826
1832#if !defined DEFAULT_THREAD_PRIO || defined __DOXYGEN__
1833#define DEFAULT_THREAD_PRIO 1
1834#endif
1835
1841#if !defined DEFAULT_RAW_RECVMBOX_SIZE || defined __DOXYGEN__
1842#define DEFAULT_RAW_RECVMBOX_SIZE 0
1843#endif
1844
1850#if !defined DEFAULT_UDP_RECVMBOX_SIZE || defined __DOXYGEN__
1851#define DEFAULT_UDP_RECVMBOX_SIZE 0
1852#endif
1853
1859#if !defined DEFAULT_TCP_RECVMBOX_SIZE || defined __DOXYGEN__
1860#define DEFAULT_TCP_RECVMBOX_SIZE 0
1861#endif
1862
1868#if !defined DEFAULT_ACCEPTMBOX_SIZE || defined __DOXYGEN__
1869#define DEFAULT_ACCEPTMBOX_SIZE 0
1870#endif
1875/*
1876 ----------------------------------------------
1877 ---------- Sequential layer options ----------
1878 ----------------------------------------------
1879*/
1888#if !defined LWIP_NETCONN || defined __DOXYGEN__
1889#define LWIP_NETCONN 1
1890#endif
1891
1895#if !defined LWIP_TCPIP_TIMEOUT || defined __DOXYGEN__
1896#define LWIP_TCPIP_TIMEOUT 0
1897#endif
1898
1909#if !defined LWIP_NETCONN_SEM_PER_THREAD || defined __DOXYGEN__
1910#define LWIP_NETCONN_SEM_PER_THREAD 0
1911#endif
1912
1921#if !defined LWIP_NETCONN_FULLDUPLEX || defined __DOXYGEN__
1922#define LWIP_NETCONN_FULLDUPLEX 0
1923#endif
1928/*
1929 ------------------------------------
1930 ---------- Socket options ----------
1931 ------------------------------------
1932*/
1941#if !defined LWIP_SOCKET || defined __DOXYGEN__
1942#define LWIP_SOCKET 1
1943#endif
1944
1951#if !defined LWIP_COMPAT_SOCKETS || defined __DOXYGEN__
1952#define LWIP_COMPAT_SOCKETS 1
1953#endif
1954
1960#if !defined LWIP_POSIX_SOCKETS_IO_NAMES || defined __DOXYGEN__
1961#define LWIP_POSIX_SOCKETS_IO_NAMES 1
1962#endif
1963
1971#if !defined LWIP_SOCKET_OFFSET || defined __DOXYGEN__
1972#define LWIP_SOCKET_OFFSET 0
1973#endif
1974
1980#if !defined LWIP_TCP_KEEPALIVE || defined __DOXYGEN__
1981#define LWIP_TCP_KEEPALIVE 0
1982#endif
1983
1988#if !defined LWIP_SO_SNDTIMEO || defined __DOXYGEN__
1989#define LWIP_SO_SNDTIMEO 0
1990#endif
1991
1996#if !defined LWIP_SO_RCVTIMEO || defined __DOXYGEN__
1997#define LWIP_SO_RCVTIMEO 0
1998#endif
1999
2004#if !defined LWIP_SO_SNDRCVTIMEO_NONSTANDARD || defined __DOXYGEN__
2005#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
2006#endif
2007
2011#if !defined LWIP_SO_RCVBUF || defined __DOXYGEN__
2012#define LWIP_SO_RCVBUF 0
2013#endif
2014
2018#if !defined LWIP_SO_LINGER || defined __DOXYGEN__
2019#define LWIP_SO_LINGER 0
2020#endif
2021
2025#if !defined RECV_BUFSIZE_DEFAULT || defined __DOXYGEN__
2026#define RECV_BUFSIZE_DEFAULT INT_MAX
2027#endif
2028
2032#if !defined LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT || defined __DOXYGEN__
2033#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
2034#endif
2035
2039#if !defined SO_REUSE || defined __DOXYGEN__
2040#define SO_REUSE 0
2041#endif
2042
2048#if !defined SO_REUSE_RXTOALL || defined __DOXYGEN__
2049#define SO_REUSE_RXTOALL 0
2050#endif
2051
2060#if !defined LWIP_FIONREAD_LINUXMODE || defined __DOXYGEN__
2061#define LWIP_FIONREAD_LINUXMODE 0
2062#endif
2063
2070#if !defined LWIP_SOCKET_SELECT || defined __DOXYGEN__
2071#define LWIP_SOCKET_SELECT 1
2072#endif
2073
2078#if !defined LWIP_SOCKET_POLL || defined __DOXYGEN__
2079#define LWIP_SOCKET_POLL 1
2080#endif
2085/*
2086 ----------------------------------------
2087 ---------- Statistics options ----------
2088 ----------------------------------------
2089*/
2098#if !defined LWIP_STATS || defined __DOXYGEN__
2099#define LWIP_STATS 1
2100#endif
2101
2102#if LWIP_STATS
2103
2107#if !defined LWIP_STATS_DISPLAY || defined __DOXYGEN__
2108#define LWIP_STATS_DISPLAY 0
2109#endif
2110
2114#if !defined LINK_STATS || defined __DOXYGEN__
2115#define LINK_STATS 1
2116#endif
2117
2121#if !defined ETHARP_STATS || defined __DOXYGEN__
2122#define ETHARP_STATS (LWIP_ARP)
2123#endif
2124
2128#if !defined IP_STATS || defined __DOXYGEN__
2129#define IP_STATS 1
2130#endif
2131
2136#if !defined IPFRAG_STATS || defined __DOXYGEN__
2137#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
2138#endif
2139
2143#if !defined ICMP_STATS || defined __DOXYGEN__
2144#define ICMP_STATS 1
2145#endif
2146
2150#if !defined IGMP_STATS || defined __DOXYGEN__
2151#define IGMP_STATS (LWIP_IGMP)
2152#endif
2153
2158#if !defined UDP_STATS || defined __DOXYGEN__
2159#define UDP_STATS (LWIP_UDP)
2160#endif
2161
2166#if !defined TCP_STATS || defined __DOXYGEN__
2167#define TCP_STATS (LWIP_TCP)
2168#endif
2169
2173#if !defined MEM_STATS || defined __DOXYGEN__
2174#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
2175#endif
2176
2180#if !defined MEMP_STATS || defined __DOXYGEN__
2181#define MEMP_STATS (MEMP_MEM_MALLOC == 0)
2182#endif
2183
2187#if !defined SYS_STATS || defined __DOXYGEN__
2188#define SYS_STATS (NO_SYS == 0)
2189#endif
2190
2194#if !defined IP6_STATS || defined __DOXYGEN__
2195#define IP6_STATS (LWIP_IPV6)
2196#endif
2197
2201#if !defined ICMP6_STATS || defined __DOXYGEN__
2202#define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6)
2203#endif
2204
2208#if !defined IP6_FRAG_STATS || defined __DOXYGEN__
2209#define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
2210#endif
2211
2215#if !defined MLD6_STATS || defined __DOXYGEN__
2216#define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD)
2217#endif
2218
2222#if !defined ND6_STATS || defined __DOXYGEN__
2223#define ND6_STATS (LWIP_IPV6)
2224#endif
2225
2229#if !defined MIB2_STATS || defined __DOXYGEN__
2230#define MIB2_STATS 0
2231#endif
2232
2233#else
2234
2235#define LINK_STATS 0
2236#define ETHARP_STATS 0
2237#define IP_STATS 0
2238#define IPFRAG_STATS 0
2239#define ICMP_STATS 0
2240#define IGMP_STATS 0
2241#define UDP_STATS 0
2242#define TCP_STATS 0
2243#define MEM_STATS 0
2244#define MEMP_STATS 0
2245#define SYS_STATS 0
2246#define LWIP_STATS_DISPLAY 0
2247#define IP6_STATS 0
2248#define ICMP6_STATS 0
2249#define IP6_FRAG_STATS 0
2250#define MLD6_STATS 0
2251#define ND6_STATS 0
2252#define MIB2_STATS 0
2253
2254#endif /* LWIP_STATS */
2259/*
2260 --------------------------------------
2261 ---------- Checksum options ----------
2262 --------------------------------------
2263*/
2274#if !defined LWIP_CHECKSUM_CTRL_PER_NETIF || defined __DOXYGEN__
2275#define LWIP_CHECKSUM_CTRL_PER_NETIF 0
2276#endif
2277
2281#if !defined CHECKSUM_GEN_IP || defined __DOXYGEN__
2282#define CHECKSUM_GEN_IP 1
2283#endif
2284
2288#if !defined CHECKSUM_GEN_UDP || defined __DOXYGEN__
2289#define CHECKSUM_GEN_UDP 1
2290#endif
2291
2295#if !defined CHECKSUM_GEN_TCP || defined __DOXYGEN__
2296#define CHECKSUM_GEN_TCP 1
2297#endif
2298
2302#if !defined CHECKSUM_GEN_ICMP || defined __DOXYGEN__
2303#define CHECKSUM_GEN_ICMP 1
2304#endif
2305
2309#if !defined CHECKSUM_GEN_ICMP6 || defined __DOXYGEN__
2310#define CHECKSUM_GEN_ICMP6 1
2311#endif
2312
2316#if !defined CHECKSUM_CHECK_IP || defined __DOXYGEN__
2317#define CHECKSUM_CHECK_IP 1
2318#endif
2319
2323#if !defined CHECKSUM_CHECK_UDP || defined __DOXYGEN__
2324#define CHECKSUM_CHECK_UDP 1
2325#endif
2326
2330#if !defined CHECKSUM_CHECK_TCP || defined __DOXYGEN__
2331#define CHECKSUM_CHECK_TCP 1
2332#endif
2333
2337#if !defined CHECKSUM_CHECK_ICMP || defined __DOXYGEN__
2338#define CHECKSUM_CHECK_ICMP 1
2339#endif
2340
2344#if !defined CHECKSUM_CHECK_ICMP6 || defined __DOXYGEN__
2345#define CHECKSUM_CHECK_ICMP6 1
2346#endif
2347
2352#if !defined LWIP_CHECKSUM_ON_COPY || defined __DOXYGEN__
2353#define LWIP_CHECKSUM_ON_COPY 0
2354#endif
2359/*
2360 ---------------------------------------
2361 ---------- IPv6 options ---------------
2362 ---------------------------------------
2363*/
2372#if !defined LWIP_IPV6 || defined __DOXYGEN__
2373#define LWIP_IPV6 0
2374#endif
2375
2381#if !defined IPV6_REASS_MAXAGE || defined __DOXYGEN__
2382#define IPV6_REASS_MAXAGE 60
2383#endif
2384
2402#if !defined LWIP_IPV6_SCOPES || defined __DOXYGEN__
2403#define LWIP_IPV6_SCOPES (LWIP_IPV6 && !LWIP_SINGLE_NETIF)
2404#endif
2405
2412#if !defined LWIP_IPV6_SCOPES_DEBUG || defined __DOXYGEN__
2413#define LWIP_IPV6_SCOPES_DEBUG 0
2414#endif
2415
2419#if !defined LWIP_IPV6_NUM_ADDRESSES || defined __DOXYGEN__
2420#define LWIP_IPV6_NUM_ADDRESSES 3
2421#endif
2422
2426#if !defined LWIP_IPV6_FORWARD || defined __DOXYGEN__
2427#define LWIP_IPV6_FORWARD 0
2428#endif
2429
2433#if !defined LWIP_IPV6_FRAG || defined __DOXYGEN__
2434#define LWIP_IPV6_FRAG 1
2435#endif
2436
2440#if !defined LWIP_IPV6_REASS || defined __DOXYGEN__
2441#define LWIP_IPV6_REASS LWIP_IPV6
2442#endif
2443
2448#if !defined LWIP_IPV6_SEND_ROUTER_SOLICIT || defined __DOXYGEN__
2449#define LWIP_IPV6_SEND_ROUTER_SOLICIT 1
2450#endif
2451
2455#if !defined LWIP_IPV6_AUTOCONFIG || defined __DOXYGEN__
2456#define LWIP_IPV6_AUTOCONFIG LWIP_IPV6
2457#endif
2458
2466#if !defined LWIP_IPV6_ADDRESS_LIFETIMES || defined __DOXYGEN__
2467#define LWIP_IPV6_ADDRESS_LIFETIMES LWIP_IPV6_AUTOCONFIG
2468#endif
2469
2473#if !defined LWIP_IPV6_DUP_DETECT_ATTEMPTS || defined __DOXYGEN__
2474#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1
2475#endif
2488#if !defined LWIP_ICMP6 || defined __DOXYGEN__
2489#define LWIP_ICMP6 LWIP_IPV6
2490#endif
2491
2496#if !defined LWIP_ICMP6_DATASIZE || defined __DOXYGEN__
2497#define LWIP_ICMP6_DATASIZE 8
2498#endif
2499
2503#if !defined LWIP_ICMP6_HL || defined __DOXYGEN__
2504#define LWIP_ICMP6_HL 255
2505#endif
2520#if !defined LWIP_IPV6_MLD || defined __DOXYGEN__
2521#define LWIP_IPV6_MLD LWIP_IPV6
2522#endif
2523
2530#if !defined MEMP_NUM_MLD6_GROUP || defined __DOXYGEN__
2531#define MEMP_NUM_MLD6_GROUP 4
2532#endif
2546#if !defined LWIP_ND6_QUEUEING || defined __DOXYGEN__
2547#define LWIP_ND6_QUEUEING LWIP_IPV6
2548#endif
2549
2553#if !defined MEMP_NUM_ND6_QUEUE || defined __DOXYGEN__
2554#define MEMP_NUM_ND6_QUEUE 20
2555#endif
2556
2560#if !defined LWIP_ND6_NUM_NEIGHBORS || defined __DOXYGEN__
2561#define LWIP_ND6_NUM_NEIGHBORS 10
2562#endif
2563
2567#if !defined LWIP_ND6_NUM_DESTINATIONS || defined __DOXYGEN__
2568#define LWIP_ND6_NUM_DESTINATIONS 10
2569#endif
2570
2574#if !defined LWIP_ND6_NUM_PREFIXES || defined __DOXYGEN__
2575#define LWIP_ND6_NUM_PREFIXES 5
2576#endif
2577
2581#if !defined LWIP_ND6_NUM_ROUTERS || defined __DOXYGEN__
2582#define LWIP_ND6_NUM_ROUTERS 3
2583#endif
2584
2589#if !defined LWIP_ND6_MAX_MULTICAST_SOLICIT || defined __DOXYGEN__
2590#define LWIP_ND6_MAX_MULTICAST_SOLICIT 3
2591#endif
2592
2597#if !defined LWIP_ND6_MAX_UNICAST_SOLICIT || defined __DOXYGEN__
2598#define LWIP_ND6_MAX_UNICAST_SOLICIT 3
2599#endif
2600
2604#if !defined LWIP_ND6_MAX_ANYCAST_DELAY_TIME || defined __DOXYGEN__
2605#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000
2606#endif
2607
2611#if !defined LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT || defined __DOXYGEN__
2612#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3
2613#endif
2614
2619#if !defined LWIP_ND6_REACHABLE_TIME || defined __DOXYGEN__
2620#define LWIP_ND6_REACHABLE_TIME 30000
2621#endif
2622
2626#if !defined LWIP_ND6_RETRANS_TIMER || defined __DOXYGEN__
2627#define LWIP_ND6_RETRANS_TIMER 1000
2628#endif
2629
2634#if !defined LWIP_ND6_DELAY_FIRST_PROBE_TIME || defined __DOXYGEN__
2635#define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000
2636#endif
2637
2642#if !defined LWIP_ND6_ALLOW_RA_UPDATES || defined __DOXYGEN__
2643#define LWIP_ND6_ALLOW_RA_UPDATES 1
2644#endif
2645
2651#if !defined LWIP_ND6_TCP_REACHABILITY_HINTS || defined __DOXYGEN__
2652#define LWIP_ND6_TCP_REACHABILITY_HINTS 1
2653#endif
2654
2660#if !defined LWIP_ND6_RDNSS_MAX_DNS_SERVERS || defined __DOXYGEN__
2661#define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
2662#endif
2675#if !defined LWIP_IPV6_DHCP6 || defined __DOXYGEN__
2676#define LWIP_IPV6_DHCP6 0
2677#endif
2678
2683#if !defined LWIP_IPV6_DHCP6_STATEFUL || defined __DOXYGEN__
2684#define LWIP_IPV6_DHCP6_STATEFUL 0
2685#endif
2686
2690#if !defined LWIP_IPV6_DHCP6_STATELESS || defined __DOXYGEN__
2691#define LWIP_IPV6_DHCP6_STATELESS LWIP_IPV6_DHCP6
2692#endif
2693
2699#if !defined LWIP_DHCP6_GET_NTP_SRV || defined __DOXYGEN__
2700#define LWIP_DHCP6_GET_NTP_SRV 0
2701#endif
2702
2706#if !defined LWIP_DHCP6_MAX_NTP_SERVERS || defined __DOXYGEN__
2707#define LWIP_DHCP6_MAX_NTP_SERVERS 1
2708#endif
2709
2715#if !defined LWIP_DHCP6_MAX_DNS_SERVERS || defined __DOXYGEN__
2716#define LWIP_DHCP6_MAX_DNS_SERVERS DNS_MAX_SERVERS
2717#endif
2722/*
2723 ---------------------------------------
2724 ---------- Hook options ---------------
2725 ---------------------------------------
2726*/
2727
2740#ifdef __DOXYGEN__
2741#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h"
2742#endif
2743
2765#ifdef __DOXYGEN__
2766#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port)
2767#endif
2768
2795#ifdef __DOXYGEN__
2796#define LWIP_HOOK_TCP_INPACKET_PCB(pcb, hdr, optlen, opt1len, opt2, p)
2797#endif
2798
2817#ifdef __DOXYGEN__
2818#define LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH(pcb, internal_len)
2819#endif
2820
2841#ifdef __DOXYGEN__
2842#define LWIP_HOOK_TCP_OUT_ADD_TCPOPTS(p, hdr, pcb, opts)
2843#endif
2844
2860#ifdef __DOXYGEN__
2861#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif)
2862#endif
2863
2876#ifdef __DOXYGEN__
2877#define LWIP_HOOK_IP4_ROUTE()
2878#endif
2879
2893#ifdef __DOXYGEN__
2894#define LWIP_HOOK_IP4_ROUTE_SRC(src, dest)
2895#endif
2896
2914#ifdef __DOXYGEN__
2915#define LWIP_HOOK_IP4_CANFORWARD(src, dest)
2916#endif
2917
2936#ifdef __DOXYGEN__
2937#define LWIP_HOOK_ETHARP_GET_GW(netif, dest)
2938#endif
2939
2955#ifdef __DOXYGEN__
2956#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif)
2957#endif
2958
2972#ifdef __DOXYGEN__
2973#define LWIP_HOOK_IP6_ROUTE(src, dest)
2974#endif
2975
2994#ifdef __DOXYGEN__
2995#define LWIP_HOOK_ND6_GET_GW(netif, dest)
2996#endif
2997
3012#ifdef __DOXYGEN__
3013#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr)
3014#endif
3015
3036#ifdef __DOXYGEN__
3037#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type)
3038#endif
3039
3047#ifdef __DOXYGEN__
3048#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type)
3049#endif
3050
3066#ifdef __DOXYGEN__
3067#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
3068#endif
3069
3095#ifdef __DOXYGEN__
3096#define LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, state, msg, msg_type, options_len_ptr)
3097#endif
3098
3123#ifdef __DOXYGEN__
3124#define LWIP_HOOK_DHCP_PARSE_OPTION(netif, dhcp, state, msg, msg_type, option, len, pbuf, offset)
3125#endif
3126
3151#ifdef __DOXYGEN__
3152#define LWIP_HOOK_DHCP6_APPEND_OPTIONS(netif, dhcp6, state, msg, msg_type, options_len_ptr, max_len)
3153#endif
3154
3174#ifdef __DOXYGEN__
3175#define LWIP_HOOK_SOCKETS_SETSOCKOPT(s, sock, level, optname, optval, optlen, err)
3176#endif
3177
3197#ifdef __DOXYGEN__
3198#define LWIP_HOOK_SOCKETS_GETSOCKOPT(s, sock, level, optname, optval, optlen, err)
3199#endif
3200
3220#ifdef __DOXYGEN__
3221#define LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, addrtype, err)
3222#endif
3227/*
3228 ---------------------------------------
3229 ---------- Debugging options ----------
3230 ---------------------------------------
3231*/
3243#if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__
3244#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
3245#endif
3246
3252#if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__
3253#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
3254#endif
3255
3259#if !defined ETHARP_DEBUG || defined __DOXYGEN__
3260#define ETHARP_DEBUG LWIP_DBG_OFF
3261#endif
3262
3266#if !defined NETIF_DEBUG || defined __DOXYGEN__
3267#define NETIF_DEBUG LWIP_DBG_OFF
3268#endif
3269
3273#if !defined PBUF_DEBUG || defined __DOXYGEN__
3274#define PBUF_DEBUG LWIP_DBG_OFF
3275#endif
3276
3280#if !defined API_LIB_DEBUG || defined __DOXYGEN__
3281#define API_LIB_DEBUG LWIP_DBG_OFF
3282#endif
3283
3287#if !defined API_MSG_DEBUG || defined __DOXYGEN__
3288#define API_MSG_DEBUG LWIP_DBG_OFF
3289#endif
3290
3294#if !defined SOCKETS_DEBUG || defined __DOXYGEN__
3295#define SOCKETS_DEBUG LWIP_DBG_OFF
3296#endif
3297
3301#if !defined ICMP_DEBUG || defined __DOXYGEN__
3302#define ICMP_DEBUG LWIP_DBG_OFF
3303#endif
3304
3308#if !defined IGMP_DEBUG || defined __DOXYGEN__
3309#define IGMP_DEBUG LWIP_DBG_OFF
3310#endif
3311
3315#if !defined INET_DEBUG || defined __DOXYGEN__
3316#define INET_DEBUG LWIP_DBG_OFF
3317#endif
3318
3322#if !defined IP_DEBUG || defined __DOXYGEN__
3323#define IP_DEBUG LWIP_DBG_OFF
3324#endif
3325
3329#if !defined IP_REASS_DEBUG || defined __DOXYGEN__
3330#define IP_REASS_DEBUG LWIP_DBG_OFF
3331#endif
3332
3336#if !defined RAW_DEBUG || defined __DOXYGEN__
3337#define RAW_DEBUG LWIP_DBG_OFF
3338#endif
3339
3343#if !defined MEM_DEBUG || defined __DOXYGEN__
3344#define MEM_DEBUG LWIP_DBG_OFF
3345#endif
3346
3350#if !defined MEMP_DEBUG || defined __DOXYGEN__
3351#define MEMP_DEBUG LWIP_DBG_OFF
3352#endif
3353
3357#if !defined SYS_DEBUG || defined __DOXYGEN__
3358#define SYS_DEBUG LWIP_DBG_OFF
3359#endif
3360
3364#if !defined TIMERS_DEBUG || defined __DOXYGEN__
3365#define TIMERS_DEBUG LWIP_DBG_OFF
3366#endif
3367
3371#if !defined TCP_DEBUG || defined __DOXYGEN__
3372#define TCP_DEBUG LWIP_DBG_OFF
3373#endif
3374
3378#if !defined TCP_INPUT_DEBUG || defined __DOXYGEN__
3379#define TCP_INPUT_DEBUG LWIP_DBG_OFF
3380#endif
3381
3385#if !defined TCP_FR_DEBUG || defined __DOXYGEN__
3386#define TCP_FR_DEBUG LWIP_DBG_OFF
3387#endif
3388
3393#if !defined TCP_RTO_DEBUG || defined __DOXYGEN__
3394#define TCP_RTO_DEBUG LWIP_DBG_OFF
3395#endif
3396
3400#if !defined TCP_CWND_DEBUG || defined __DOXYGEN__
3401#define TCP_CWND_DEBUG LWIP_DBG_OFF
3402#endif
3403
3407#if !defined TCP_WND_DEBUG || defined __DOXYGEN__
3408#define TCP_WND_DEBUG LWIP_DBG_OFF
3409#endif
3410
3414#if !defined TCP_OUTPUT_DEBUG || defined __DOXYGEN__
3415#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
3416#endif
3417
3421#if !defined TCP_RST_DEBUG || defined __DOXYGEN__
3422#define TCP_RST_DEBUG LWIP_DBG_OFF
3423#endif
3424
3428#if !defined TCP_QLEN_DEBUG || defined __DOXYGEN__
3429#define TCP_QLEN_DEBUG LWIP_DBG_OFF
3430#endif
3431
3435#if !defined UDP_DEBUG || defined __DOXYGEN__
3436#define UDP_DEBUG LWIP_DBG_OFF
3437#endif
3438
3442#if !defined TCPIP_DEBUG || defined __DOXYGEN__
3443#define TCPIP_DEBUG LWIP_DBG_OFF
3444#endif
3445
3449#if !defined SLIP_DEBUG || defined __DOXYGEN__
3450#define SLIP_DEBUG LWIP_DBG_OFF
3451#endif
3452
3456#if !defined DHCP_DEBUG || defined __DOXYGEN__
3457#define DHCP_DEBUG LWIP_DBG_OFF
3458#endif
3459
3463#if !defined AUTOIP_DEBUG || defined __DOXYGEN__
3464#define AUTOIP_DEBUG LWIP_DBG_OFF
3465#endif
3466
3470#if !defined DNS_DEBUG || defined __DOXYGEN__
3471#define DNS_DEBUG LWIP_DBG_OFF
3472#endif
3473
3477#if !defined IP6_DEBUG || defined __DOXYGEN__
3478#define IP6_DEBUG LWIP_DBG_OFF
3479#endif
3480
3484#if !defined DHCP6_DEBUG || defined __DOXYGEN__
3485#define DHCP6_DEBUG LWIP_DBG_OFF
3486#endif
3494#if !defined LWIP_TESTMODE
3495#define LWIP_TESTMODE 0
3496#endif
3497
3498/*
3499 --------------------------------------------------
3500 ---------- Performance tracking options ----------
3501 --------------------------------------------------
3502*/
3512#if !defined LWIP_PERF || defined __DOXYGEN__
3513#define LWIP_PERF 0
3514#endif
3519#endif /* LWIP_HDR_OPT_H */
LWIP功能和资源配置