ReactOS 0.4.15-dev-5666-gc548b97
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#ifndef __LWIP_OPT_H__
39#define __LWIP_OPT_H__
40
41/*
42 * Include user defined options first. Anything not defined in these files
43 * will be set to standard values. Override anything you dont like!
44 */
45#include "lwipopts.h"
46#include "lwip/debug.h"
47
48/*
49 -----------------------------------------------
50 ---------- Platform specific locking ----------
51 -----------------------------------------------
52*/
53
59#ifndef SYS_LIGHTWEIGHT_PROT
60#define SYS_LIGHTWEIGHT_PROT 0
61#endif
62
67#ifndef NO_SYS
68#define NO_SYS 0
69#endif
70
75#ifndef NO_SYS_NO_TIMERS
76#define NO_SYS_NO_TIMERS 0
77#endif
78
83#ifndef MEMCPY
84#define MEMCPY(dst,src,len) memcpy(dst,src,len)
85#endif
86
91#ifndef SMEMCPY
92#define SMEMCPY(dst,src,len) memcpy(dst,src,len)
93#endif
94
95/*
96 ------------------------------------
97 ---------- Memory options ----------
98 ------------------------------------
99*/
105#ifndef MEM_LIBC_MALLOC
106#define MEM_LIBC_MALLOC 0
107#endif
108
114#ifndef MEMP_MEM_MALLOC
115#define MEMP_MEM_MALLOC 0
116#endif
117
123#ifndef MEM_ALIGNMENT
124#define MEM_ALIGNMENT 1
125#endif
126
131#ifndef MEM_SIZE
132#define MEM_SIZE 1600
133#endif
134
140#ifndef MEMP_SEPARATE_POOLS
141#define MEMP_SEPARATE_POOLS 0
142#endif
143
153#ifndef MEMP_OVERFLOW_CHECK
154#define MEMP_OVERFLOW_CHECK 0
155#endif
156
161#ifndef MEMP_SANITY_CHECK
162#define MEMP_SANITY_CHECK 0
163#endif
164
171#ifndef MEM_USE_POOLS
172#define MEM_USE_POOLS 0
173#endif
174
179#ifndef MEM_USE_POOLS_TRY_BIGGER_POOL
180#define MEM_USE_POOLS_TRY_BIGGER_POOL 0
181#endif
182
189#ifndef MEMP_USE_CUSTOM_POOLS
190#define MEMP_USE_CUSTOM_POOLS 0
191#endif
192
211#ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT
212#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
213#endif
214
215/*
216 ------------------------------------------------
217 ---------- Internal Memory Pool Sizes ----------
218 ------------------------------------------------
219*/
225#ifndef MEMP_NUM_PBUF
226#define MEMP_NUM_PBUF 16
227#endif
228
233#ifndef MEMP_NUM_RAW_PCB
234#define MEMP_NUM_RAW_PCB 4
235#endif
236
242#ifndef MEMP_NUM_UDP_PCB
243#define MEMP_NUM_UDP_PCB 4
244#endif
245
250#ifndef MEMP_NUM_TCP_PCB
251#define MEMP_NUM_TCP_PCB 5
252#endif
253
258#ifndef MEMP_NUM_TCP_PCB_LISTEN
259#define MEMP_NUM_TCP_PCB_LISTEN 8
260#endif
261
266#ifndef MEMP_NUM_TCP_SEG
267#define MEMP_NUM_TCP_SEG 16
268#endif
269
274#ifndef MEMP_NUM_REASSDATA
275#define MEMP_NUM_REASSDATA 5
276#endif
277
285#ifndef MEMP_NUM_FRAG_PBUF
286#define MEMP_NUM_FRAG_PBUF 15
287#endif
288
295#ifndef MEMP_NUM_ARP_QUEUE
296#define MEMP_NUM_ARP_QUEUE 30
297#endif
298
305#ifndef MEMP_NUM_IGMP_GROUP
306#define MEMP_NUM_IGMP_GROUP 8
307#endif
308
315#ifndef MEMP_NUM_SYS_TIMEOUT
316#define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT)
317#endif
318
323#ifndef MEMP_NUM_NETBUF
324#define MEMP_NUM_NETBUF 2
325#endif
326
331#ifndef MEMP_NUM_NETCONN
332#define MEMP_NUM_NETCONN 4
333#endif
334
340#ifndef MEMP_NUM_TCPIP_MSG_API
341#define MEMP_NUM_TCPIP_MSG_API 8
342#endif
343
349#ifndef MEMP_NUM_TCPIP_MSG_INPKT
350#define MEMP_NUM_TCPIP_MSG_INPKT 8
351#endif
352
356#ifndef MEMP_NUM_SNMP_NODE
357#define MEMP_NUM_SNMP_NODE 50
358#endif
359
364#ifndef MEMP_NUM_SNMP_ROOTNODE
365#define MEMP_NUM_SNMP_ROOTNODE 30
366#endif
367
373#ifndef MEMP_NUM_SNMP_VARBIND
374#define MEMP_NUM_SNMP_VARBIND 2
375#endif
376
382#ifndef MEMP_NUM_SNMP_VALUE
383#define MEMP_NUM_SNMP_VALUE 3
384#endif
385
390#ifndef MEMP_NUM_NETDB
391#define MEMP_NUM_NETDB 1
392#endif
393
398#ifndef MEMP_NUM_LOCALHOSTLIST
399#define MEMP_NUM_LOCALHOSTLIST 1
400#endif
401
406#ifndef MEMP_NUM_PPPOE_INTERFACES
407#define MEMP_NUM_PPPOE_INTERFACES 1
408#endif
409
413#ifndef PBUF_POOL_SIZE
414#define PBUF_POOL_SIZE 16
415#endif
416
417/*
418 ---------------------------------
419 ---------- ARP options ----------
420 ---------------------------------
421*/
425#ifndef LWIP_ARP
426#define LWIP_ARP 1
427#endif
428
432#ifndef ARP_TABLE_SIZE
433#define ARP_TABLE_SIZE 10
434#endif
435
443#ifndef ARP_QUEUEING
444#define ARP_QUEUEING 0
445#endif
446
457#ifndef ETHARP_TRUST_IP_MAC
458#define ETHARP_TRUST_IP_MAC 0
459#endif
460
469#ifndef ETHARP_SUPPORT_VLAN
470#define ETHARP_SUPPORT_VLAN 0
471#endif
472
476#ifndef LWIP_ETHERNET
477#define LWIP_ETHERNET (LWIP_ARP || PPPOE_SUPPORT)
478#endif
479
485#ifndef ETH_PAD_SIZE
486#define ETH_PAD_SIZE 0
487#endif
488
492#ifndef ETHARP_SUPPORT_STATIC_ENTRIES
493#define ETHARP_SUPPORT_STATIC_ENTRIES 0
494#endif
495
496
497/*
498 --------------------------------
499 ---------- IP options ----------
500 --------------------------------
501*/
507#ifndef IP_FORWARD
508#define IP_FORWARD 0
509#endif
510
516#ifndef IP_OPTIONS_ALLOWED
517#define IP_OPTIONS_ALLOWED 1
518#endif
519
525#ifndef IP_REASSEMBLY
526#define IP_REASSEMBLY 1
527#endif
528
534#ifndef IP_FRAG
535#define IP_FRAG 1
536#endif
537
543#ifndef IP_REASS_MAXAGE
544#define IP_REASS_MAXAGE 3
545#endif
546
553#ifndef IP_REASS_MAX_PBUFS
554#define IP_REASS_MAX_PBUFS 10
555#endif
556
564#ifndef IP_FRAG_USES_STATIC_BUF
565#define IP_FRAG_USES_STATIC_BUF 0
566#endif
567
572#if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU)
573#define IP_FRAG_MAX_MTU 1500
574#endif
575
579#ifndef IP_DEFAULT_TTL
580#define IP_DEFAULT_TTL 255
581#endif
582
588#ifndef IP_SOF_BROADCAST
589#define IP_SOF_BROADCAST 0
590#endif
591
596#ifndef IP_SOF_BROADCAST_RECV
597#define IP_SOF_BROADCAST_RECV 0
598#endif
599
607#ifndef IP_FORWARD_ALLOW_TX_ON_RX_NETIF
608#define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
609#endif
610
616#ifndef LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS
617#define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS 0
618#endif
619
620/*
621 ----------------------------------
622 ---------- ICMP options ----------
623 ----------------------------------
624*/
629#ifndef LWIP_ICMP
630#define LWIP_ICMP 1
631#endif
632
636#ifndef ICMP_TTL
637#define ICMP_TTL (IP_DEFAULT_TTL)
638#endif
639
643#ifndef LWIP_BROADCAST_PING
644#define LWIP_BROADCAST_PING 0
645#endif
646
650#ifndef LWIP_MULTICAST_PING
651#define LWIP_MULTICAST_PING 0
652#endif
653
654/*
655 ---------------------------------
656 ---------- RAW options ----------
657 ---------------------------------
658*/
662#ifndef LWIP_RAW
663#define LWIP_RAW 1
664#endif
665
669#ifndef RAW_TTL
670#define RAW_TTL (IP_DEFAULT_TTL)
671#endif
672
673/*
674 ----------------------------------
675 ---------- DHCP options ----------
676 ----------------------------------
677*/
681#ifndef LWIP_DHCP
682#define LWIP_DHCP 0
683#endif
684
688#ifndef DHCP_DOES_ARP_CHECK
689#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
690#endif
691
692/*
693 ------------------------------------
694 ---------- AUTOIP options ----------
695 ------------------------------------
696*/
700#ifndef LWIP_AUTOIP
701#define LWIP_AUTOIP 0
702#endif
703
708#ifndef LWIP_DHCP_AUTOIP_COOP
709#define LWIP_DHCP_AUTOIP_COOP 0
710#endif
711
719#ifndef LWIP_DHCP_AUTOIP_COOP_TRIES
720#define LWIP_DHCP_AUTOIP_COOP_TRIES 9
721#endif
722
723/*
724 ----------------------------------
725 ---------- SNMP options ----------
726 ----------------------------------
727*/
732#ifndef LWIP_SNMP
733#define LWIP_SNMP 0
734#endif
735
741#ifndef SNMP_CONCURRENT_REQUESTS
742#define SNMP_CONCURRENT_REQUESTS 1
743#endif
744
749#ifndef SNMP_TRAP_DESTINATIONS
750#define SNMP_TRAP_DESTINATIONS 1
751#endif
752
758#ifndef SNMP_PRIVATE_MIB
759#define SNMP_PRIVATE_MIB 0
760#endif
761
767#ifndef SNMP_SAFE_REQUESTS
768#define SNMP_SAFE_REQUESTS 1
769#endif
770
775#ifndef SNMP_MAX_OCTET_STRING_LEN
776#define SNMP_MAX_OCTET_STRING_LEN 127
777#endif
778
784#ifndef SNMP_MAX_TREE_DEPTH
785#define SNMP_MAX_TREE_DEPTH 15
786#endif
787
792#ifndef SNMP_MAX_VALUE_SIZE
793#define SNMP_MAX_VALUE_SIZE LWIP_MAX((SNMP_MAX_OCTET_STRING_LEN)+1, sizeof(s32_t)*(SNMP_MAX_TREE_DEPTH))
794#endif
795
796/*
797 ----------------------------------
798 ---------- IGMP options ----------
799 ----------------------------------
800*/
804#ifndef LWIP_IGMP
805#define LWIP_IGMP 0
806#endif
807
808/*
809 ----------------------------------
810 ---------- DNS options -----------
811 ----------------------------------
812*/
817#ifndef LWIP_DNS
818#define LWIP_DNS 0
819#endif
820
822#ifndef DNS_TABLE_SIZE
823#define DNS_TABLE_SIZE 4
824#endif
825
827#ifndef DNS_MAX_NAME_LENGTH
828#define DNS_MAX_NAME_LENGTH 256
829#endif
830
832#ifndef DNS_MAX_SERVERS
833#define DNS_MAX_SERVERS 2
834#endif
835
837#ifndef DNS_DOES_NAME_CHECK
838#define DNS_DOES_NAME_CHECK 1
839#endif
840
842#ifndef DNS_MSG_SIZE
843#define DNS_MSG_SIZE 512
844#endif
845
856#ifndef DNS_LOCAL_HOSTLIST
857#define DNS_LOCAL_HOSTLIST 0
858#endif /* DNS_LOCAL_HOSTLIST */
859
862#ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC
863#define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
864#endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */
865
866/*
867 ---------------------------------
868 ---------- UDP options ----------
869 ---------------------------------
870*/
874#ifndef LWIP_UDP
875#define LWIP_UDP 1
876#endif
877
881#ifndef LWIP_UDPLITE
882#define LWIP_UDPLITE 0
883#endif
884
888#ifndef UDP_TTL
889#define UDP_TTL (IP_DEFAULT_TTL)
890#endif
891
895#ifndef LWIP_NETBUF_RECVINFO
896#define LWIP_NETBUF_RECVINFO 0
897#endif
898
899/*
900 ---------------------------------
901 ---------- TCP options ----------
902 ---------------------------------
903*/
907#ifndef LWIP_TCP
908#define LWIP_TCP 1
909#endif
910
914#ifndef TCP_TTL
915#define TCP_TTL (IP_DEFAULT_TTL)
916#endif
917
922#ifndef TCP_WND
923#define TCP_WND (4 * TCP_MSS)
924#endif
925
929#ifndef TCP_MAXRTX
930#define TCP_MAXRTX 12
931#endif
932
936#ifndef TCP_SYNMAXRTX
937#define TCP_SYNMAXRTX 6
938#endif
939
944#ifndef TCP_QUEUE_OOSEQ
945#define TCP_QUEUE_OOSEQ (LWIP_TCP)
946#endif
947
955#ifndef TCP_MSS
956#define TCP_MSS 536
957#endif
958
967#ifndef TCP_CALCULATE_EFF_SEND_MSS
968#define TCP_CALCULATE_EFF_SEND_MSS 1
969#endif
970
971
976#ifndef TCP_SND_BUF
977#define TCP_SND_BUF (2 * TCP_MSS)
978#endif
979
984#ifndef TCP_SND_QUEUELEN
985#define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
986#endif
987
993#ifndef TCP_SNDLOWAT
994#define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
995#endif
996
1002#ifndef TCP_SNDQUEUELOWAT
1003#define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
1004#endif
1005
1010#ifndef TCP_OOSEQ_MAX_BYTES
1011#define TCP_OOSEQ_MAX_BYTES 0
1012#endif
1013
1018#ifndef TCP_OOSEQ_MAX_PBUFS
1019#define TCP_OOSEQ_MAX_PBUFS 0
1020#endif
1021
1025#ifndef TCP_LISTEN_BACKLOG
1026#define TCP_LISTEN_BACKLOG 0
1027#endif
1028
1034#ifndef TCP_DEFAULT_LISTEN_BACKLOG
1035#define TCP_DEFAULT_LISTEN_BACKLOG 0xff
1036#endif
1037
1052#ifndef TCP_OVERSIZE
1053#define TCP_OVERSIZE TCP_MSS
1054#endif
1055
1059#ifndef LWIP_TCP_TIMESTAMPS
1060#define LWIP_TCP_TIMESTAMPS 0
1061#endif
1062
1067#ifndef TCP_WND_UPDATE_THRESHOLD
1068#define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4)
1069#endif
1070
1078#if !defined(LWIP_EVENT_API) && !defined(LWIP_CALLBACK_API)
1079#define LWIP_EVENT_API 0
1080#define LWIP_CALLBACK_API 1
1081#endif
1082
1083
1084/*
1085 ----------------------------------
1086 ---------- Pbuf options ----------
1087 ----------------------------------
1088*/
1094#ifndef PBUF_LINK_HLEN
1095#define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
1096#endif
1097
1103#ifndef PBUF_POOL_BUFSIZE
1104#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN)
1105#endif
1106
1107/*
1108 ------------------------------------------------
1109 ---------- Network Interfaces options ----------
1110 ------------------------------------------------
1111*/
1116#ifndef LWIP_NETIF_HOSTNAME
1117#define LWIP_NETIF_HOSTNAME 0
1118#endif
1119
1123#ifndef LWIP_NETIF_API
1124#define LWIP_NETIF_API 0
1125#endif
1126
1131#ifndef LWIP_NETIF_STATUS_CALLBACK
1132#define LWIP_NETIF_STATUS_CALLBACK 0
1133#endif
1134
1139#ifndef LWIP_NETIF_LINK_CALLBACK
1140#define LWIP_NETIF_LINK_CALLBACK 0
1141#endif
1142
1147#ifndef LWIP_NETIF_REMOVE_CALLBACK
1148#define LWIP_NETIF_REMOVE_CALLBACK 0
1149#endif
1150
1158#ifndef LWIP_NETIF_HWADDRHINT
1159#define LWIP_NETIF_HWADDRHINT 0
1160#endif
1161
1166#ifndef LWIP_NETIF_LOOPBACK
1167#define LWIP_NETIF_LOOPBACK 0
1168#endif
1169
1174#ifndef LWIP_LOOPBACK_MAX_PBUFS
1175#define LWIP_LOOPBACK_MAX_PBUFS 0
1176#endif
1177
1191#ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING
1192#define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
1193#endif
1194
1204#ifndef LWIP_NETIF_TX_SINGLE_PBUF
1205#define LWIP_NETIF_TX_SINGLE_PBUF 0
1206#endif /* LWIP_NETIF_TX_SINGLE_PBUF */
1207
1208/*
1209 ------------------------------------
1210 ---------- LOOPIF options ----------
1211 ------------------------------------
1212*/
1216#ifndef LWIP_HAVE_LOOPIF
1217#define LWIP_HAVE_LOOPIF 0
1218#endif
1219
1220/*
1221 ------------------------------------
1222 ---------- SLIPIF options ----------
1223 ------------------------------------
1224*/
1228#ifndef LWIP_HAVE_SLIPIF
1229#define LWIP_HAVE_SLIPIF 0
1230#endif
1231
1232/*
1233 ------------------------------------
1234 ---------- Thread options ----------
1235 ------------------------------------
1236*/
1240#ifndef TCPIP_THREAD_NAME
1241#define TCPIP_THREAD_NAME "tcpip_thread"
1242#endif
1243
1249#ifndef TCPIP_THREAD_STACKSIZE
1250#define TCPIP_THREAD_STACKSIZE 0
1251#endif
1252
1258#ifndef TCPIP_THREAD_PRIO
1259#define TCPIP_THREAD_PRIO 1
1260#endif
1261
1267#ifndef TCPIP_MBOX_SIZE
1268#define TCPIP_MBOX_SIZE 0
1269#endif
1270
1274#ifndef SLIPIF_THREAD_NAME
1275#define SLIPIF_THREAD_NAME "slipif_loop"
1276#endif
1277
1283#ifndef SLIPIF_THREAD_STACKSIZE
1284#define SLIPIF_THREAD_STACKSIZE 0
1285#endif
1286
1292#ifndef SLIPIF_THREAD_PRIO
1293#define SLIPIF_THREAD_PRIO 1
1294#endif
1295
1299#ifndef PPP_THREAD_NAME
1300#define PPP_THREAD_NAME "pppInputThread"
1301#endif
1302
1308#ifndef PPP_THREAD_STACKSIZE
1309#define PPP_THREAD_STACKSIZE 0
1310#endif
1311
1317#ifndef PPP_THREAD_PRIO
1318#define PPP_THREAD_PRIO 1
1319#endif
1320
1324#ifndef DEFAULT_THREAD_NAME
1325#define DEFAULT_THREAD_NAME "lwIP"
1326#endif
1327
1333#ifndef DEFAULT_THREAD_STACKSIZE
1334#define DEFAULT_THREAD_STACKSIZE 0
1335#endif
1336
1342#ifndef DEFAULT_THREAD_PRIO
1343#define DEFAULT_THREAD_PRIO 1
1344#endif
1345
1351#ifndef DEFAULT_RAW_RECVMBOX_SIZE
1352#define DEFAULT_RAW_RECVMBOX_SIZE 0
1353#endif
1354
1360#ifndef DEFAULT_UDP_RECVMBOX_SIZE
1361#define DEFAULT_UDP_RECVMBOX_SIZE 0
1362#endif
1363
1369#ifndef DEFAULT_TCP_RECVMBOX_SIZE
1370#define DEFAULT_TCP_RECVMBOX_SIZE 0
1371#endif
1372
1378#ifndef DEFAULT_ACCEPTMBOX_SIZE
1379#define DEFAULT_ACCEPTMBOX_SIZE 0
1380#endif
1381
1382/*
1383 ----------------------------------------------
1384 ---------- Sequential layer options ----------
1385 ----------------------------------------------
1386*/
1391#ifndef LWIP_TCPIP_CORE_LOCKING
1392#define LWIP_TCPIP_CORE_LOCKING 0
1393#endif
1394
1399#ifndef LWIP_TCPIP_CORE_LOCKING_INPUT
1400#define LWIP_TCPIP_CORE_LOCKING_INPUT 0
1401#endif
1402
1406#ifndef LWIP_NETCONN
1407#define LWIP_NETCONN 1
1408#endif
1409
1413#ifndef LWIP_TCPIP_TIMEOUT
1414#define LWIP_TCPIP_TIMEOUT 1
1415#endif
1416
1417/*
1418 ------------------------------------
1419 ---------- Socket options ----------
1420 ------------------------------------
1421*/
1425#ifndef LWIP_SOCKET
1426#define LWIP_SOCKET 1
1427#endif
1428
1433#ifndef LWIP_COMPAT_SOCKETS
1434#define LWIP_COMPAT_SOCKETS 1
1435#endif
1436
1442#ifndef LWIP_POSIX_SOCKETS_IO_NAMES
1443#define LWIP_POSIX_SOCKETS_IO_NAMES 1
1444#endif
1445
1451#ifndef LWIP_TCP_KEEPALIVE
1452#define LWIP_TCP_KEEPALIVE 0
1453#endif
1454
1459#ifndef LWIP_SO_SNDTIMEO
1460#define LWIP_SO_SNDTIMEO 0
1461#endif
1462
1467#ifndef LWIP_SO_RCVTIMEO
1468#define LWIP_SO_RCVTIMEO 0
1469#endif
1470
1474#ifndef LWIP_SO_RCVBUF
1475#define LWIP_SO_RCVBUF 0
1476#endif
1477
1481#ifndef RECV_BUFSIZE_DEFAULT
1482#define RECV_BUFSIZE_DEFAULT INT_MAX
1483#endif
1484
1488#ifndef SO_REUSE
1489#define SO_REUSE 0
1490#endif
1491
1497#ifndef SO_REUSE_RXTOALL
1498#define SO_REUSE_RXTOALL 0
1499#endif
1500
1501/*
1502 ----------------------------------------
1503 ---------- Statistics options ----------
1504 ----------------------------------------
1505*/
1509#ifndef LWIP_STATS
1510#define LWIP_STATS 1
1511#endif
1512
1513#if LWIP_STATS
1514
1518#ifndef LWIP_STATS_DISPLAY
1519#define LWIP_STATS_DISPLAY 0
1520#endif
1521
1525#ifndef LINK_STATS
1526#define LINK_STATS 1
1527#endif
1528
1532#ifndef ETHARP_STATS
1533#define ETHARP_STATS (LWIP_ARP)
1534#endif
1535
1539#ifndef IP_STATS
1540#define IP_STATS 1
1541#endif
1542
1547#ifndef IPFRAG_STATS
1548#define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
1549#endif
1550
1554#ifndef ICMP_STATS
1555#define ICMP_STATS 1
1556#endif
1557
1561#ifndef IGMP_STATS
1562#define IGMP_STATS (LWIP_IGMP)
1563#endif
1564
1569#ifndef UDP_STATS
1570#define UDP_STATS (LWIP_UDP)
1571#endif
1572
1577#ifndef TCP_STATS
1578#define TCP_STATS (LWIP_TCP)
1579#endif
1580
1584#ifndef MEM_STATS
1585#define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
1586#endif
1587
1591#ifndef MEMP_STATS
1592#define MEMP_STATS (MEMP_MEM_MALLOC == 0)
1593#endif
1594
1598#ifndef SYS_STATS
1599#define SYS_STATS (NO_SYS == 0)
1600#endif
1601
1602#else
1603
1604#define LINK_STATS 0
1605#define IP_STATS 0
1606#define IPFRAG_STATS 0
1607#define ICMP_STATS 0
1608#define IGMP_STATS 0
1609#define UDP_STATS 0
1610#define TCP_STATS 0
1611#define MEM_STATS 0
1612#define MEMP_STATS 0
1613#define SYS_STATS 0
1614#define LWIP_STATS_DISPLAY 0
1615
1616#endif /* LWIP_STATS */
1617
1618/*
1619 ---------------------------------
1620 ---------- PPP options ----------
1621 ---------------------------------
1622*/
1626#ifndef PPP_SUPPORT
1627#define PPP_SUPPORT 0
1628#endif
1629
1633#ifndef PPPOE_SUPPORT
1634#define PPPOE_SUPPORT 0
1635#endif
1636
1640#ifndef PPPOS_SUPPORT
1641#define PPPOS_SUPPORT PPP_SUPPORT
1642#endif
1643
1644#if PPP_SUPPORT
1645
1649#ifndef NUM_PPP
1650#define NUM_PPP 1
1651#endif
1652
1656#ifndef PAP_SUPPORT
1657#define PAP_SUPPORT 0
1658#endif
1659
1663#ifndef CHAP_SUPPORT
1664#define CHAP_SUPPORT 0
1665#endif
1666
1670#ifndef MSCHAP_SUPPORT
1671#define MSCHAP_SUPPORT 0
1672#endif
1673
1677#ifndef CBCP_SUPPORT
1678#define CBCP_SUPPORT 0
1679#endif
1680
1684#ifndef CCP_SUPPORT
1685#define CCP_SUPPORT 0
1686#endif
1687
1691#ifndef VJ_SUPPORT
1692#define VJ_SUPPORT 0
1693#endif
1694
1698#ifndef MD5_SUPPORT
1699#define MD5_SUPPORT 0
1700#endif
1701
1702/*
1703 * Timeouts
1704 */
1705#ifndef FSM_DEFTIMEOUT
1706#define FSM_DEFTIMEOUT 6 /* Timeout time in seconds */
1707#endif
1708
1709#ifndef FSM_DEFMAXTERMREQS
1710#define FSM_DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */
1711#endif
1712
1713#ifndef FSM_DEFMAXCONFREQS
1714#define FSM_DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */
1715#endif
1716
1717#ifndef FSM_DEFMAXNAKLOOPS
1718#define FSM_DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */
1719#endif
1720
1721#ifndef UPAP_DEFTIMEOUT
1722#define UPAP_DEFTIMEOUT 6 /* Timeout (seconds) for retransmitting req */
1723#endif
1724
1725#ifndef UPAP_DEFREQTIME
1726#define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */
1727#endif
1728
1729#ifndef CHAP_DEFTIMEOUT
1730#define CHAP_DEFTIMEOUT 6 /* Timeout time in seconds */
1731#endif
1732
1733#ifndef CHAP_DEFTRANSMITS
1734#define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */
1735#endif
1736
1737/* Interval in seconds between keepalive echo requests, 0 to disable. */
1738#ifndef LCP_ECHOINTERVAL
1739#define LCP_ECHOINTERVAL 0
1740#endif
1741
1742/* Number of unanswered echo requests before failure. */
1743#ifndef LCP_MAXECHOFAILS
1744#define LCP_MAXECHOFAILS 3
1745#endif
1746
1747/* Max Xmit idle time (in jiffies) before resend flag char. */
1748#ifndef PPP_MAXIDLEFLAG
1749#define PPP_MAXIDLEFLAG 100
1750#endif
1751
1752/*
1753 * Packet sizes
1754 *
1755 * Note - lcp shouldn't be allowed to negotiate stuff outside these
1756 * limits. See lcp.h in the pppd directory.
1757 * (XXX - these constants should simply be shared by lcp.c instead
1758 * of living in lcp.h)
1759 */
1760#define PPP_MTU 1500 /* Default MTU (size of Info field) */
1761#ifndef PPP_MAXMTU
1762/* #define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) */
1763#define PPP_MAXMTU 1500 /* Largest MTU we allow */
1764#endif
1765#define PPP_MINMTU 64
1766#define PPP_MRU 1500 /* default MRU = max length of info field */
1767#define PPP_MAXMRU 1500 /* Largest MRU we allow */
1768#ifndef PPP_DEFMRU
1769#define PPP_DEFMRU 296 /* Try for this */
1770#endif
1771#define PPP_MINMRU 128 /* No MRUs below this */
1772
1773#ifndef MAXNAMELEN
1774#define MAXNAMELEN 256 /* max length of hostname or name for auth */
1775#endif
1776#ifndef MAXSECRETLEN
1777#define MAXSECRETLEN 256 /* max length of password or secret */
1778#endif
1779
1780#endif /* PPP_SUPPORT */
1781
1782/*
1783 --------------------------------------
1784 ---------- Checksum options ----------
1785 --------------------------------------
1786*/
1790#ifndef CHECKSUM_GEN_IP
1791#define CHECKSUM_GEN_IP 1
1792#endif
1793
1797#ifndef CHECKSUM_GEN_UDP
1798#define CHECKSUM_GEN_UDP 1
1799#endif
1800
1804#ifndef CHECKSUM_GEN_TCP
1805#define CHECKSUM_GEN_TCP 1
1806#endif
1807
1811#ifndef CHECKSUM_GEN_ICMP
1812#define CHECKSUM_GEN_ICMP 1
1813#endif
1814
1818#ifndef CHECKSUM_CHECK_IP
1819#define CHECKSUM_CHECK_IP 1
1820#endif
1821
1825#ifndef CHECKSUM_CHECK_UDP
1826#define CHECKSUM_CHECK_UDP 1
1827#endif
1828
1832#ifndef CHECKSUM_CHECK_TCP
1833#define CHECKSUM_CHECK_TCP 1
1834#endif
1835
1840#ifndef LWIP_CHECKSUM_ON_COPY
1841#define LWIP_CHECKSUM_ON_COPY 0
1842#endif
1843
1844/*
1845 ---------------------------------------
1846 ---------- Hook options ---------------
1847 ---------------------------------------
1848*/
1849
1850/* Hooks are undefined by default, define them to a function if you need them. */
1851
1872/*
1873 ---------------------------------------
1874 ---------- Debugging options ----------
1875 ---------------------------------------
1876*/
1882#ifndef LWIP_DBG_MIN_LEVEL
1883#define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
1884#endif
1885
1890#ifndef LWIP_DBG_TYPES_ON
1891#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
1892#endif
1893
1897#ifndef ETHARP_DEBUG
1898#define ETHARP_DEBUG LWIP_DBG_OFF
1899#endif
1900
1904#ifndef NETIF_DEBUG
1905#define NETIF_DEBUG LWIP_DBG_OFF
1906#endif
1907
1911#ifndef PBUF_DEBUG
1912#define PBUF_DEBUG LWIP_DBG_OFF
1913#endif
1914
1918#ifndef API_LIB_DEBUG
1919#define API_LIB_DEBUG LWIP_DBG_OFF
1920#endif
1921
1925#ifndef API_MSG_DEBUG
1926#define API_MSG_DEBUG LWIP_DBG_OFF
1927#endif
1928
1932#ifndef SOCKETS_DEBUG
1933#define SOCKETS_DEBUG LWIP_DBG_OFF
1934#endif
1935
1939#ifndef ICMP_DEBUG
1940#define ICMP_DEBUG LWIP_DBG_OFF
1941#endif
1942
1946#ifndef IGMP_DEBUG
1947#define IGMP_DEBUG LWIP_DBG_OFF
1948#endif
1949
1953#ifndef INET_DEBUG
1954#define INET_DEBUG LWIP_DBG_OFF
1955#endif
1956
1960#ifndef IP_DEBUG
1961#define IP_DEBUG LWIP_DBG_OFF
1962#endif
1963
1967#ifndef IP_REASS_DEBUG
1968#define IP_REASS_DEBUG LWIP_DBG_OFF
1969#endif
1970
1974#ifndef RAW_DEBUG
1975#define RAW_DEBUG LWIP_DBG_OFF
1976#endif
1977
1981#ifndef MEM_DEBUG
1982#define MEM_DEBUG LWIP_DBG_OFF
1983#endif
1984
1988#ifndef MEMP_DEBUG
1989#define MEMP_DEBUG LWIP_DBG_OFF
1990#endif
1991
1995#ifndef SYS_DEBUG
1996#define SYS_DEBUG LWIP_DBG_OFF
1997#endif
1998
2002#ifndef TIMERS_DEBUG
2003#define TIMERS_DEBUG LWIP_DBG_OFF
2004#endif
2005
2009#ifndef TCP_DEBUG
2010#define TCP_DEBUG LWIP_DBG_OFF
2011#endif
2012
2016#ifndef TCP_INPUT_DEBUG
2017#define TCP_INPUT_DEBUG LWIP_DBG_OFF
2018#endif
2019
2023#ifndef TCP_FR_DEBUG
2024#define TCP_FR_DEBUG LWIP_DBG_OFF
2025#endif
2026
2031#ifndef TCP_RTO_DEBUG
2032#define TCP_RTO_DEBUG LWIP_DBG_OFF
2033#endif
2034
2038#ifndef TCP_CWND_DEBUG
2039#define TCP_CWND_DEBUG LWIP_DBG_OFF
2040#endif
2041
2045#ifndef TCP_WND_DEBUG
2046#define TCP_WND_DEBUG LWIP_DBG_OFF
2047#endif
2048
2052#ifndef TCP_OUTPUT_DEBUG
2053#define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
2054#endif
2055
2059#ifndef TCP_RST_DEBUG
2060#define TCP_RST_DEBUG LWIP_DBG_OFF
2061#endif
2062
2066#ifndef TCP_QLEN_DEBUG
2067#define TCP_QLEN_DEBUG LWIP_DBG_OFF
2068#endif
2069
2073#ifndef UDP_DEBUG
2074#define UDP_DEBUG LWIP_DBG_OFF
2075#endif
2076
2080#ifndef TCPIP_DEBUG
2081#define TCPIP_DEBUG LWIP_DBG_OFF
2082#endif
2083
2087#ifndef PPP_DEBUG
2088#define PPP_DEBUG LWIP_DBG_OFF
2089#endif
2090
2094#ifndef SLIP_DEBUG
2095#define SLIP_DEBUG LWIP_DBG_OFF
2096#endif
2097
2101#ifndef DHCP_DEBUG
2102#define DHCP_DEBUG LWIP_DBG_OFF
2103#endif
2104
2108#ifndef AUTOIP_DEBUG
2109#define AUTOIP_DEBUG LWIP_DBG_OFF
2110#endif
2111
2115#ifndef SNMP_MSG_DEBUG
2116#define SNMP_MSG_DEBUG LWIP_DBG_OFF
2117#endif
2118
2122#ifndef SNMP_MIB_DEBUG
2123#define SNMP_MIB_DEBUG LWIP_DBG_OFF
2124#endif
2125
2129#ifndef DNS_DEBUG
2130#define DNS_DEBUG LWIP_DBG_OFF
2131#endif
2132
2133#endif /* __LWIP_OPT_H__ */