]> git.sur5r.net Git - freertos/blob - FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
ebe531ea00f8a2e5637032fca8b443f91a113565
[freertos] / FreeRTOS-Plus / Source / FreeRTOS-Plus-TCP / include / FreeRTOSIPConfigDefaults.h
1 /*\r
2  * FreeRTOS+TCP V2.0.11\r
3  * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://www.FreeRTOS.org\r
23  * http://aws.amazon.com/freertos\r
24  *\r
25  * 1 tab == 4 spaces!\r
26  */\r
27 \r
28 #ifndef FREERTOS_DEFAULT_IP_CONFIG_H\r
29 #define FREERTOS_DEFAULT_IP_CONFIG_H\r
30 \r
31 /* The error numbers defined in this file will be moved to the core FreeRTOS\r
32 code in future versions of FreeRTOS - at which time the following header file\r
33 will be removed. */\r
34 #include "FreeRTOS_errno_TCP.h"\r
35 \r
36 /* This file provides default values for configuration options that are missing\r
37 from the FreeRTOSIPConfig.h configuration header file. */\r
38 \r
39 \r
40 /* Ensure defined configuration constants are using the most up to date naming. */\r
41 #ifdef tcpconfigIP_TIME_TO_LIVE\r
42         #error now called: ipconfigTCP_TIME_TO_LIVE\r
43 #endif\r
44 \r
45 #ifdef updconfigIP_TIME_TO_LIVE\r
46         #error now called: ipconfigUDP_TIME_TO_LIVE\r
47 #endif\r
48 \r
49 #ifdef ipFILLER_SIZE\r
50         #error now called: ipconfigPACKET_FILLER_SIZE\r
51 #endif\r
52 \r
53 #ifdef dnsMAX_REQUEST_ATTEMPTS\r
54         #error now called: ipconfigDNS_REQUEST_ATTEMPTS\r
55 #endif\r
56 \r
57 #ifdef ipconfigUDP_TASK_PRIORITY\r
58         #error now called: ipconfigIP_TASK_PRIORITY\r
59 #endif\r
60 \r
61 #ifdef ipconfigUDP_TASK_STACK_SIZE_WORDS\r
62         #error now called: ipconfigIP_TASK_STACK_SIZE_WORDS\r
63 #endif\r
64 \r
65 #ifdef ipconfigDRIVER_INCLUDED_RX_IP_FILTERING\r
66         #error now called: ipconfigETHERNET_DRIVER_FILTERS_PACKETS\r
67 #endif\r
68 \r
69 #ifdef ipconfigMAX_SEND_BLOCK_TIME_TICKS\r
70         #error now called: ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS\r
71 #endif\r
72 \r
73 #ifdef ipconfigUSE_RECEIVE_CONNECT_CALLBACKS\r
74         #error now called: ipconfigUSE_CALLBACKS\r
75 #endif\r
76 \r
77 #ifdef ipconfigNUM_NETWORK_BUFFERS\r
78         #error now called: ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS\r
79 #endif\r
80 \r
81 #ifdef ipconfigTCP_HANG_PROT\r
82         #error now called: ipconfigTCP_HANG_PROTECTION\r
83 #endif\r
84 \r
85 #ifdef ipconfigTCP_HANG_PROT_TIME\r
86         #error now called: ipconfigTCP_HANG_PROTECTION_TIME\r
87 #endif\r
88 \r
89 #ifdef FreeRTOS_lprintf\r
90         #error now called: FreeRTOS_debug_printf\r
91 #endif\r
92 \r
93 #if ( ipconfigEVENT_QUEUE_LENGTH < ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 ) )\r
94         #error The ipconfigEVENT_QUEUE_LENGTH parameter must be at least ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5\r
95 #endif\r
96 \r
97 #if ( ipconfigNETWORK_MTU < 46 )\r
98         #error ipconfigNETWORK_MTU must be at least 46.\r
99 #endif\r
100 \r
101 #ifdef  ipconfigBUFFER_ALLOC_FIXED_SIZE\r
102         #error ipconfigBUFFER_ALLOC_FIXED_SIZE was dropped and replaced by a const value, declared in BufferAllocation[12].c\r
103 #endif\r
104 \r
105 #ifdef  ipconfigNIC_SEND_PASSES_DMA\r
106         #error now called: ipconfigZERO_COPY_TX_DRIVER\r
107 #endif\r
108 \r
109 #ifdef  HAS_TX_CRC_OFFLOADING\r
110         /* _HT_ As these macro names have changed, throw an error\r
111         if they're still defined. */\r
112         #error now called: ipconfigHAS_TX_CRC_OFFLOADING\r
113 #endif\r
114 \r
115 #ifdef  HAS_RX_CRC_OFFLOADING\r
116         #error now called: ipconfigHAS_RX_CRC_OFFLOADING\r
117 #endif\r
118 \r
119 #ifdef ipconfigTCP_RX_BUF_LEN\r
120         #error ipconfigTCP_RX_BUF_LEN is now called ipconfigTCP_RX_BUFFER_LENGTH\r
121 #endif\r
122 \r
123 #ifdef ipconfigTCP_TX_BUF_LEN\r
124         #error ipconfigTCP_TX_BUF_LEN is now called ipconfigTCP_TX_BUFFER_LENGTH\r
125 #endif\r
126 \r
127 #ifdef ipconfigDHCP_USES_USER_HOOK\r
128         #error ipconfigDHCP_USES_USER_HOOK and its associated callback have been superceeded - see http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html#ipconfigUSE_DHCP_HOOK\r
129 #endif\r
130 \r
131 #ifndef ipconfigUSE_TCP\r
132         #define ipconfigUSE_TCP                                         ( 1 )\r
133 #endif\r
134 \r
135 #if     ipconfigUSE_TCP\r
136 \r
137         /* Include support for TCP scaling windows */\r
138         #ifndef ipconfigUSE_TCP_WIN\r
139                 #define ipconfigUSE_TCP_WIN                             ( 1 )\r
140         #endif\r
141 \r
142         #ifndef ipconfigTCP_WIN_SEG_COUNT\r
143                 #define ipconfigTCP_WIN_SEG_COUNT               ( 256 )\r
144         #endif\r
145 \r
146         #ifndef ipconfigIGNORE_UNKNOWN_PACKETS\r
147                 /* When non-zero, TCP will not send RST packets in reply to\r
148                 TCP packets which are unknown, or out-of-order. */\r
149                 #define ipconfigIGNORE_UNKNOWN_PACKETS  ( 0 )\r
150         #endif\r
151 #endif\r
152 \r
153 /*\r
154  * For debuging/logging: check if the port number is used for telnet\r
155  * Some events will not be logged for telnet connections\r
156  * because it would produce logging about the transmission of the logging...\r
157  * This macro will only be used if FreeRTOS_debug_printf() is defined for logging\r
158  */\r
159 #ifndef ipconfigTCP_MAY_LOG_PORT\r
160         #define ipconfigTCP_MAY_LOG_PORT(xPort)                 ( ( xPort ) != 23u )\r
161 #endif\r
162 \r
163 \r
164 #ifndef ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME\r
165         #define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME portMAX_DELAY\r
166 #endif\r
167 \r
168 #ifndef ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME\r
169         #define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME    portMAX_DELAY\r
170 #endif\r
171 \r
172 /*\r
173  * FreeRTOS debug logging routine (proposal)\r
174  * The macro will be called in the printf() style. Users can define\r
175  * their own logging routine as:\r
176  *\r
177  *     #define FreeRTOS_debug_printf( MSG )                     my_printf MSG\r
178  *\r
179  * The FreeRTOS_debug_printf() must be thread-safe but does not have to be\r
180  * interrupt-safe.\r
181  */\r
182 #ifdef ipconfigHAS_DEBUG_PRINTF\r
183         #if( ipconfigHAS_DEBUG_PRINTF == 0 )\r
184                 #ifdef FreeRTOS_debug_printf\r
185                         #error Do not define FreeRTOS_debug_print if ipconfigHAS_DEBUG_PRINTF is set to 0\r
186                 #endif /* ifdef FreeRTOS_debug_printf */\r
187         #endif /* ( ipconfigHAS_DEBUG_PRINTF == 0 ) */\r
188 #endif /* ifdef ipconfigHAS_DEBUG_PRINTF */\r
189 \r
190 #ifndef FreeRTOS_debug_printf\r
191     #define FreeRTOS_debug_printf( MSG )                do{} while(0)\r
192         #define ipconfigHAS_DEBUG_PRINTF                        0\r
193 #endif\r
194 \r
195 /*\r
196  * FreeRTOS general logging routine (proposal)\r
197  * Used in some utility functions such as FreeRTOS_netstat() and FreeRTOS_PrintARPCache()\r
198  *\r
199  *     #define FreeRTOS_printf( MSG )                   my_printf MSG\r
200  *\r
201  * The FreeRTOS_printf() must be thread-safe but does not have to be interrupt-safe\r
202  */\r
203 #ifdef ipconfigHAS_PRINTF\r
204         #if( ipconfigHAS_PRINTF == 0 )\r
205                 #ifdef FreeRTOS_printf\r
206                         #error Do not define FreeRTOS_print if ipconfigHAS_PRINTF is set to 0\r
207                 #endif /* ifdef FreeRTOS_debug_printf */\r
208         #endif /* ( ipconfigHAS_PRINTF == 0 ) */\r
209 #endif /* ifdef ipconfigHAS_PRINTF */\r
210 \r
211 #ifndef FreeRTOS_printf\r
212     #define FreeRTOS_printf( MSG )                              do{} while(0)\r
213         #define ipconfigHAS_PRINTF                                      0\r
214 #endif\r
215 \r
216 /*\r
217  * In cases where a lot of logging is produced, FreeRTOS_flush_logging( )\r
218  * will be called to give the logging module a chance to flush the data\r
219  * An example of this is the netstat command, which produces many lines of logging\r
220  */\r
221 #ifndef FreeRTOS_flush_logging\r
222     #define FreeRTOS_flush_logging( )                   do{} while(0)\r
223 #endif\r
224 \r
225 /* Malloc functions. Within most applications of FreeRTOS, the couple\r
226  * pvPortMalloc()/vPortFree() will be used.\r
227  * If there is also SDRAM, the user may decide to use a different memory\r
228  * allocator:\r
229  * MallocLarge is used to allocate large TCP buffers (for Rx/Tx)\r
230  * MallocSocket is used to allocate the space for the sockets\r
231  */\r
232 #ifndef pvPortMallocLarge\r
233         #define pvPortMallocLarge( x )                          pvPortMalloc( x )\r
234 #endif\r
235 \r
236 #ifndef vPortFreeLarge\r
237         #define vPortFreeLarge(ptr)                                     vPortFree(ptr)\r
238 #endif\r
239 \r
240 #ifndef pvPortMallocSocket\r
241         #define pvPortMallocSocket( x )                         pvPortMalloc( x )\r
242 #endif\r
243 \r
244 #ifndef vPortFreeSocket\r
245         #define vPortFreeSocket(ptr)                            vPortFree(ptr)\r
246 #endif\r
247 \r
248 /*\r
249  * At several places within the library, random numbers are needed:\r
250  * - DHCP:    For creating a DHCP transaction number\r
251  * - TCP:     Set the Initial Sequence Number: this is the value of the first outgoing\r
252  *            sequence number being used when connecting to a peer.\r
253  *            Having a well randomised ISN is important to avoid spoofing\r
254  * - UDP/TCP: for setting the first port number to be used, in case a socket\r
255  *            uses a 'random' or anonymous port number\r
256  */\r
257 #ifndef ipconfigRAND32\r
258         #define ipconfigRAND32() rand()\r
259 #endif\r
260 /* --------------------------------------------------------\r
261  * End of: HT Added some macro defaults for the PLUS-UDP project\r
262  * -------------------------------------------------------- */\r
263 \r
264 #ifndef ipconfigUSE_NETWORK_EVENT_HOOK\r
265         #define ipconfigUSE_NETWORK_EVENT_HOOK 0\r
266 #endif\r
267 \r
268 #ifndef ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS\r
269         #define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( pdMS_TO_TICKS( 20 ) )\r
270 #endif\r
271 \r
272 #ifndef ipconfigARP_CACHE_ENTRIES\r
273         #define ipconfigARP_CACHE_ENTRIES               10\r
274 #endif\r
275 \r
276 #ifndef ipconfigMAX_ARP_RETRANSMISSIONS\r
277         #define ipconfigMAX_ARP_RETRANSMISSIONS ( 5u )\r
278 #endif\r
279 \r
280 #ifndef ipconfigMAX_ARP_AGE\r
281         #define ipconfigMAX_ARP_AGE                     150u\r
282 #endif\r
283 \r
284 #ifndef ipconfigUSE_ARP_REVERSED_LOOKUP\r
285         #define ipconfigUSE_ARP_REVERSED_LOOKUP         0\r
286 #endif\r
287 \r
288 #ifndef ipconfigUSE_ARP_REMOVE_ENTRY\r
289         #define ipconfigUSE_ARP_REMOVE_ENTRY            0\r
290 #endif\r
291 \r
292 #ifndef ipconfigINCLUDE_FULL_INET_ADDR\r
293         #define ipconfigINCLUDE_FULL_INET_ADDR  1\r
294 #endif\r
295 \r
296 #ifndef ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS\r
297         #define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS          45\r
298 #endif\r
299 \r
300 #ifndef ipconfigEVENT_QUEUE_LENGTH\r
301         #define ipconfigEVENT_QUEUE_LENGTH              ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )\r
302 #endif\r
303 \r
304 #ifndef ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND\r
305         #define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1\r
306 #endif\r
307 \r
308 #ifndef ipconfigUDP_TIME_TO_LIVE\r
309         #define ipconfigUDP_TIME_TO_LIVE                128\r
310 #endif\r
311 \r
312 #ifndef ipconfigTCP_TIME_TO_LIVE\r
313         #define ipconfigTCP_TIME_TO_LIVE                128\r
314 #endif\r
315 \r
316 #ifndef ipconfigUDP_MAX_RX_PACKETS\r
317         /* Make postive to define the maximum number of packets which will be buffered\r
318          * for each UDP socket.\r
319          * Can be overridden with the socket option FREERTOS_SO_UDP_MAX_RX_PACKETS\r
320          */\r
321         #define ipconfigUDP_MAX_RX_PACKETS              0u\r
322 #endif\r
323 \r
324 #ifndef ipconfigUSE_DHCP\r
325         #define ipconfigUSE_DHCP                                1\r
326 #endif\r
327 \r
328 #ifndef ipconfigUSE_DHCP_HOOK\r
329         #define ipconfigUSE_DHCP_HOOK           0\r
330 #endif\r
331 \r
332 #ifndef ipconfigDHCP_FALL_BACK_AUTO_IP\r
333         /*\r
334          * Only applicable when DHCP is in use:\r
335          * If no DHCP server responds, use "Auto-IP" : the\r
336          * device will allocate a random LinkLayer IP address.\r
337          */\r
338         #define ipconfigDHCP_FALL_BACK_AUTO_IP          ( 0 )\r
339 #endif\r
340 \r
341 #if( ipconfigDHCP_FALL_BACK_AUTO_IP != 0 )\r
342         #define ipconfigARP_USE_CLASH_DETECTION         1\r
343 #endif\r
344 \r
345 #ifndef ipconfigARP_USE_CLASH_DETECTION\r
346         #define ipconfigARP_USE_CLASH_DETECTION         0\r
347 #endif\r
348 \r
349 #ifndef ipconfigNETWORK_MTU\r
350         #define ipconfigNETWORK_MTU             1500\r
351 #endif\r
352 \r
353 #ifndef ipconfigTCP_MSS\r
354         #define ipconfigTCP_MSS         ( ipconfigNETWORK_MTU - ipSIZE_OF_IPv4_HEADER - ipSIZE_OF_TCP_HEADER )\r
355 #endif\r
356 \r
357 /* Each TCP socket has circular stream buffers for Rx and Tx, which\r
358  * have a fixed maximum size.\r
359  * The defaults for these size are defined here, although\r
360  * they can be overridden at runtime by using the setsockopt() call */\r
361 #ifndef ipconfigTCP_RX_BUFFER_LENGTH\r
362         #define ipconfigTCP_RX_BUFFER_LENGTH                    ( 4u * ipconfigTCP_MSS )        /* defaults to 5840 bytes */\r
363 #endif\r
364 \r
365 /* Define the size of Tx stream buffer for TCP sockets */\r
366 #ifndef ipconfigTCP_TX_BUFFER_LENGTH\r
367 #       define ipconfigTCP_TX_BUFFER_LENGTH                     ( 4u * ipconfigTCP_MSS )        /* defaults to 5840 bytes */\r
368 #endif\r
369 \r
370 #ifndef ipconfigMAXIMUM_DISCOVER_TX_PERIOD\r
371         #ifdef _WINDOWS_\r
372                 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD              ( pdMS_TO_TICKS( 999 ) )\r
373         #else\r
374                 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD              ( pdMS_TO_TICKS( 30000 ) )\r
375         #endif /* _WINDOWS_ */\r
376 #endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */\r
377 \r
378 #ifndef ipconfigUSE_DNS\r
379         #define ipconfigUSE_DNS                                         1\r
380 #endif\r
381 \r
382 #ifndef ipconfigDNS_REQUEST_ATTEMPTS\r
383         #define ipconfigDNS_REQUEST_ATTEMPTS            5\r
384 #endif\r
385 \r
386 #ifndef ipconfigUSE_DNS_CACHE\r
387         #define ipconfigUSE_DNS_CACHE                           0\r
388 #endif\r
389 \r
390 #if( ipconfigUSE_DNS_CACHE != 0 )\r
391         #ifndef ipconfigDNS_CACHE_NAME_LENGTH\r
392                 /* Per https://tools.ietf.org/html/rfc1035, 253 is the maximum string length\r
393                 of a DNS name. The following default accounts for a null terminator. */\r
394                 #define ipconfigDNS_CACHE_NAME_LENGTH   254\r
395         #endif\r
396 \r
397         #ifndef ipconfigDNS_CACHE_ENTRIES\r
398                 #define ipconfigDNS_CACHE_ENTRIES                       1\r
399         #endif\r
400 #endif /* ipconfigUSE_DNS_CACHE != 0 */\r
401 \r
402 #ifndef ipconfigCHECK_IP_QUEUE_SPACE\r
403         #define ipconfigCHECK_IP_QUEUE_SPACE                    0\r
404 #endif\r
405 \r
406 #ifndef ipconfigUSE_LLMNR\r
407         /* Include support for LLMNR: Link-local Multicast Name Resolution (non-Microsoft) */\r
408         #define ipconfigUSE_LLMNR                                       ( 0 )\r
409 #endif\r
410 \r
411 #if( !defined( ipconfigUSE_DNS ) )\r
412         #if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )\r
413                 /* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */\r
414                 #error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined\r
415         #endif\r
416 #endif\r
417 \r
418 #ifndef ipconfigREPLY_TO_INCOMING_PINGS\r
419         #define ipconfigREPLY_TO_INCOMING_PINGS         1\r
420 #endif\r
421 \r
422 #ifndef ipconfigSUPPORT_OUTGOING_PINGS\r
423         #define ipconfigSUPPORT_OUTGOING_PINGS          0\r
424 #endif\r
425 \r
426 #ifndef ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES\r
427         #define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1\r
428 #endif\r
429 \r
430 #ifndef ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES\r
431         #define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES     1\r
432 #endif\r
433 \r
434 #ifndef configINCLUDE_TRACE_RELATED_CLI_COMMANDS\r
435         #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS 0\r
436 #else\r
437         #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS configINCLUDE_TRACE_RELATED_CLI_COMMANDS\r
438 #endif\r
439 \r
440 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM\r
441         #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM  ( 0 )\r
442 #endif\r
443 \r
444 #ifndef ipconfigETHERNET_DRIVER_FILTERS_PACKETS\r
445         #define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 0 )\r
446 #endif\r
447 \r
448 #ifndef ipconfigWATCHDOG_TIMER\r
449         /* This macro will be called in every loop the IP-task makes.  It may be\r
450         replaced by user-code that triggers a watchdog */\r
451         #define ipconfigWATCHDOG_TIMER()\r
452 #endif\r
453 \r
454 #ifndef ipconfigUSE_CALLBACKS\r
455         #define ipconfigUSE_CALLBACKS                   ( 0 )\r
456 #endif\r
457 \r
458 #if( ipconfigUSE_CALLBACKS != 0 )\r
459         #ifndef ipconfigIS_VALID_PROG_ADDRESS\r
460                 /* Replace this macro with a test returning non-zero if the memory pointer to by x\r
461                  * is valid memory which can contain executable code\r
462                  * In fact this is an extra safety measure: if a handler points to invalid memory,\r
463                  * it will not be called\r
464                  */\r
465                 #define ipconfigIS_VALID_PROG_ADDRESS(x)                ( ( x ) != NULL )\r
466         #endif\r
467 #endif\r
468 \r
469 #ifndef ipconfigHAS_INLINE_FUNCTIONS\r
470         #define ipconfigHAS_INLINE_FUNCTIONS    ( 1 )\r
471 #endif\r
472 \r
473 #ifndef portINLINE\r
474         #define portINLINE inline\r
475 #endif\r
476 \r
477 #ifndef ipconfigZERO_COPY_TX_DRIVER\r
478         /* When non-zero, the buffers passed to the SEND routine may be passed\r
479         to DMA. As soon as sending is ready, the buffers must be released by\r
480         calling vReleaseNetworkBufferAndDescriptor(), */\r
481         #define ipconfigZERO_COPY_TX_DRIVER             ( 0 )\r
482 #endif\r
483 \r
484 #ifndef ipconfigZERO_COPY_RX_DRIVER\r
485         /* This define doesn't mean much to the driver, except that it makes\r
486         sure that pxPacketBuffer_to_NetworkBuffer() will be included. */\r
487         #define ipconfigZERO_COPY_RX_DRIVER             ( 0 )\r
488 #endif\r
489 \r
490 #ifndef ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM\r
491         #define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0\r
492 #endif\r
493 \r
494 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM\r
495         #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 0\r
496 #endif\r
497 \r
498 #ifndef ipconfigDHCP_REGISTER_HOSTNAME\r
499         #define ipconfigDHCP_REGISTER_HOSTNAME 0\r
500 #endif\r
501 \r
502 #ifndef ipconfigSOCKET_HAS_USER_SEMAPHORE\r
503         #define ipconfigSOCKET_HAS_USER_SEMAPHORE 0\r
504 #endif\r
505 \r
506 #ifndef ipconfigSOCKET_HAS_USER_WAKE_CALLBACK\r
507         #define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK 0\r
508 #endif\r
509 \r
510 #ifndef ipconfigSUPPORT_SELECT_FUNCTION\r
511         #define ipconfigSUPPORT_SELECT_FUNCTION 0\r
512 #endif\r
513 \r
514 #ifndef ipconfigTCP_KEEP_ALIVE\r
515         #define ipconfigTCP_KEEP_ALIVE 0\r
516 #endif\r
517 \r
518 #ifndef ipconfigDNS_USE_CALLBACKS\r
519         #define ipconfigDNS_USE_CALLBACKS 0\r
520 #endif\r
521 \r
522 #ifndef ipconfigSUPPORT_SIGNALS\r
523         #define ipconfigSUPPORT_SIGNALS                         0\r
524 #endif\r
525 \r
526 #ifndef ipconfigUSE_NBNS\r
527         #define ipconfigUSE_NBNS 0\r
528 #endif\r
529 \r
530 /* As an attack surface reduction for ports that listen for inbound \r
531 connections, hang protection can help reduce the impact of SYN floods. */\r
532 #ifndef ipconfigTCP_HANG_PROTECTION\r
533         #define ipconfigTCP_HANG_PROTECTION  1\r
534 #endif\r
535 \r
536 /* Non-activity timeout is expressed in seconds. */\r
537 #ifndef ipconfigTCP_HANG_PROTECTION_TIME\r
538         #define ipconfigTCP_HANG_PROTECTION_TIME 30\r
539 #endif\r
540 \r
541 #ifndef ipconfigTCP_IP_SANITY\r
542         #define ipconfigTCP_IP_SANITY 0\r
543 #endif\r
544 \r
545 #ifndef ipconfigARP_STORES_REMOTE_ADDRESSES\r
546         #define ipconfigARP_STORES_REMOTE_ADDRESSES 0\r
547 #endif\r
548 \r
549 #ifndef ipconfigBUFFER_PADDING\r
550         /* Expert option: define a value for 'ipBUFFER_PADDING'.\r
551         When 'ipconfigBUFFER_PADDING' equals 0,\r
552         'ipBUFFER_PADDING' will get a default value of 8 + 2 bytes. */\r
553         #define ipconfigBUFFER_PADDING 0\r
554 #endif\r
555 \r
556 #ifndef ipconfigPACKET_FILLER_SIZE\r
557         #define ipconfigPACKET_FILLER_SIZE 2\r
558 #endif\r
559 \r
560 #endif /* FREERTOS_DEFAULT_IP_CONFIG_H */\r