ReactOS  0.4.13-dev-464-g6b95727
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__ */