UbixOS  2.0
lwipopts.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without modification,
6  * are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  * 3. The name of the author may not be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
19  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
21  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
25  * OF SUCH DAMAGE.
26  *
27  * This file is part of the lwIP TCP/IP stack.
28  *
29  * Author: Simon Goldschmidt
30  *
31  */
32 
33 #ifndef LWIP_HDR_LWIPOPTS_H
34 #define LWIP_HDR_LWIPOPTS_H
35 
36 /* NEVER Set To 1, 1 Will Remove OS Abstraction */
37 #define NO_SYS 0
38 
39 /* Timer Settings */
40 #define LWIP_TIMERS 1
41 #define LWIP_TIMERS_CUSTOM 0
42 
43 #define MEMCPY(dst, src, len) memcpy(dst,src,len)
44 #define SMEMCPY(dst, src, len) memcpy(dst,src,len)
45 
46 /* Core locking and MPU */
47 #define LWIP_MPU_COMPATIBLE 0
48 #define LWIP_TCPIP_CORE_LOCKING 1
49 #define LWIP_TCPIP_CORE_LOCKING_INPUT 1
50 #define SYS_LIGHTWEIGHT_PROT 0
51 
52 
53 #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0
54 #define MEM_ALIGNMENT 1
55 #define MEM_LIBC_MALLOC 0
56 #define MEM_SIZE 1600
57 #define MEM_USE_POOLS 0
58 #define MEM_USE_POOLS_TRY_BIGGER_POOL 0
59 
60 #define MEMP_MEM_MALLOC 0
61 #define MEMP_SANITY_CHECK 0
62 #define MEMP_USE_CUSTOM_POOLS 0
63 #define MEMP_OVERFLOW_CHECK 0
64 
65 #define MEMP_NUM_API_MSG MEMP_NUM_TCPIP_MSG_API
66 #define MEMP_NUM_ARP_QUEUE 30
67 #define MEMP_NUM_DNS_API_MSG MEMP_NUM_TCPIP_MSG_API
68 #define MEMP_NUM_FRAG_PBUF 15
69 #define MEMP_NUM_IGMP_GROUP 8
70 #define MEMP_NUM_LOCALHOSTLIST 1
71 #define MEMP_NUM_NETBUF 2
72 #define MEMP_NUM_NETCONN 4
73 #define MEMP_NUM_NETDB 1
74 #define MEMP_NUM_NETIFAPI_MSG MEMP_NUM_TCPIP_MSG_API
75 #define MEMP_NUM_PBUF 16
76 #define MEMP_NUM_RAW_PCB 4
77 #define MEMP_NUM_REASSDATA 5
78 #define MEMP_NUM_SOCKET_SETGETSOCKOPT_DATA MEMP_NUM_TCPIP_MSG_API
79 #define MEMP_NUM_TCP_PCB 5
80 #define MEMP_NUM_TCP_PCB_LISTEN 8
81 #define MEMP_NUM_TCP_SEG 16
82 #define MEMP_NUM_TCPIP_MSG_API 8
83 #define MEMP_NUM_TCPIP_MSG_INPKT 8
84 #define MEMP_NUM_UDP_PCB 4
85 #define PBUF_POOL_SIZE 16
86 
87 #define MEMP_NUM_SYS_TIMEOUT (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + (PPP_SUPPORT*6*MEMP_NUM_PPP_PCB) + (LWIP_IPV6 ? (1 + LWIP_IPV6_REASS + LWIP_IPV6_MLD) : 0))
88 
89 #define LWIP_ARP 1
90 
91 #define ARP_TABLE_SIZE 10
92 
93 #define ARP_MAXAGE 300
94 
95 #define ARP_QUEUEING 0
96 
97 #define ARP_QUEUE_LEN 3
98 
99 #define ETHARP_SUPPORT_VLAN 0
100 
101 #define LWIP_ETHERNET LWIP_ARP
102 
103 #define ETH_PAD_SIZE 0
104 
105 #define ETHARP_SUPPORT_STATIC_ENTRIES 0
106 
107 #define ETHARP_TABLE_MATCH_NETIF 0
108 
109 #define LWIP_IPV4 1
110 
111 #define IP_FORWARD 0
112 
113 #define IP_REASSEMBLY 1
114 
115 #define IP_FRAG 1
116 
117 #define IP_OPTIONS_ALLOWED 1
118 
119 #define IP_REASS_MAXAGE 3
120 
121 #define IP_REASS_MAX_PBUFS 10
122 
123 #define IP_DEFAULT_TTL 255
124 
125 #define IP_SOF_BROADCAST 0
126 
127 #define IP_SOF_BROADCAST_RECV 0
128 
129 #define IP_FORWARD_ALLOW_TX_ON_RX_NETIF 0
130 
131 #define LWIP_RANDOMIZE_INITIAL_LOCAL_PORTS 0
132 
133 #define LWIP_ICMP 1
134 
135 #define ICMP_TTL (IP_DEFAULT_TTL)
136 
137 #define LWIP_BROADCAST_PING 1
138 
139 #define LWIP_MULTICAST_PING 0
140 
141 #define LWIP_RAW 1
142 
143 #define RAW_TTL (IP_DEFAULT_TTL)
144 
145 #define LWIP_DHCP 0
146 #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))
147 #define LWIP_DHCP_BOOTP_FILE 0
148 #define LWIP_DHCP_GET_NTP_SRV 0
149 #define LWIP_DHCP_MAX_NTP_SERVERS 1
150 #define LWIP_DHCP_MAX_DNS_SERVERS DNS_MAX_SERVERS
151 #define LWIP_AUTOIP 0
152 #define LWIP_DHCP_AUTOIP_COOP 0
153 #define LWIP_DHCP_AUTOIP_COOP_TRIES 9
154 #define LWIP_MIB2_CALLBACKS 0
155 #define LWIP_IGMP 0
156 #define LWIP_MULTICAST_TX_OPTIONS (LWIP_IGMP && LWIP_UDP)
157 #define LWIP_DNS 0
158 #define DNS_TABLE_SIZE 4
159 #define DNS_MAX_NAME_LENGTH 256
160 #define DNS_MAX_SERVERS 2
161 #define DNS_DOES_NAME_CHECK 1
162 #define LWIP_DNS_SECURE (LWIP_DNS_SECURE_RAND_XID | LWIP_DNS_SECURE_NO_MULTIPLE_OUTSTANDING | LWIP_DNS_SECURE_RAND_SRC_PORT)
163 #define DNS_LOCAL_HOSTLIST 0
164 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0
165 #define LWIP_DNS_SUPPORT_MDNS_QUERIES 0
166 #define LWIP_UDP 1
167 #define LWIP_UDPLITE 0
168 #define UDP_TTL (IP_DEFAULT_TTL)
169 #define LWIP_NETBUF_RECVINFO 0
170 #define LWIP_TCP 1
171 #define TCP_TTL (IP_DEFAULT_TTL)
172 #define TCP_WND (4 * TCP_MSS)
173 
174 #define TCP_MAXRTX 12
175 
176 #define TCP_SYNMAXRTX 6
177 
178 #define TCP_QUEUE_OOSEQ (LWIP_TCP)
179 
180 #define TCP_MSS 536
181 
182 #define TCP_CALCULATE_EFF_SEND_MSS 1
183 
184 #define TCP_SND_BUF (2 * TCP_MSS)
185 
186 #define TCP_SND_QUEUELEN ((4 * (TCP_SND_BUF) + (TCP_MSS - 1))/(TCP_MSS))
187 
188 #define TCP_SNDLOWAT LWIP_MIN(LWIP_MAX(((TCP_SND_BUF)/2), (2 * TCP_MSS) + 1), (TCP_SND_BUF) - 1)
189 
190 #define TCP_SNDQUEUELOWAT LWIP_MAX(((TCP_SND_QUEUELEN)/2), 5)
191 
192 #define TCP_OOSEQ_MAX_BYTES 0
193 
194 #define TCP_OOSEQ_MAX_PBUFS 0
195 
196 #define TCP_LISTEN_BACKLOG 0
197 
198 #define TCP_DEFAULT_LISTEN_BACKLOG 0xff
199 
200 #define TCP_OVERSIZE TCP_MSS
201 
202 #define LWIP_TCP_TIMESTAMPS 1
203 
204 #define TCP_WND_UPDATE_THRESHOLD LWIP_MIN((TCP_WND / 4), (TCP_MSS * 4))
205 
206 #define LWIP_EVENT_API 0
207 #define LWIP_WND_SCALE 0
208 
209 #define PBUF_LINK_HLEN (14 + ETH_PAD_SIZE)
210 
211 #define PBUF_LINK_ENCAPSULATION_HLEN 0u
212 
213 #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS + 40 + PBUF_LINK_ENCAPSULATION_HLEN + PBUF_LINK_HLEN)
214 
215 #define LWIP_NETIF_HOSTNAME 0
216 
217 #define LWIP_NETIF_API 0
218 
219 #define LWIP_NETIF_STATUS_CALLBACK 0
220 
221 #define LWIP_NETIF_LINK_CALLBACK 0
222 
223 #define LWIP_NETIF_REMOVE_CALLBACK 0
224 
225 #define LWIP_NETIF_HWADDRHINT 0
226 
227 #define LWIP_NETIF_TX_SINGLE_PBUF 0
228 
229 #define LWIP_NUM_NETIF_CLIENT_DATA 0
230 
231 #define LWIP_HAVE_LOOPIF LWIP_NETIF_LOOPBACK
232 
233 #define LWIP_LOOPIF_MULTICAST 0
234 
235 #define LWIP_NETIF_LOOPBACK 1
236 
237 #define LWIP_LOOPBACK_MAX_PBUFS 0
238 
239 #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS)
240 
241 #define TCPIP_THREAD_NAME "tcpip_thread"
242 
243 #define TCPIP_THREAD_STACKSIZE 0
244 
245 #define TCPIP_THREAD_PRIO 1
246 
247 #define TCPIP_MBOX_SIZE 6
248 
249 #define LWIP_TCPIP_THREAD_ALIVE()
250 
251 #define SLIPIF_THREAD_NAME "slipif_loop"
252 
253 #define SLIPIF_THREAD_STACKSIZE 0
254 
255 #define SLIPIF_THREAD_PRIO 1
256 
257 #define DEFAULT_THREAD_NAME "lwIP"
258 
259 #define DEFAULT_THREAD_STACKSIZE 0
260 
261 #define DEFAULT_THREAD_PRIO 1
262 
263 #define DEFAULT_RAW_RECVMBOX_SIZE 0
264 
265 #define DEFAULT_UDP_RECVMBOX_SIZE 0
266 
267 #define DEFAULT_TCP_RECVMBOX_SIZE 0
268 
269 #define DEFAULT_ACCEPTMBOX_SIZE 0
270 
271 #define LWIP_NETCONN 1
272 
273 #define LWIP_TCPIP_TIMEOUT 1
274 
275 #define LWIP_NETCONN_SEM_PER_THREAD 0
276 
277 #define LWIP_NETCONN_FULLDUPLEX 0
278 
279 #define LWIP_SOCKET 1
280 
281 #define LWIP_COMPAT_SOCKETS 1
282 
283 #define LWIP_POSIX_SOCKETS_IO_NAMES 1
284 
285 #define LWIP_SOCKET_OFFSET 0
286 
287 #define LWIP_TCP_KEEPALIVE 0
288 
289 #define LWIP_SO_SNDTIMEO 1
290 
291 #define LWIP_SO_RCVTIMEO 1
292 
293 #define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 0
294 
295 #define LWIP_SO_RCVBUF 0
296 
297 #define LWIP_SO_LINGER 0
298 
299 #define RECV_BUFSIZE_DEFAULT INT_MAX
300 
301 #define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT 20000
302 
303 #define SO_REUSE 0
304 
305 #define SO_REUSE_RXTOALL 0
306 
307 #define LWIP_FIONREAD_LINUXMODE 0
308 
309 #define LWIP_STATS 1
310 
311 #define LWIP_STATS_DISPLAY 0
312 
313 #define LINK_STATS 1
314 
315 #define ETHARP_STATS (LWIP_ARP)
316 
317 #define IP_STATS 1
318 
319 #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG)
320 
321 #define ICMP_STATS 1
322 
323 #define IGMP_STATS (LWIP_IGMP)
324 
325 #define UDP_STATS (LWIP_UDP)
326 
327 #define TCP_STATS (LWIP_TCP)
328 
329 #define MEM_STATS ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
330 
331 #define MEMP_STATS (MEMP_MEM_MALLOC == 0)
332 
333 #define SYS_STATS (NO_SYS == 0)
334 
335 #define IP6_STATS (LWIP_IPV6)
336 
337 #define ICMP6_STATS (LWIP_IPV6 && LWIP_ICMP6)
338 
339 #define IP6_FRAG_STATS (LWIP_IPV6 && (LWIP_IPV6_FRAG || LWIP_IPV6_REASS))
340 
341 #define MLD6_STATS (LWIP_IPV6 && LWIP_IPV6_MLD)
342 
343 #define ND6_STATS (LWIP_IPV6)
344 
345 #define MIB2_STATS 0
346 
347 #define LWIP_CHECKSUM_CTRL_PER_NETIF 0
348 
349 #define CHECKSUM_GEN_IP 1
350 
351 #define CHECKSUM_GEN_UDP 1
352 
353 #define CHECKSUM_GEN_TCP 1
354 
355 #define CHECKSUM_GEN_ICMP 1
356 
357 #define CHECKSUM_GEN_ICMP6 1
358 
359 #define CHECKSUM_CHECK_IP 1
360 #define CHECKSUM_CHECK_UDP 1
361 
362 #define CHECKSUM_CHECK_TCP 1
363 #define CHECKSUM_CHECK_ICMP 1
364 #define CHECKSUM_CHECK_ICMP6 1
365 #define LWIP_CHECKSUM_ON_COPY 0
366 #define LWIP_IPV6 0
367 #define LWIP_IPV6_NUM_ADDRESSES 3
368 #define LWIP_IPV6_FORWARD 0
369 #define LWIP_IPV6_FRAG 0
370 #define LWIP_IPV6_REASS (LWIP_IPV6)
371 #define LWIP_IPV6_SEND_ROUTER_SOLICIT 1
372 #define LWIP_IPV6_AUTOCONFIG (LWIP_IPV6)
373 #define LWIP_IPV6_DUP_DETECT_ATTEMPTS 1
374 #define LWIP_ICMP6 (LWIP_IPV6)
375 #define LWIP_ICMP6_DATASIZE 8
376 #define LWIP_ICMP6_HL 255
377 #define LWIP_IPV6_MLD (LWIP_IPV6)
378 #define MEMP_NUM_MLD6_GROUP 4
379 #define LWIP_ND6_QUEUEING (LWIP_IPV6)
380 #define MEMP_NUM_ND6_QUEUE 20
381 #define LWIP_ND6_NUM_NEIGHBORS 10
382 #define LWIP_ND6_NUM_DESTINATIONS 10
383 #define LWIP_ND6_NUM_PREFIXES 5
384 #define LWIP_ND6_NUM_ROUTERS 3
385 #define LWIP_ND6_MAX_MULTICAST_SOLICIT 3
386 #define LWIP_ND6_MAX_UNICAST_SOLICIT 3
387 #define LWIP_ND6_MAX_ANYCAST_DELAY_TIME 1000
388 #define LWIP_ND6_MAX_NEIGHBOR_ADVERTISEMENT 3
389 #define LWIP_ND6_REACHABLE_TIME 30000
390 #define LWIP_ND6_RETRANS_TIMER 1000
391 
392 #define LWIP_ND6_DELAY_FIRST_PROBE_TIME 5000
393 
394 #define LWIP_ND6_ALLOW_RA_UPDATES 1
395 
396 #define LWIP_ND6_TCP_REACHABILITY_HINTS 1
397 
398 #define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
399 
400 #define LWIP_IPV6_DHCP6 0
401 
402 //#define LWIP_HOOK_FILENAME "path/to/my/lwip_hooks.h"
403 
404 //#define LWIP_HOOK_TCP_ISN(local_ip, local_port, remote_ip, remote_port)
405 
406 //#define LWIP_HOOK_IP4_INPUT(pbuf, input_netif)
407 
408 //#define LWIP_HOOK_IP4_ROUTE()
409 
410 //#define LWIP_HOOK_IP4_ROUTE_SRC(dest, src)
411 
412 //#define LWIP_HOOK_ETHARP_GET_GW(netif, dest)
413 
414 //#define LWIP_HOOK_IP6_INPUT(pbuf, input_netif)
415 
416 //#define LWIP_HOOK_IP6_ROUTE(src, dest)
417 
419 
420 //#define LWIP_HOOK_VLAN_CHECK(netif, eth_hdr, vlan_hdr)
421 
422 //#define LWIP_HOOK_VLAN_SET(netif, p, src, dst, eth_type)
423 
424 //#define LWIP_HOOK_MEMP_AVAILABLE(memp_t_type)
425 
426 //#define LWIP_HOOK_UNKNOWN_ETH_PROTOCOL(pbuf, netif)
427 
428 #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_ALL
429 #define LWIP_DBG_TYPES_ON LWIP_DBG_ON
430 
431 #define ETHARP_DEBUG LWIP_DBG_OFF
432 
433 #define NETIF_DEBUG LWIP_DBG_OFF
434 
435 #define PBUF_DEBUG LWIP_DBG_OFF
436 
437 #define API_LIB_DEBUG LWIP_DBG_OFF
438 
439 #define API_MSG_DEBUG LWIP_DBG_OFF
440 
441 #define SOCKETS_DEBUG LWIP_DBG_OFF
442 
443 #define ICMP_DEBUG LWIP_DBG_OFF
444 
445 #define IGMP_DEBUG LWIP_DBG_OFF
446 
447 #define INET_DEBUG LWIP_DBG_OFF
448 
449 #define IP_DEBUG LWIP_DBG_ON
450 
451 #define IP_REASS_DEBUG LWIP_DBG_OFF
452 
453 #define RAW_DEBUG LWIP_DBG_OFF
454 
455 #define MEM_DEBUG LWIP_DBG_OFF
456 
457 #define MEMP_DEBUG LWIP_DBG_OFF
458 
459 #define SYS_DEBUG LWIP_DBG_OFF
460 
461 #define TIMERS_DEBUG LWIP_DBG_OFF
462 
463 #define TCP_DEBUG LWIP_DBG_OFF
464 
465 #define TCP_INPUT_DEBUG LWIP_DBG_OFF
466 
467 #define TCP_FR_DEBUG LWIP_DBG_OFF
468 
469 #define TCP_RTO_DEBUG LWIP_DBG_OFF
470 
471 #define TCP_CWND_DEBUG LWIP_DBG_OFF
472 
473 #define TCP_WND_DEBUG LWIP_DBG_OFF
474 
475 #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF
476 
477 #define TCP_RST_DEBUG LWIP_DBG_OFF
478 
479 #define TCP_QLEN_DEBUG LWIP_DBG_OFF
480 
481 #define UDP_DEBUG LWIP_DBG_OFF
482 #define TCPIP_DEBUG LWIP_DBG_OFF
483 #define SLIP_DEBUG LWIP_DBG_OFF
484 #define DHCP_DEBUG LWIP_DBG_OFF
485 #define AUTOIP_DEBUG LWIP_DBG_OFF
486 #define DNS_DEBUG LWIP_DBG_OFF
487 #define IP6_DEBUG LWIP_DBG_OFF
488 #define LWIP_PERF 0
489 
490 //#define TCP_RCV_SCALE 0
491 //#define PBUF_POOL_SIZE 400 /* pbuf tests need ~200KByte */
492 #define LWIP_COMPAT_MUTEX 0
493 #define LWIP_COMPAT_MUTEX_ALLOWED 1
494 #define LWIP_TIMEVAL_PRIVATE 0
495 #define LWIP_CALLBACK_API 1
496 #define LWIP_PROVIDE_ERRNO 1
497 #endif