ReactOS 0.4.16-dev-297-gc569aee
opt.h
Go to the documentation of this file.
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
230
235/*
236 ------------------------------------
237 ---------- Memory options ----------
238 ------------------------------------
239*/
250#if !defined MEM_LIBC_MALLOC || defined __DOXYGEN__
251#define MEM_LIBC_MALLOC 0
252#endif
253
263#if !defined MEMP_MEM_MALLOC || defined __DOXYGEN__
264#define MEMP_MEM_MALLOC 0
265#endif
266
272#if !defined MEMP_MEM_INIT || defined __DOXYGEN__
273#define MEMP_MEM_INIT 0
274#endif
275
281#if !defined MEM_ALIGNMENT || defined __DOXYGEN__
282#define MEM_ALIGNMENT 1
283#endif
284
289#if !defined MEM_SIZE || defined __DOXYGEN__
290#define MEM_SIZE 1600
291#endif
292
302#if !defined MEMP_OVERFLOW_CHECK || defined __DOXYGEN__
303#define MEMP_OVERFLOW_CHECK 0
304#endif
305
310#if !defined MEMP_SANITY_CHECK || defined __DOXYGEN__
311#define MEMP_SANITY_CHECK 0
312#endif
313
323#if !defined MEM_OVERFLOW_CHECK || defined __DOXYGEN__
324#define MEM_OVERFLOW_CHECK 0
325#endif
326
331#if !defined MEM_SANITY_CHECK || defined __DOXYGEN__
332#define MEM_SANITY_CHECK 0
333#endif
334
341#if !defined MEM_USE_POOLS || defined __DOXYGEN__
342#define MEM_USE_POOLS 0
343#endif
344
349#if !defined MEM_USE_POOLS_TRY_BIGGER_POOL || defined __DOXYGEN__
350#define MEM_USE_POOLS_TRY_BIGGER_POOL 0
351#endif
352
359#if !defined MEMP_USE_CUSTOM_POOLS || defined __DOXYGEN__
360#define MEMP_USE_CUSTOM_POOLS 0
361#endif
362
381#if !defined LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT || defined __DOXYGEN__
382#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
383#endif
388/*
389 ------------------------------------------------
390 ---------- Internal Memory Pool Sizes ----------
391 ------------------------------------------------
392*/
403#if !defined MEMP_NUM_PBUF || defined __DOXYGEN__
404#define MEMP_NUM_PBUF 16
405#endif
406
411#if !defined MEMP_NUM_RAW_PCB || defined __DOXYGEN__
412#define MEMP_NUM_RAW_PCB 4
413#endif
414
420#if !defined MEMP_NUM_UDP_PCB || defined __DOXYGEN__
421#define MEMP_NUM_UDP_PCB 4
422#endif
423
428#if !defined MEMP_NUM_TCP_PCB || defined __DOXYGEN__
429#define MEMP_NUM_TCP_PCB 5
430#endif
431
436#if !defined MEMP_NUM_TCP_PCB_LISTEN || defined __DOXYGEN__
437#define MEMP_NUM_TCP_PCB_LISTEN 8
438#endif
439
444#if !defined MEMP_NUM_TCP_SEG || defined __DOXYGEN__
445#define MEMP_NUM_TCP_SEG 16
446#endif
447
454#if !defined MEMP_NUM_ALTCP_PCB || defined __DOXYGEN__
455#define MEMP_NUM_ALTCP_PCB MEMP_NUM_TCP_PCB
456#endif
457
462#if !defined MEMP_NUM_REASSDATA || defined __DOXYGEN__
463#define MEMP_NUM_REASSDATA 5
464#endif
465
473#if !defined MEMP_NUM_FRAG_PBUF || defined __DOXYGEN__
474#define MEMP_NUM_FRAG_PBUF 15
475#endif
476
483#if !defined MEMP_NUM_ARP_QUEUE || defined __DOXYGEN__
484#define MEMP_NUM_ARP_QUEUE 30
485#endif
486
493#if !defined MEMP_NUM_IGMP_GROUP || defined __DOXYGEN__
494#define MEMP_NUM_IGMP_GROUP 8
495#endif
496
501#define LWIP_NUM_SYS_TIMEOUT_INTERNAL (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_ACD + LWIP_IGMP + LWIP_DNS + PPP_NUM_TIMEOUTS + (LWIP_IPV6 * (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD + LWIP_IPV6_DHCP6)))
502
508#if !defined MEMP_NUM_SYS_TIMEOUT || defined __DOXYGEN__
509#define MEMP_NUM_SYS_TIMEOUT LWIP_NUM_SYS_TIMEOUT_INTERNAL
510#endif
511
516#if !defined MEMP_NUM_NETBUF || defined __DOXYGEN__
517#define MEMP_NUM_NETBUF 2
518#endif
519
524#if !defined MEMP_NUM_NETCONN || defined __DOXYGEN__
525#define MEMP_NUM_NETCONN 4
526#endif
527
533#if !defined MEMP_NUM_SELECT_CB || defined __DOXYGEN__
534#define MEMP_NUM_SELECT_CB 4
535#endif
536
542#if !defined MEMP_NUM_TCPIP_MSG_API || defined __DOXYGEN__
543#define MEMP_NUM_TCPIP_MSG_API 8
544#endif
545
551#if !defined MEMP_NUM_TCPIP_MSG_INPKT || defined __DOXYGEN__
552#define MEMP_NUM_TCPIP_MSG_INPKT 8
553#endif
554
559#if !defined MEMP_NUM_NETDB || defined __DOXYGEN__
560#define MEMP_NUM_NETDB 1
561#endif
562
567#if !defined MEMP_NUM_LOCALHOSTLIST || defined __DOXYGEN__
568#define MEMP_NUM_LOCALHOSTLIST 1
569#endif
570
574#if !defined PBUF_POOL_SIZE || defined __DOXYGEN__
575#define PBUF_POOL_SIZE 16
576#endif
577
581#if !defined MEMP_NUM_API_MSG || defined __DOXYGEN__
582#define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API
583#endif
584
587#if !defined MEMP_NUM_DNS_API_MSG || defined __DOXYGEN__
588#define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API
589#endif
590
594#if !defined MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA || defined __DOXYGEN__
595#define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API
596#endif
597
601#if !defined MEMP_NUM_NETIFAPI_MSG || defined __DOXYGEN__
602#define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API
603#endif
608/*
609 ---------------------------------
610 ---------- ARP options ----------
611 ---------------------------------
612*/
621#if !defined LWIP_ARP || defined __DOXYGEN__
622#define LWIP_ARP 1
623#endif
624
628#if !defined ARP_TABLE_SIZE || defined __DOXYGEN__
629#define ARP_TABLE_SIZE 10
630#endif
631
636#if !defined ARP_MAXAGE || defined __DOXYGEN__
637#define ARP_MAXAGE 300
638#endif
639
647#if !defined ARP_QUEUEING || defined __DOXYGEN__
648#define ARP_QUEUEING 0
649#endif
650
655#if !defined ARP_QUEUE_LEN || defined __DOXYGEN__
656#define ARP_QUEUE_LEN 3
657#endif
658
669#if !defined ETHARP_SUPPORT_VLAN || defined __DOXYGEN__
670#define ETHARP_SUPPORT_VLAN 0
671#endif
672
683#ifndef LWIP_VLAN_PCP
684#define LWIP_VLAN_PCP 0
685#endif
686
689#if !defined LWIP_ETHERNET || defined __DOXYGEN__
690#define LWIP_ETHERNET LWIP_ARP
691#endif
692
698#if !defined ETH_PAD_SIZE || defined __DOXYGEN__
699#define ETH_PAD_SIZE 0
700#endif
701
705#if !defined ETHARP_SUPPORT_STATIC_ENTRIES || defined __DOXYGEN__
706#define ETHARP_SUPPORT_STATIC_ENTRIES 0
707#endif
708
713#if !defined ETHARP_TABLE_MATCH_NETIF || defined __DOXYGEN__
714#define ETHARP_TABLE_MATCH_NETIF !LWIP_SINGLE_NETIF
715#endif
720/*
721 --------------------------------
722 ---------- IP options ----------
723 --------------------------------
724*/
733#if !defined LWIP_IPV4 || defined __DOXYGEN__
734#define LWIP_IPV4 1
735#endif
736
742#if !defined IP_FORWARD || defined __DOXYGEN__
743#define IP_FORWARD 0
744#endif
745
751#if !defined IP_REASSEMBLY || defined __DOXYGEN__
752#define IP_REASSEMBLY 1
753#endif
754
760#if !defined IP_FRAG || defined __DOXYGEN__
761#define IP_FRAG 1
762#endif
763
764#if !LWIP_IPV4
765/* disable IPv4 extensions when IPv4 is disabled */
766#undef IP_FORWARD
767#define IP_FORWARD 0
768#undef IP_REASSEMBLY
769#define IP_REASSEMBLY 0
770#undef IP_FRAG
771#define IP_FRAG 0
772#endif /* !LWIP_IPV4 */
773
779#if !defined IP_OPTIONS_ALLOWED || defined __DOXYGEN__
780#define IP_OPTIONS_ALLOWED 1
781#endif
782
788#if !defined IP_REASS_MAXAGE || defined __DOXYGEN__
789#define IP_REASS_MAXAGE 15
790#endif
791
800#if !defined IP_REASS_MAX_PBUFS || defined __DOXYGEN__
801#define IP_REASS_MAX_PBUFS 10
802#endif
803
807#if !defined IP_DEFAULT_TTL || defined __DOXYGEN__
808#define IP_DEFAULT_TTL 255
809#endif
810
816#if !defined IP_SOF_BROADCAST || defined __DOXYGEN__
817#define IP_SOF_BROADCAST 0
818#endif
819
824#if !defined IP_SOF_BROADCAST_RECV || defined __DOXYGEN__
825#define IP_SOF_BROADCAST_RECV 0
826#endif
827
835#if !defined IP_FORWARD_ALLOW_TX_ON_RX_NETIF || defined __DOXYGEN__
836#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
837#endif
842/*
843 ----------------------------------
844 ---------- ICMP options ----------
845 ----------------------------------
846*/
856#if !defined LWIP_ICMP || defined __DOXYGEN__
857#define LWIP_ICMP 1
858#endif
859
863#if !defined ICMP_TTL || defined __DOXYGEN__
864#define ICMP_TTL IP_DEFAULT_TTL
865#endif
866
870#if !defined LWIP_BROADCAST_PING || defined __DOXYGEN__
871#define LWIP_BROADCAST_PING 0
872#endif
873
877#if !defined LWIP_MULTICAST_PING || defined __DOXYGEN__
878#define LWIP_MULTICAST_PING 0
879#endif
884/*
885 ---------------------------------
886 ---------- RAW options ----------
887 ---------------------------------
888*/
897#if !defined LWIP_RAW || defined __DOXYGEN__
898#define LWIP_RAW 0
899#endif
900
904#if !defined RAW_TTL || defined __DOXYGEN__
905#define RAW_TTL IP_DEFAULT_TTL
906#endif
911/*
912 ----------------------------------
913 ---------- DHCP options ----------
914 ----------------------------------
915*/
924#if !defined LWIP_DHCP || defined __DOXYGEN__
925#define LWIP_DHCP 0
926#endif
927#if !LWIP_IPV4
928/* disable DHCP when IPv4 is disabled */
929#undef LWIP_DHCP
930#define LWIP_DHCP 0
931#endif /* !LWIP_IPV4 */
932
936#if !defined LWIP_DHCP_DOES_ACD_CHECK || defined __DOXYGEN__
937#define LWIP_DHCP_DOES_ACD_CHECK LWIP_DHCP
938#endif
939
943#if !defined LWIP_DHCP_BOOTP_FILE || defined __DOXYGEN__
944#define LWIP_DHCP_BOOTP_FILE 0
945#endif
946
952#if !defined LWIP_DHCP_GET_NTP_SRV || defined __DOXYGEN__
953#define LWIP_DHCP_GET_NTP_SRV 0
954#endif
955
959#if !defined LWIP_DHCP_MAX_NTP_SERVERS || defined __DOXYGEN__
960#define LWIP_DHCP_MAX_NTP_SERVERS 1
961#endif
962
968#if !defined LWIP_DHCP_MAX_DNS_SERVERS || defined __DOXYGEN__
969#define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
970#endif
971
976#if !defined LWIP_DHCP_DISCOVER_ADD_HOSTNAME || defined __DOXYGEN__
977#define LWIP_DHCP_DISCOVER_ADD_HOSTNAME 0
978#endif /* LWIP_DHCP_DISCOVER_ADD_HOSTNAME */
983/*
984 ------------------------------------
985 ---------- AUTOIP options ----------
986 ------------------------------------
987*/
996#if !defined LWIP_AUTOIP || defined __DOXYGEN__
997#define LWIP_AUTOIP 0
998#endif
999#if !LWIP_IPV4
1000/* disable AUTOIP when IPv4 is disabled */
1001#undef LWIP_AUTOIP
1002#define LWIP_AUTOIP 0
1003#endif /* !LWIP_IPV4 */
1004
1009#if !defined LWIP_DHCP_AUTOIP_COOP || defined __DOXYGEN__
1010#define LWIP_DHCP_AUTOIP_COOP 0
1011#endif
1012
1020#if !defined LWIP_DHCP_AUTOIP_COOP_TRIES || defined __DOXYGEN__
1021#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
1022#endif
1027/*
1028 ------------------------------------
1029 ----------- ACD options ------------
1030 ------------------------------------
1031*/
1040#if !defined LWIP_ACD || defined __DOXYGEN__
1041#define LWIP_ACD (LWIP_AUTOIP || LWIP_DHCP_DOES_ACD_CHECK)
1042#endif
1043#if !LWIP_IPV4
1044/* disable ACD when IPv4 is disabled */
1045#undef LWIP_ACD
1046#define LWIP_ACD 0
1047#endif /* !LWIP_IPV4 */
1052/*
1053 ----------------------------------
1054 ----- SNMP MIB2 support -----
1055 ----------------------------------
1056*/
1067#if !defined LWIP_MIB2_CALLBACKS || defined __DOXYGEN__
1068#define LWIP_MIB2_CALLBACKS 0
1069#endif
1074/*
1075 ----------------------------------
1076 -------- Multicast options -------
1077 ----------------------------------
1078*/
1089#if !defined LWIP_MULTICAST_TX_OPTIONS || defined __DOXYGEN__
1090#define LWIP_MULTICAST_TX_OPTIONS ((LWIP_IGMP || LWIP_IPV6_MLD) && (LWIP_UDP || LWIP_RAW))
1091#endif
1096/*
1097 ----------------------------------
1098 ---------- IGMP options ----------
1099 ----------------------------------
1100*/
1109#if !defined LWIP_IGMP || defined __DOXYGEN__
1110#define LWIP_IGMP 0
1111#endif
1112#if !LWIP_IPV4
1113#undef LWIP_IGMP
1114#define LWIP_IGMP 0
1115#endif
1120/*
1121 ----------------------------------
1122 ---------- DNS options -----------
1123 ----------------------------------
1124*/
1134#if !defined LWIP_DNS || defined __DOXYGEN__
1135#define LWIP_DNS 0
1136#endif
1137
1139#if !defined DNS_TABLE_SIZE || defined __DOXYGEN__
1140#define DNS_TABLE_SIZE 4
1141#endif
1142
1144#if !defined DNS_MAX_NAME_LENGTH || defined __DOXYGEN__
1145#define DNS_MAX_NAME_LENGTH 256
1146#endif
1147
1152#if !defined DNS_MAX_SERVERS || defined __DOXYGEN__
1153#define DNS_MAX_SERVERS 2
1154#endif
1155
1157#if !defined DNS_MAX_RETRIES || defined __DOXYGEN__
1158#define DNS_MAX_RETRIES 4
1159#endif
1160
1162#if !defined DNS_DOES_NAME_CHECK || defined __DOXYGEN__
1163#define DNS_DOES_NAME_CHECK 1
1164#endif
1165
1170#if !defined LWIP_DNS_SECURE || defined __DOXYGEN__
1171#define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)
1172#endif
1173
1174/* A list of DNS security features follows */
1175#define LWIP_DNS_SECURE_RAND_XID 1
1176#define LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING 2
1177#define LWIP_DNS_SECURE_RAND_SRC_PORT 4
1178
1189#if !defined DNS_LOCAL_HOSTLIST || defined __DOXYGEN__
1190#define DNS_LOCAL_HOSTLIST 0
1191#endif /* DNS_LOCAL_HOSTLIST */
1192
1195#if !defined DNS_LOCAL_HOSTLIST_IS_DYNAMIC || defined __DOXYGEN__
1196#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
1197#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
1198
1201#if !defined LWIP_DNS_SUPPORT_MDNS_QUERIES || defined __DOXYGEN__
1202#define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
1203#endif
1208/*
1209 ---------------------------------
1210 ---------- UDP options ----------
1211 ---------------------------------
1212*/
1221#if !defined LWIP_UDP || defined __DOXYGEN__
1222#define LWIP_UDP 1
1223#endif
1224
1228#if !defined LWIP_UDPLITE || defined __DOXYGEN__
1229#define LWIP_UDPLITE 0
1230#endif
1231
1235#if !defined UDP_TTL || defined __DOXYGEN__
1236#define UDP_TTL IP_DEFAULT_TTL
1237#endif
1238
1242#if !defined LWIP_NETBUF_RECVINFO || defined __DOXYGEN__
1243#define LWIP_NETBUF_RECVINFO 0
1244#endif
1249/*
1250 ---------------------------------
1251 ---------- TCP options ----------
1252 ---------------------------------
1253*/
1262#if !defined LWIP_TCP || defined __DOXYGEN__
1263#define LWIP_TCP 1
1264#endif
1265
1269#if !defined TCP_TTL || defined __DOXYGEN__
1270#define TCP_TTL IP_DEFAULT_TTL
1271#endif
1272
1280#if !defined TCP_WND || defined __DOXYGEN__
1281#define TCP_WND (4 * TCP_MSS)
1282#endif
1283
1287#if !defined TCP_MAXRTX || defined __DOXYGEN__
1288#define TCP_MAXRTX 12
1289#endif
1290
1294#if !defined TCP_SYNMAXRTX || defined __DOXYGEN__
1295#define TCP_SYNMAXRTX 6
1296#endif
1297
1302#if !defined TCP_QUEUE_OOSEQ || defined __DOXYGEN__
1303#define TCP_QUEUE_OOSEQ LWIP_TCP
1304#endif
1305
1309#if !defined LWIP_TCP_SACK_OUT || defined __DOXYGEN__
1310#define LWIP_TCP_SACK_OUT 0
1311#endif
1312
1323#if !defined LWIP_TCP_MAX_SACK_NUM || defined __DOXYGEN__
1324#define LWIP_TCP_MAX_SACK_NUM 4
1325#endif
1326
1334#if !defined TCP_MSS || defined __DOXYGEN__
1335#define TCP_MSS 536
1336#endif
1337
1346#if !defined TCP_CALCULATE_EFF_SEND_MSS || defined __DOXYGEN__
1347#define TCP_CALCULATE_EFF_SEND_MSS 1
1348#endif
1349
1356#if !defined LWIP_TCP_RTO_TIME || defined __DOXYGEN__
1357#define LWIP_TCP_RTO_TIME 3000
1358#endif
1359
1364#if !defined TCP_SND_BUF || defined __DOXYGEN__
1365#define TCP_SND_BUF (2 * TCP_MSS)
1366#endif
1367
1372#if !defined TCP_SND_QUEUELEN || defined __DOXYGEN__
1373#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
1374#endif
1375
1381#if !defined TCP_SNDLOWAT || defined __DOXYGEN__
1382#define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
1383#endif
1384
1390#if !defined TCP_SNDQUEUELOWAT || defined __DOXYGEN__
1391#define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
1392#endif
1393
1399#if !defined TCP_OOSEQ_MAX_BYTES || defined __DOXYGEN__
1400#define TCP_OOSEQ_MAX_BYTES 0
1401#endif
1402
1409#if !defined TCP_OOSEQ_BYTES_LIMIT
1410#if TCP_OOSEQ_MAX_BYTES
1411#define TCP_OOSEQ_BYTES_LIMIT(pcb) TCP_OOSEQ_MAX_BYTES
1412#elif defined __DOXYGEN__
1413#define TCP_OOSEQ_BYTES_LIMIT(pcb)
1414#endif
1415#endif
1416
1422#if !defined TCP_OOSEQ_MAX_PBUFS || defined __DOXYGEN__
1423#define TCP_OOSEQ_MAX_PBUFS 0
1424#endif
1425
1432#if !defined TCP_OOSEQ_PBUFS_LIMIT
1433#if TCP_OOSEQ_MAX_PBUFS
1434#define TCP_OOSEQ_PBUFS_LIMIT(pcb) TCP_OOSEQ_MAX_PBUFS
1435#elif defined __DOXYGEN__
1436#define TCP_OOSEQ_PBUFS_LIMIT(pcb)
1437#endif
1438#endif
1439
1443#if !defined TCP_LISTEN_BACKLOG || defined __DOXYGEN__
1444#define TCP_LISTEN_BACKLOG 0
1445#endif
1446
1452#if !defined TCP_DEFAULT_LISTEN_BACKLOG || defined __DOXYGEN__
1453#define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1454#endif
1455
1470#if !defined TCP_OVERSIZE || defined __DOXYGEN__
1471#define TCP_OVERSIZE TCP_MSS
1472#endif
1473
1480#if !defined LWIP_TCP_TIMESTAMPS || defined __DOXYGEN__
1481#define LWIP_TCP_TIMESTAMPS 0
1482#endif
1483
1488#if !defined TCP_WND_UPDATE_THRESHOLD || defined __DOXYGEN__
1489#define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4))
1490#endif
1491
1499#if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API) || defined __DOXYGEN__
1500#define LWIP_EVENT_API 0
1501#define LWIP_CALLBACK_API 1
1502#else
1503#ifndef LWIP_EVENT_API
1504#define LWIP_EVENT_API 0
1505#endif
1506#ifndef LWIP_CALLBACK_API
1507#define LWIP_CALLBACK_API 0
1508#endif
1509#endif
1510
1519#if !defined LWIP_WND_SCALE || defined __DOXYGEN__
1520#define LWIP_WND_SCALE 0
1521#define TCP_RCV_SCALE 0
1522#endif
1523
1529#if !defined LWIP_TCP_PCB_NUM_EXT_ARGS || defined __DOXYGEN__
1530#define LWIP_TCP_PCB_NUM_EXT_ARGS 0
1531#endif
1532
1545#if !defined LWIP_ALTCP || defined __DOXYGEN__
1546#define LWIP_ALTCP 0
1547#endif
1548
1554#if !defined LWIP_ALTCP_TLS || defined __DOXYGEN__
1555#define LWIP_ALTCP_TLS 0
1556#endif
1557
1562/*
1563 ----------------------------------
1564 ---------- Pbuf options ----------
1565 ----------------------------------
1566*/
1577 #if !defined PBUF_LINK_HLEN || defined __DOXYGEN__
1578#if (defined LWIP_HOOK_VLAN_SET || LWIP_VLAN_PCP) && !defined __DOXYGEN__
1579 #define PBUF_LINK_HLEN (18 + ETH_PAD_SIZE)
1580#else /* LWIP_HOOK_VLAN_SET || LWIP_VLAN_PCP */
1581 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1582#endif /* LWIP_HOOK_VLAN_SET || LWIP_VLAN_PCP */
1583 #endif
1584
1589#if !defined PBUF_LINK_ENCAPSULATION_HLEN || defined __DOXYGEN__
1590#define PBUF_LINK_ENCAPSULATION_HLEN 0
1591#endif
1592
1598#if !defined PBUF_POOL_BUFSIZE || defined __DOXYGEN__
1599#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+PBUF_IP_HLEN+PBUF_TRANSPORT_HLEN+PBUF_LINK_ENCAPSULATION_HLEN+PBUF_LINK_HLEN)
1600#endif
1601
1606#if !defined LWIP_PBUF_REF_T || defined __DOXYGEN__
1607#define LWIP_PBUF_REF_T u8_t
1608#endif
1609
1614#if !defined LWIP_PBUF_CUSTOM_DATA || defined __DOXYGEN__
1615#define LWIP_PBUF_CUSTOM_DATA
1616#endif
1621/*
1622 ------------------------------------------------
1623 ---------- Network Interfaces options ----------
1624 ------------------------------------------------
1625*/
1635#if !defined LWIP_SINGLE_NETIF || defined __DOXYGEN__
1636#define LWIP_SINGLE_NETIF 0
1637#endif
1638
1643#if !defined LWIP_NETIF_HOSTNAME || defined __DOXYGEN__
1644#define LWIP_NETIF_HOSTNAME 0
1645#endif
1646
1650#if !defined LWIP_NETIF_API || defined __DOXYGEN__
1651#define LWIP_NETIF_API 0
1652#endif
1653
1658#if !defined LWIP_NETIF_STATUS_CALLBACK || defined __DOXYGEN__
1659#define LWIP_NETIF_STATUS_CALLBACK 0
1660#endif
1661
1667#if !defined LWIP_NETIF_EXT_STATUS_CALLBACK || defined __DOXYGEN__
1668#define LWIP_NETIF_EXT_STATUS_CALLBACK 0
1669#endif
1670
1675#if !defined LWIP_NETIF_LINK_CALLBACK || defined __DOXYGEN__
1676#define LWIP_NETIF_LINK_CALLBACK 0
1677#endif
1678
1683#if !defined LWIP_NETIF_REMOVE_CALLBACK || defined __DOXYGEN__
1684#define LWIP_NETIF_REMOVE_CALLBACK 0
1685#endif
1686
1694#if !defined LWIP_NETIF_HWADDRHINT || defined __DOXYGEN__
1695#define LWIP_NETIF_HWADDRHINT 0
1696#endif
1697
1716#if !defined LWIP_NETIF_TX_SINGLE_PBUF || defined __DOXYGEN__
1717#define LWIP_NETIF_TX_SINGLE_PBUF 0
1718#endif /* LWIP_NETIF_TX_SINGLE_PBUF */
1719
1724#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
1725#define LWIP_NUM_NETIF_CLIENT_DATA 0
1726#endif
1731/*
1732 ------------------------------------
1733 ---------- LOOPIF options ----------
1734 ------------------------------------
1735*/
1746#if !defined LWIP_HAVE_LOOPIF || defined __DOXYGEN__
1747#define LWIP_HAVE_LOOPIF (LWIP_NETIF_LOOPBACK && !LWIP_SINGLE_NETIF)
1748#endif
1749
1753#if !defined LWIP_LOOPIF_MULTICAST || defined __DOXYGEN__
1754#define LWIP_LOOPIF_MULTICAST 0
1755#endif
1756
1761#if !defined LWIP_NETIF_LOOPBACK || defined __DOXYGEN__
1762#define LWIP_NETIF_LOOPBACK 0
1763#endif
1764
1769#if !defined LWIP_LOOPBACK_MAX_PBUFS || defined __DOXYGEN__
1770#define LWIP_LOOPBACK_MAX_PBUFS 0
1771#endif
1772
1786#if !defined LWIP_NETIF_LOOPBACK_MULTITHREADING || defined __DOXYGEN__
1787#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1788#endif
1793/*
1794 ------------------------------------
1795 ---------- Thread options ----------
1796 ------------------------------------
1797*/
1806#if !defined TCPIP_THREAD_NAME || defined __DOXYGEN__
1807#define TCPIP_THREAD_NAME "tcpip_thread"
1808#endif
1809
1815#if !defined TCPIP_THREAD_STACKSIZE || defined __DOXYGEN__
1816#define TCPIP_THREAD_STACKSIZE 0
1817#endif
1818
1824#if !defined TCPIP_THREAD_PRIO || defined __DOXYGEN__
1825#define TCPIP_THREAD_PRIO 1
1826#endif
1827
1833#if !defined TCPIP_MBOX_SIZE || defined __DOXYGEN__
1834#define TCPIP_MBOX_SIZE 0
1835#endif
1836
1841#if !defined LWIP_TCPIP_THREAD_ALIVE || defined __DOXYGEN__
1842#define LWIP_TCPIP_THREAD_ALIVE()
1843#endif
1844
1848#if !defined SLIPIF_THREAD_NAME || defined __DOXYGEN__
1849#define SLIPIF_THREAD_NAME "slipif_loop"
1850#endif
1851
1857#if !defined SLIPIF_THREAD_STACKSIZE || defined __DOXYGEN__
1858#define SLIPIF_THREAD_STACKSIZE 0
1859#endif
1860
1866#if !defined SLIPIF_THREAD_PRIO || defined __DOXYGEN__
1867#define SLIPIF_THREAD_PRIO 1
1868#endif
1869
1873#if !defined DEFAULT_THREAD_NAME || defined __DOXYGEN__
1874#define DEFAULT_THREAD_NAME "lwIP"
1875#endif
1876
1882#if !defined DEFAULT_THREAD_STACKSIZE || defined __DOXYGEN__
1883#define DEFAULT_THREAD_STACKSIZE 0
1884#endif
1885
1891#if !defined DEFAULT_THREAD_PRIO || defined __DOXYGEN__
1892#define DEFAULT_THREAD_PRIO 1
1893#endif
1894
1900#if !defined DEFAULT_RAW_RECVMBOX_SIZE || defined __DOXYGEN__
1901#define DEFAULT_RAW_RECVMBOX_SIZE 0
1902#endif
1903
1909#if !defined DEFAULT_UDP_RECVMBOX_SIZE || defined __DOXYGEN__
1910#define DEFAULT_UDP_RECVMBOX_SIZE 0
1911#endif
1912
1918#if !defined DEFAULT_TCP_RECVMBOX_SIZE || defined __DOXYGEN__
1919#define DEFAULT_TCP_RECVMBOX_SIZE 0
1920#endif
1921
1927#if !defined DEFAULT_ACCEPTMBOX_SIZE || defined __DOXYGEN__
1928#define DEFAULT_ACCEPTMBOX_SIZE 0
1929#endif
1934/*
1935 ----------------------------------------------
1936 ---------- Sequential layer options ----------
1937 ----------------------------------------------
1938*/
1947#if !defined LWIP_NETCONN || defined __DOXYGEN__
1948#define LWIP_NETCONN 1
1949#endif
1950
1954#if !defined LWIP_TCPIP_TIMEOUT || defined __DOXYGEN__
1955#define LWIP_TCPIP_TIMEOUT 0
1956#endif
1957
1968#if !defined LWIP_NETCONN_SEM_PER_THREAD || defined __DOXYGEN__
1969#define LWIP_NETCONN_SEM_PER_THREAD 0
1970#endif
1971
1977#if !defined LWIP_NETCONN_FULLDUPLEX || defined __DOXYGEN__
1978#define LWIP_NETCONN_FULLDUPLEX 0
1979#endif
1984/*
1985 ------------------------------------
1986 ---------- Socket options ----------
1987 ------------------------------------
1988*/
1997#if !defined LWIP_SOCKET || defined __DOXYGEN__
1998#define LWIP_SOCKET 1
1999#endif
2000
2007#if !defined LWIP_COMPAT_SOCKETS || defined __DOXYGEN__
2008#define LWIP_COMPAT_SOCKETS 1
2009#endif
2010
2016#if !defined LWIP_POSIX_SOCKETS_IO_NAMES || defined __DOXYGEN__
2017#define LWIP_POSIX_SOCKETS_IO_NAMES 1
2018#endif
2019
2027#if !defined LWIP_SOCKET_OFFSET || defined __DOXYGEN__
2028#define LWIP_SOCKET_OFFSET 0
2029#endif
2030
2038#if !defined LWIP_SOCKET_EXTERNAL_HEADERS || defined __DOXYGEN__
2039#define LWIP_SOCKET_EXTERNAL_HEADERS 0
2040#endif
2041
2047#if !defined LWIP_TCP_KEEPALIVE || defined __DOXYGEN__
2048#define LWIP_TCP_KEEPALIVE 0
2049#endif
2050
2055#if !defined LWIP_SO_SNDTIMEO || defined __DOXYGEN__
2056#define LWIP_SO_SNDTIMEO 0
2057#endif
2058
2063#if !defined LWIP_SO_RCVTIMEO || defined __DOXYGEN__
2064#define LWIP_SO_RCVTIMEO 0
2065#endif
2066
2071#if !defined LWIP_SO_SNDRCVTIMEO_NONSTANDARD || defined __DOXYGEN__
2072#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
2073#endif
2074
2078#if !defined LWIP_SO_RCVBUF || defined __DOXYGEN__
2079#define LWIP_SO_RCVBUF 0
2080#endif
2081
2085#if !defined LWIP_SO_LINGER || defined __DOXYGEN__
2086#define LWIP_SO_LINGER 0
2087#endif
2088
2092#if !defined RECV_BUFSIZE_DEFAULT || defined __DOXYGEN__
2093#define RECV_BUFSIZE_DEFAULT INT_MAX
2094#endif
2095
2099#if !defined LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT || defined __DOXYGEN__
2100#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
2101#endif
2102
2106#if !defined SO_REUSE || defined __DOXYGEN__
2107#define SO_REUSE 0
2108#endif
2109
2115#if !defined SO_REUSE_RXTOALL || defined __DOXYGEN__
2116#define SO_REUSE_RXTOALL 0
2117#endif
2118
2127#if !defined LWIP_FIONREAD_LINUXMODE || defined __DOXYGEN__
2128#define LWIP_FIONREAD_LINUXMODE 0
2129#endif
2130
2137#if !defined LWIP_SOCKET_SELECT || defined __DOXYGEN__
2138#define LWIP_SOCKET_SELECT 1
2139#endif
2140
2145#if !defined LWIP_SOCKET_POLL || defined __DOXYGEN__
2146#define LWIP_SOCKET_POLL 1
2147#endif
2152/*
2153 ----------------------------------------
2154 ---------- Statistics options ----------
2155 ----------------------------------------
2156*/
2165#if !defined LWIP_STATS || defined __DOXYGEN__
2166#define LWIP_STATS 1
2167#endif
2168
2169#if LWIP_STATS
2170
2174#if !defined LWIP_STATS_DISPLAY || defined __DOXYGEN__
2175#define LWIP_STATS_DISPLAY 0
2176#endif
2177
2181#if !defined LINK_STATS || defined __DOXYGEN__
2182#define LINK_STATS 1
2183#endif
2184
2188#if !defined ETHARP_STATS || defined __DOXYGEN__
2189#define ETHARP_STATS (LWIP_ARP)
2190#endif
2191
2195#if !defined IP_STATS || defined __DOXYGEN__
2196#define IP_STATS 1
2197#endif
2198
2203#if !defined IPFRAG_STATS || defined __DOXYGEN__
2204#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
2205#endif
2206
2210#if !defined ICMP_STATS || defined __DOXYGEN__
2211#define ICMP_STATS 1
2212#endif
2213
2217#if !defined IGMP_STATS || defined __DOXYGEN__
2218#define IGMP_STATS (LWIP_IGMP)
2219#endif
2220
2225#if !defined UDP_STATS || defined __DOXYGEN__
2226#define UDP_STATS (LWIP_UDP)
2227#endif
2228
2233#if !defined TCP_STATS || defined __DOXYGEN__
2234#define TCP_STATS (LWIP_TCP)
2235#endif
2236
2240#if !defined MEM_STATS || defined __DOXYGEN__
2241#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
2242#endif
2243
2247#if !defined MEMP_STATS || defined __DOXYGEN__
2248#define MEMP_STATS (MEMP_MEM_MALLOC == 0)
2249#endif
2250
2254#if !defined SYS_STATS || defined __DOXYGEN__
2255#define SYS_STATS (NO_SYS == 0)
2256#endif
2257
2261#if !defined IP6_STATS || defined __DOXYGEN__
2262#define IP6_STATS (LWIP_IPV6)
2263#endif
2264
2268#if !defined ICMP6_STATS || defined __DOXYGEN__
2269#define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6)
2270#endif
2271
2275#if !defined IP6_FRAG_STATS || defined __DOXYGEN__
2276#define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
2277#endif
2278
2282#if !defined MLD6_STATS || defined __DOXYGEN__
2283#define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD)
2284#endif
2285
2289#if !defined ND6_STATS || defined __DOXYGEN__
2290#define ND6_STATS (LWIP_IPV6)
2291#endif
2292
2296#if !defined MIB2_STATS || defined __DOXYGEN__
2297#define MIB2_STATS 0
2298#endif
2299
2300#else
2301
2302#define LINK_STATS 0
2303#define ETHARP_STATS 0
2304#define IP_STATS 0
2305#define IPFRAG_STATS 0
2306#define ICMP_STATS 0
2307#define IGMP_STATS 0
2308#define UDP_STATS 0
2309#define TCP_STATS 0
2310#define MEM_STATS 0
2311#define MEMP_STATS 0
2312#define SYS_STATS 0
2313#define LWIP_STATS_DISPLAY 0
2314#define IP6_STATS 0
2315#define ICMP6_STATS 0
2316#define IP6_FRAG_STATS 0
2317#define MLD6_STATS 0
2318#define ND6_STATS 0
2319#define MIB2_STATS 0
2320
2321#endif /* LWIP_STATS */
2326/*
2327 --------------------------------------
2328 ---------- Checksum options ----------
2329 --------------------------------------
2330*/
2341#if !defined LWIP_CHECKSUM_CTRL_PER_NETIF || defined __DOXYGEN__
2342#define LWIP_CHECKSUM_CTRL_PER_NETIF 0
2343#endif
2344
2348#if !defined CHECKSUM_GEN_IP || defined __DOXYGEN__
2349#define CHECKSUM_GEN_IP 1
2350#endif
2351
2355#if !defined CHECKSUM_GEN_UDP || defined __DOXYGEN__
2356#define CHECKSUM_GEN_UDP 1
2357#endif
2358
2362#if !defined CHECKSUM_GEN_TCP || defined __DOXYGEN__
2363#define CHECKSUM_GEN_TCP 1
2364#endif
2365
2369#if !defined CHECKSUM_GEN_ICMP || defined __DOXYGEN__
2370#define CHECKSUM_GEN_ICMP 1
2371#endif
2372
2376#if !defined CHECKSUM_GEN_ICMP6 || defined __DOXYGEN__
2377#define CHECKSUM_GEN_ICMP6 1
2378#endif
2379
2383#if !defined CHECKSUM_CHECK_IP || defined __DOXYGEN__
2384#define CHECKSUM_CHECK_IP 1
2385#endif
2386
2390#if !defined CHECKSUM_CHECK_UDP || defined __DOXYGEN__
2391#define CHECKSUM_CHECK_UDP 1
2392#endif
2393
2397#if !defined CHECKSUM_CHECK_TCP || defined __DOXYGEN__
2398#define CHECKSUM_CHECK_TCP 1
2399#endif
2400
2404#if !defined CHECKSUM_CHECK_ICMP || defined __DOXYGEN__
2405#define CHECKSUM_CHECK_ICMP 1
2406#endif
2407
2411#if !defined CHECKSUM_CHECK_ICMP6 || defined __DOXYGEN__
2412#define CHECKSUM_CHECK_ICMP6 1
2413#endif
2414
2419#if !defined LWIP_CHECKSUM_ON_COPY || defined __DOXYGEN__
2420#define LWIP_CHECKSUM_ON_COPY 0
2421#endif
2426/*
2427 ---------------------------------------
2428 ---------- IPv6 options ---------------
2429 ---------------------------------------
2430*/
2439#if !defined LWIP_IPV6 || defined __DOXYGEN__
2440#define LWIP_IPV6 0
2441#endif
2442
2448#if !defined IPV6_REASS_MAXAGE || defined __DOXYGEN__
2449#define IPV6_REASS_MAXAGE 60
2450#endif
2451
2469#if !defined LWIP_IPV6_SCOPES || defined __DOXYGEN__
2470#define LWIP_IPV6_SCOPES (LWIP_IPV6 && !LWIP_SINGLE_NETIF)
2471#endif
2472
2479#if !defined LWIP_IPV6_SCOPES_DEBUG || defined __DOXYGEN__
2480#define LWIP_IPV6_SCOPES_DEBUG 0
2481#endif
2482
2486#if !defined LWIP_IPV6_NUM_ADDRESSES || defined __DOXYGEN__
2487#define LWIP_IPV6_NUM_ADDRESSES 3
2488#endif
2489
2493#if !defined LWIP_IPV6_FORWARD || defined __DOXYGEN__
2494#define LWIP_IPV6_FORWARD 0
2495#endif
2496
2500#if !defined LWIP_IPV6_FRAG || defined __DOXYGEN__
2501#define LWIP_IPV6_FRAG 1
2502#endif
2503
2507#if !defined LWIP_IPV6_REASS || defined __DOXYGEN__
2508#define LWIP_IPV6_REASS LWIP_IPV6
2509#endif
2510
2515#if !defined LWIP_IPV6_SEND_ROUTER_SOLICIT || defined __DOXYGEN__
2516#define LWIP_IPV6_SEND_ROUTER_SOLICIT LWIP_IPV6
2517#endif
2518
2522#if !defined LWIP_IPV6_AUTOCONFIG || defined __DOXYGEN__
2523#define LWIP_IPV6_AUTOCONFIG LWIP_IPV6
2524#endif
2525
2533#if !defined LWIP_IPV6_ADDRESS_LIFETIMES || defined __DOXYGEN__
2534#define LWIP_IPV6_ADDRESS_LIFETIMES LWIP_IPV6_AUTOCONFIG
2535#endif
2536
2540#if !defined LWIP_IPV6_DUP_DETECT_ATTEMPTS || defined __DOXYGEN__
2541#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1
2542#endif
2555#if !defined LWIP_ICMP6 || defined __DOXYGEN__
2556#define LWIP_ICMP6 LWIP_IPV6
2557#endif
2558
2565#if !defined LWIP_ICMP6_DATASIZE || defined __DOXYGEN__
2566#define LWIP_ICMP6_DATASIZE 0
2567#endif
2568
2572#if !defined LWIP_ICMP6_HL || defined __DOXYGEN__
2573#define LWIP_ICMP6_HL 255
2574#endif
2589#if !defined LWIP_IPV6_MLD || defined __DOXYGEN__
2590#define LWIP_IPV6_MLD LWIP_IPV6
2591#endif
2592
2599#if !defined MEMP_NUM_MLD6_GROUP || defined __DOXYGEN__
2600#define MEMP_NUM_MLD6_GROUP 4
2601#endif
2615#if !defined LWIP_ND6_QUEUEING || defined __DOXYGEN__
2616#define LWIP_ND6_QUEUEING LWIP_IPV6
2617#endif
2618
2622#if !defined MEMP_NUM_ND6_QUEUE || defined __DOXYGEN__
2623#define MEMP_NUM_ND6_QUEUE 20
2624#endif
2625
2629#if !defined LWIP_ND6_NUM_NEIGHBORS || defined __DOXYGEN__
2630#define LWIP_ND6_NUM_NEIGHBORS 10
2631#endif
2632
2636#if !defined LWIP_ND6_NUM_DESTINATIONS || defined __DOXYGEN__
2637#define LWIP_ND6_NUM_DESTINATIONS 10
2638#endif
2639
2643#if !defined LWIP_ND6_NUM_PREFIXES || defined __DOXYGEN__
2644#define LWIP_ND6_NUM_PREFIXES 5
2645#endif
2646
2650#if !defined LWIP_ND6_NUM_ROUTERS || defined __DOXYGEN__
2651#define LWIP_ND6_NUM_ROUTERS 3
2652#endif
2653
2658#if !defined LWIP_ND6_MAX_MULTICAST_SOLICIT || defined __DOXYGEN__
2659#define LWIP_ND6_MAX_MULTICAST_SOLICIT 3
2660#endif
2661
2666#if !defined LWIP_ND6_MAX_UNICAST_SOLICIT || defined __DOXYGEN__
2667#define LWIP_ND6_MAX_UNICAST_SOLICIT 3
2668#endif
2669
2673#if !defined LWIP_ND6_MAX_ANYCAST_DELAY_TIME || defined __DOXYGEN__
2674#define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000
2675#endif
2676
2680#if !defined LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT || defined __DOXYGEN__
2681#define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3
2682#endif
2683
2688#if !defined LWIP_ND6_REACHABLE_TIME || defined __DOXYGEN__
2689#define LWIP_ND6_REACHABLE_TIME 30000
2690#endif
2691
2695#if !defined LWIP_ND6_RETRANS_TIMER || defined __DOXYGEN__
2696#define LWIP_ND6_RETRANS_TIMER 1000
2697#endif
2698
2703#if !defined LWIP_ND6_DELAY_FIRST_PROBE_TIME || defined __DOXYGEN__
2704#define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000
2705#endif
2706
2711#if !defined LWIP_ND6_ALLOW_RA_UPDATES || defined __DOXYGEN__
2712#define LWIP_ND6_ALLOW_RA_UPDATES 1
2713#endif
2714
2720#if !defined LWIP_ND6_TCP_REACHABILITY_HINTS || defined __DOXYGEN__
2721#define LWIP_ND6_TCP_REACHABILITY_HINTS 1
2722#endif
2723
2729#if !defined LWIP_ND6_RDNSS_MAX_DNS_SERVERS || defined __DOXYGEN__
2730#define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
2731#endif
2744#if !defined LWIP_IPV6_DHCP6 || defined __DOXYGEN__
2745#define LWIP_IPV6_DHCP6 0
2746#endif
2747
2752#if !defined LWIP_IPV6_DHCP6_STATEFUL || defined __DOXYGEN__
2753#define LWIP_IPV6_DHCP6_STATEFUL 0
2754#endif
2755
2759#if !defined LWIP_IPV6_DHCP6_STATELESS || defined __DOXYGEN__
2760#define LWIP_IPV6_DHCP6_STATELESS LWIP_IPV6_DHCP6
2761#endif
2762
2768#if !defined LWIP_DHCP6_GET_NTP_SRV || defined __DOXYGEN__
2769#define LWIP_DHCP6_GET_NTP_SRV 0
2770#endif
2771
2775#if !defined LWIP_DHCP6_MAX_NTP_SERVERS || defined __DOXYGEN__
2776#define LWIP_DHCP6_MAX_NTP_SERVERS 1
2777#endif
2778
2784#if !defined LWIP_DHCP6_MAX_DNS_SERVERS || defined __DOXYGEN__
2785#define LWIP_DHCP6_MAX_DNS_SERVERS DNS_MAX_SERVERS
2786#endif
2791/*
2792 ---------------------------------------
2793 ---------- Hook options ---------------
2794 ---------------------------------------
2795*/
2796
2809#ifdef __DOXYGEN__
2810#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h"
2811#endif
2812
2834#ifdef __DOXYGEN__
2835#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port)
2836#endif
2837
2864#ifdef __DOXYGEN__
2865#define LWIP_HOOK_TCP_INPACKET_PCB(pcb, hdr, optlen, opt1len, opt2, p)
2866#endif
2867
2886#ifdef __DOXYGEN__
2887#define LWIP_HOOK_TCP_OUT_TCPOPT_LENGTH(pcb, internal_len)
2888#endif
2889
2910#ifdef __DOXYGEN__
2911#define LWIP_HOOK_TCP_OUT_ADD_TCPOPTS(p, hdr, pcb, opts)
2912#endif
2913
2929#ifdef __DOXYGEN__
2930#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif)
2931#endif
2932
2945#ifdef __DOXYGEN__
2946#define LWIP_HOOK_IP4_ROUTE()
2947#endif
2948
2962#ifdef __DOXYGEN__
2963#define LWIP_HOOK_IP4_ROUTE_SRC(src, dest)
2964#endif
2965
2983#ifdef __DOXYGEN__
2984#define LWIP_HOOK_IP4_CANFORWARD(src, dest)
2985#endif
2986
3005#ifdef __DOXYGEN__
3006#define LWIP_HOOK_ETHARP_GET_GW(netif, dest)
3007#endif
3008
3024#ifdef __DOXYGEN__
3025#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif)
3026#endif
3027
3041#ifdef __DOXYGEN__
3042#define LWIP_HOOK_IP6_ROUTE(src, dest)
3043#endif
3044
3063#ifdef __DOXYGEN__
3064#define LWIP_HOOK_ND6_GET_GW(netif, dest)
3065#endif
3066
3081#ifdef __DOXYGEN__
3082#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr)
3083#endif
3084
3105#ifdef __DOXYGEN__
3106#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type)
3107#endif
3108
3116#ifdef __DOXYGEN__
3117#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type)
3118#endif
3119
3135#ifdef __DOXYGEN__
3136#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
3137#endif
3138
3164#ifdef __DOXYGEN__
3165#define LWIP_HOOK_DHCP_APPEND_OPTIONS(netif, dhcp, state, msg, msg_type, options_len_ptr)
3166#endif
3167
3192#ifdef __DOXYGEN__
3193#define LWIP_HOOK_DHCP_PARSE_OPTION(netif, dhcp, state, msg, msg_type, option, len, pbuf, offset)
3194#endif
3195
3220#ifdef __DOXYGEN__
3221#define LWIP_HOOK_DHCP6_APPEND_OPTIONS(netif, dhcp6, state, msg, msg_type, options_len_ptr, max_len)
3222#endif
3223
3243#ifdef __DOXYGEN__
3244#define LWIP_HOOK_SOCKETS_SETSOCKOPT(s, sock, level, optname, optval, optlen, err)
3245#endif
3246
3266#ifdef __DOXYGEN__
3267#define LWIP_HOOK_SOCKETS_GETSOCKOPT(s, sock, level, optname, optval, optlen, err)
3268#endif
3269
3289#ifdef __DOXYGEN__
3290#define LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE(name, addr, addrtype, err)
3291#endif
3296/*
3297 ---------------------------------------
3298 ---------- Debugging options ----------
3299 ---------------------------------------
3300*/
3312#if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__
3313#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
3314#endif
3315
3321#if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__
3322#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
3323#endif
3324
3328#if !defined ETHARP_DEBUG || defined __DOXYGEN__
3329#define ETHARP_DEBUG LWIP_DBG_OFF
3330#endif
3331
3335#if !defined NETIF_DEBUG || defined __DOXYGEN__
3336#define NETIF_DEBUG LWIP_DBG_OFF
3337#endif
3338
3342#if !defined PBUF_DEBUG || defined __DOXYGEN__
3343#define PBUF_DEBUG LWIP_DBG_OFF
3344#endif
3345
3349#if !defined API_LIB_DEBUG || defined __DOXYGEN__
3350#define API_LIB_DEBUG LWIP_DBG_OFF
3351#endif
3352
3356#if !defined API_MSG_DEBUG || defined __DOXYGEN__
3357#define API_MSG_DEBUG LWIP_DBG_OFF
3358#endif
3359
3363#if !defined SOCKETS_DEBUG || defined __DOXYGEN__
3364#define SOCKETS_DEBUG LWIP_DBG_OFF
3365#endif
3366
3370#if !defined ICMP_DEBUG || defined __DOXYGEN__
3371#define ICMP_DEBUG LWIP_DBG_OFF
3372#endif
3373
3377#if !defined IGMP_DEBUG || defined __DOXYGEN__
3378#define IGMP_DEBUG LWIP_DBG_OFF
3379#endif
3380
3384#if !defined INET_DEBUG || defined __DOXYGEN__
3385#define INET_DEBUG LWIP_DBG_OFF
3386#endif
3387
3391#if !defined IP_DEBUG || defined __DOXYGEN__
3392#define IP_DEBUG LWIP_DBG_OFF
3393#endif
3394
3398#if !defined IP_REASS_DEBUG || defined __DOXYGEN__
3399#define IP_REASS_DEBUG LWIP_DBG_OFF
3400#endif
3401
3405#if !defined RAW_DEBUG || defined __DOXYGEN__
3406#define RAW_DEBUG LWIP_DBG_OFF
3407#endif
3408
3412#if !defined MEM_DEBUG || defined __DOXYGEN__
3413#define MEM_DEBUG LWIP_DBG_OFF
3414#endif
3415
3419#if !defined MEMP_DEBUG || defined __DOXYGEN__
3420#define MEMP_DEBUG LWIP_DBG_OFF
3421#endif
3422
3426#if !defined SYS_DEBUG || defined __DOXYGEN__
3427#define SYS_DEBUG LWIP_DBG_OFF
3428#endif
3429
3433#if !defined TIMERS_DEBUG || defined __DOXYGEN__
3434#define TIMERS_DEBUG LWIP_DBG_OFF
3435#endif
3436
3440#if !defined TCP_DEBUG || defined __DOXYGEN__
3441#define TCP_DEBUG LWIP_DBG_OFF
3442#endif
3443
3447#if !defined TCP_INPUT_DEBUG || defined __DOXYGEN__
3448#define TCP_INPUT_DEBUG LWIP_DBG_OFF
3449#endif
3450
3454#if !defined TCP_FR_DEBUG || defined __DOXYGEN__
3455#define TCP_FR_DEBUG LWIP_DBG_OFF
3456#endif
3457
3462#if !defined TCP_RTO_DEBUG || defined __DOXYGEN__
3463#define TCP_RTO_DEBUG LWIP_DBG_OFF
3464#endif
3465
3469#if !defined TCP_CWND_DEBUG || defined __DOXYGEN__
3470#define TCP_CWND_DEBUG LWIP_DBG_OFF
3471#endif
3472
3476#if !defined TCP_WND_DEBUG || defined __DOXYGEN__
3477#define TCP_WND_DEBUG LWIP_DBG_OFF
3478#endif
3479
3483#if !defined TCP_OUTPUT_DEBUG || defined __DOXYGEN__
3484#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
3485#endif
3486
3490#if !defined TCP_RST_DEBUG || defined __DOXYGEN__
3491#define TCP_RST_DEBUG LWIP_DBG_OFF
3492#endif
3493
3497#if !defined TCP_QLEN_DEBUG || defined __DOXYGEN__
3498#define TCP_QLEN_DEBUG LWIP_DBG_OFF
3499#endif
3500
3504#if !defined UDP_DEBUG || defined __DOXYGEN__
3505#define UDP_DEBUG LWIP_DBG_OFF
3506#endif
3507
3511#if !defined TCPIP_DEBUG || defined __DOXYGEN__
3512#define TCPIP_DEBUG LWIP_DBG_OFF
3513#endif
3514
3518#if !defined SLIP_DEBUG || defined __DOXYGEN__
3519#define SLIP_DEBUG LWIP_DBG_OFF
3520#endif
3521
3525#if !defined DHCP_DEBUG || defined __DOXYGEN__
3526#define DHCP_DEBUG LWIP_DBG_OFF
3527#endif
3528
3532#if !defined AUTOIP_DEBUG || defined __DOXYGEN__
3533#define AUTOIP_DEBUG LWIP_DBG_OFF
3534#endif
3535
3539#if !defined ACD_DEBUG || defined __DOXYGEN__
3540#define ACD_DEBUG LWIP_DBG_OFF
3541#endif
3542
3546#if !defined DNS_DEBUG || defined __DOXYGEN__
3547#define DNS_DEBUG LWIP_DBG_OFF
3548#endif
3549
3553#if !defined IP6_DEBUG || defined __DOXYGEN__
3554#define IP6_DEBUG LWIP_DBG_OFF
3555#endif
3556
3560#if !defined DHCP6_DEBUG || defined __DOXYGEN__
3561#define DHCP6_DEBUG LWIP_DBG_OFF
3562#endif
3570#if !defined LWIP_TESTMODE
3571#define LWIP_TESTMODE 0
3572#endif
3573
3574/*
3575 --------------------------------------------------
3576 ---------- Performance tracking options ----------
3577 --------------------------------------------------
3578*/
3588#if !defined LWIP_PERF || defined __DOXYGEN__
3589#define LWIP_PERF 0
3590#endif
3595#endif /* LWIP_HDR_OPT_H */