]> begriffs open source - freertos/blob - FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
Added +TCP code to main repo.
[freertos] / FreeRTOS-Plus / Source / FreeRTOS-Plus-TCP / include / FreeRTOSIPConfigDefaults.h
1 /*\r
2  * FreeRTOS+TCP Labs Build 160919 (C) 2016 Real Time Engineers ltd.\r
3  * Authors include Hein Tibosch and Richard Barry\r
4  *\r
5  *******************************************************************************\r
6  ***** NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ***\r
7  ***                                                                         ***\r
8  ***                                                                         ***\r
9  ***   FREERTOS+TCP IS STILL IN THE LAB (mainly because the FTP and HTTP     ***\r
10  ***   demos have a dependency on FreeRTOS+FAT, which is only in the Labs    ***\r
11  ***   download):                                                            ***\r
12  ***                                                                         ***\r
13  ***   FreeRTOS+TCP is functional and has been used in commercial products   ***\r
14  ***   for some time.  Be aware however that we are still refining its       ***\r
15  ***   design, the source code does not yet quite conform to the strict      ***\r
16  ***   coding and style standards mandated by Real Time Engineers ltd., and  ***\r
17  ***   the documentation and testing is not necessarily complete.            ***\r
18  ***                                                                         ***\r
19  ***   PLEASE REPORT EXPERIENCES USING THE SUPPORT RESOURCES FOUND ON THE    ***\r
20  ***   URL: http://www.FreeRTOS.org/contact  Active early adopters may, at   ***\r
21  ***   the sole discretion of Real Time Engineers Ltd., be offered versions  ***\r
22  ***   under a license other than that described below.                      ***\r
23  ***                                                                         ***\r
24  ***                                                                         ***\r
25  ***** NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ***\r
26  *******************************************************************************\r
27  *\r
28  * FreeRTOS+TCP can be used under two different free open source licenses.  The\r
29  * license that applies is dependent on the processor on which FreeRTOS+TCP is\r
30  * executed, as follows:\r
31  *\r
32  * If FreeRTOS+TCP is executed on one of the processors listed under the Special\r
33  * License Arrangements heading of the FreeRTOS+TCP license information web\r
34  * page, then it can be used under the terms of the FreeRTOS Open Source\r
35  * License.  If FreeRTOS+TCP is used on any other processor, then it can be used\r
36  * under the terms of the GNU General Public License V2.  Links to the relevant\r
37  * licenses follow:\r
38  *\r
39  * The FreeRTOS+TCP License Information Page: http://www.FreeRTOS.org/tcp_license\r
40  * The FreeRTOS Open Source License: http://www.FreeRTOS.org/license\r
41  * The GNU General Public License Version 2: http://www.FreeRTOS.org/gpl-2.0.txt\r
42  *\r
43  * FreeRTOS+TCP is distributed in the hope that it will be useful.  You cannot\r
44  * use FreeRTOS+TCP unless you agree that you use the software 'as is'.\r
45  * FreeRTOS+TCP is provided WITHOUT ANY WARRANTY; without even the implied\r
46  * warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR\r
47  * PURPOSE. Real Time Engineers Ltd. disclaims all conditions and terms, be they\r
48  * implied, expressed, or statutory.\r
49  *\r
50  * 1 tab == 4 spaces!\r
51  *\r
52  * http://www.FreeRTOS.org\r
53  * http://www.FreeRTOS.org/plus\r
54  * http://www.FreeRTOS.org/labs\r
55  *\r
56  */\r
57 \r
58 #ifndef FREERTOS_DEFAULT_IP_CONFIG_H\r
59 #define FREERTOS_DEFAULT_IP_CONFIG_H\r
60 \r
61 /* The error numbers defined in this file will be moved to the core FreeRTOS\r
62 code in future versions of FreeRTOS - at which time the following header file\r
63 will be removed. */\r
64 #include "FreeRTOS_errno_TCP.h"\r
65 \r
66 /* This file provides default values for configuration options that are missing\r
67 from the FreeRTOSIPConfig.h configuration header file. */\r
68 \r
69 \r
70 /* Ensure defined configuration constants are using the most up to date naming. */\r
71 #ifdef tcpconfigIP_TIME_TO_LIVE\r
72         #error now called: ipconfigTCP_TIME_TO_LIVE\r
73 #endif\r
74 \r
75 #ifdef updconfigIP_TIME_TO_LIVE\r
76         #error now called: ipconfigUDP_TIME_TO_LIVE\r
77 #endif\r
78 \r
79 #ifdef ipFILLER_SIZE\r
80         #error now called: ipconfigPACKET_FILLER_SIZE\r
81 #endif\r
82 \r
83 #ifdef dnsMAX_REQUEST_ATTEMPTS\r
84         #error now called: ipconfigDNS_REQUEST_ATTEMPTS\r
85 #endif\r
86 \r
87 #ifdef ipconfigUDP_TASK_PRIORITY\r
88         #error now called: ipconfigIP_TASK_PRIORITY\r
89 #endif\r
90 \r
91 #ifdef ipconfigUDP_TASK_STACK_SIZE_WORDS\r
92         #error now called: ipconfigIP_TASK_STACK_SIZE_WORDS\r
93 #endif\r
94 \r
95 #ifdef ipconfigDRIVER_INCLUDED_RX_IP_FILTERING\r
96         #error now called: ipconfigETHERNET_DRIVER_FILTERS_PACKETS\r
97 #endif\r
98 \r
99 #ifdef ipconfigMAX_SEND_BLOCK_TIME_TICKS\r
100         #error now called: ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS\r
101 #endif\r
102 \r
103 #ifdef ipconfigUSE_RECEIVE_CONNECT_CALLBACKS\r
104         #error now called: ipconfigUSE_CALLBACKS\r
105 #endif\r
106 \r
107 #ifdef ipconfigNUM_NETWORK_BUFFERS\r
108         #error now called: ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS\r
109 #endif\r
110 \r
111 #ifdef ipconfigTCP_HANG_PROT\r
112         #error now called: ipconfigTCP_HANG_PROTECTION\r
113 #endif\r
114 \r
115 #ifdef ipconfigTCP_HANG_PROT_TIME\r
116         #error now called: ipconfigTCP_HANG_PROTECTION_TIME\r
117 #endif\r
118 \r
119 #ifdef FreeRTOS_lprintf\r
120         #error now called: FreeRTOS_debug_printf\r
121 #endif\r
122 \r
123 #if ( ipconfigEVENT_QUEUE_LENGTH < ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 ) )\r
124         #error The ipconfigEVENT_QUEUE_LENGTH parameter must be at least ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5\r
125 #endif\r
126 \r
127 #if ( ipconfigNETWORK_MTU < 46 )\r
128         #error ipconfigNETWORK_MTU must be at least 46.\r
129 #endif\r
130 \r
131 #ifdef  ipconfigBUFFER_ALLOC_FIXED_SIZE\r
132         #error ipconfigBUFFER_ALLOC_FIXED_SIZE was dropped and replaced by a const value, declared in BufferAllocation[12].c\r
133 #endif\r
134 \r
135 #ifdef  ipconfigNIC_SEND_PASSES_DMA\r
136         #error now called: ipconfigZERO_COPY_TX_DRIVER\r
137 #endif\r
138 \r
139 #ifdef  HAS_TX_CRC_OFFLOADING\r
140         /* _HT_ As these macro names have changed, throw an error\r
141         if they're still defined. */\r
142         #error now called: ipconfigHAS_TX_CRC_OFFLOADING\r
143 #endif\r
144 \r
145 #ifdef  HAS_RX_CRC_OFFLOADING\r
146         #error now called: ipconfigHAS_RX_CRC_OFFLOADING\r
147 #endif\r
148 \r
149 #ifdef ipconfigTCP_RX_BUF_LEN\r
150         #error ipconfigTCP_RX_BUF_LEN is now called ipconfigTCP_RX_BUFFER_LENGTH\r
151 #endif\r
152 \r
153 #ifdef ipconfigTCP_TX_BUF_LEN\r
154         #error ipconfigTCP_TX_BUF_LEN is now called ipconfigTCP_TX_BUFFER_LENGTH\r
155 #endif\r
156 \r
157 #ifdef ipconfigDHCP_USES_USER_HOOK\r
158         #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
159 #endif\r
160 \r
161 #ifndef ipconfigUSE_TCP\r
162         #define ipconfigUSE_TCP                                         ( 1 )\r
163 #endif\r
164 \r
165 #if     ipconfigUSE_TCP\r
166 \r
167         /* Include support for TCP scaling windows */\r
168         #ifndef ipconfigUSE_TCP_WIN\r
169                 #define ipconfigUSE_TCP_WIN                             ( 1 )\r
170         #endif\r
171 \r
172         #ifndef ipconfigTCP_WIN_SEG_COUNT\r
173                 #define ipconfigTCP_WIN_SEG_COUNT               ( 256 )\r
174         #endif\r
175 \r
176         #ifndef ipconfigIGNORE_UNKNOWN_PACKETS\r
177                 /* When non-zero, TCP will not send RST packets in reply to\r
178                 TCP packets which are unknown, or out-of-order. */\r
179                 #define ipconfigIGNORE_UNKNOWN_PACKETS  ( 0 )\r
180         #endif\r
181 #endif\r
182 \r
183 /*\r
184  * For debuging/logging: check if the port number is used for telnet\r
185  * Some events will not be logged for telnet connections\r
186  * because it would produce logging about the transmission of the logging...\r
187  * This macro will only be used if FreeRTOS_debug_printf() is defined for logging\r
188  */\r
189 #ifndef ipconfigTCP_MAY_LOG_PORT\r
190         #define ipconfigTCP_MAY_LOG_PORT(xPort)                 ( ( xPort ) != 23u )\r
191 #endif\r
192 \r
193 \r
194 #ifndef ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME\r
195         #define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME portMAX_DELAY\r
196 #endif\r
197 \r
198 #ifndef ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME\r
199         #define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME    portMAX_DELAY\r
200 #endif\r
201 \r
202 /*\r
203  * FreeRTOS debug logging routine (proposal)\r
204  * The macro will be called in the printf() style. Users can define\r
205  * their own logging routine as:\r
206  *\r
207  *     #define FreeRTOS_debug_printf( MSG )                     my_printf MSG\r
208  *\r
209  * The FreeRTOS_debug_printf() must be thread-safe but does not have to be\r
210  * interrupt-safe.\r
211  */\r
212 #ifdef ipconfigHAS_DEBUG_PRINTF\r
213         #if( ipconfigHAS_DEBUG_PRINTF == 0 )\r
214                 #ifdef FreeRTOS_debug_printf\r
215                         #error Do not define FreeRTOS_debug_print if ipconfigHAS_DEBUG_PRINTF is set to 0\r
216                 #endif /* ifdef FreeRTOS_debug_printf */\r
217         #endif /* ( ipconfigHAS_DEBUG_PRINTF == 0 ) */\r
218 #endif /* ifdef ipconfigHAS_DEBUG_PRINTF */\r
219 \r
220 #ifndef FreeRTOS_debug_printf\r
221     #define FreeRTOS_debug_printf( MSG )                do{} while(0)\r
222         #define ipconfigHAS_DEBUG_PRINTF                        0\r
223 #endif\r
224 \r
225 /*\r
226  * FreeRTOS general logging routine (proposal)\r
227  * Used in some utility functions such as FreeRTOS_netstat() and FreeRTOS_PrintARPCache()\r
228  *\r
229  *     #define FreeRTOS_printf( MSG )                   my_printf MSG\r
230  *\r
231  * The FreeRTOS_printf() must be thread-safe but does not have to be interrupt-safe\r
232  */\r
233 #ifdef ipconfigHAS_PRINTF\r
234         #if( ipconfigHAS_PRINTF == 0 )\r
235                 #ifdef FreeRTOS_printf\r
236                         #error Do not define FreeRTOS_print if ipconfigHAS_PRINTF is set to 0\r
237                 #endif /* ifdef FreeRTOS_debug_printf */\r
238         #endif /* ( ipconfigHAS_PRINTF == 0 ) */\r
239 #endif /* ifdef ipconfigHAS_PRINTF */\r
240 \r
241 #ifndef FreeRTOS_printf\r
242     #define FreeRTOS_printf( MSG )                              do{} while(0)\r
243         #define ipconfigHAS_PRINTF                                      0\r
244 #endif\r
245 \r
246 /*\r
247  * In cases where a lot of logging is produced, FreeRTOS_flush_logging( )\r
248  * will be called to give the logging module a chance to flush the data\r
249  * An example of this is the netstat command, which produces many lines of logging\r
250  */\r
251 #ifndef FreeRTOS_flush_logging\r
252     #define FreeRTOS_flush_logging( )                   do{} while(0)\r
253 #endif\r
254 \r
255 /* Malloc functions. Within most applications of FreeRTOS, the couple\r
256  * pvPortMalloc()/vPortFree() will be used.\r
257  * If there is also SDRAM, the user may decide to use a different memory\r
258  * allocator:\r
259  * MallocLarge is used to allocate large TCP buffers (for Rx/Tx)\r
260  * MallocSocket is used to allocate the space for the sockets\r
261  */\r
262 #ifndef pvPortMallocLarge\r
263         #define pvPortMallocLarge( x )                          pvPortMalloc( x )\r
264 #endif\r
265 \r
266 #ifndef vPortFreeLarge\r
267         #define vPortFreeLarge(ptr)                                     vPortFree(ptr)\r
268 #endif\r
269 \r
270 #ifndef pvPortMallocSocket\r
271         #define pvPortMallocSocket( x )                         pvPortMalloc( x )\r
272 #endif\r
273 \r
274 #ifndef vPortFreeSocket\r
275         #define vPortFreeSocket(ptr)                            vPortFree(ptr)\r
276 #endif\r
277 \r
278 /*\r
279  * At several places within the library, random numbers are needed:\r
280  * - DHCP:    For creating a DHCP transaction number\r
281  * - TCP:     Set the Initial Sequence Number: this is the value of the first outgoing\r
282  *            sequence number being used when connecting to a peer.\r
283  *            Having a well randomised ISN is important to avoid spoofing\r
284  * - UDP/TCP: for setting the first port number to be used, in case a socket\r
285  *            uses a 'random' or anonymous port number\r
286  */\r
287 #ifndef ipconfigRAND32\r
288         #define ipconfigRAND32() rand()\r
289 #endif\r
290 /* --------------------------------------------------------\r
291  * End of: HT Added some macro defaults for the PLUS-UDP project\r
292  * -------------------------------------------------------- */\r
293 \r
294 #ifndef ipconfigUSE_NETWORK_EVENT_HOOK\r
295         #define ipconfigUSE_NETWORK_EVENT_HOOK 0\r
296 #endif\r
297 \r
298 #ifndef ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS\r
299         #define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( pdMS_TO_TICKS( 20 ) )\r
300 #endif\r
301 \r
302 #ifndef ipconfigARP_CACHE_ENTRIES\r
303         #define ipconfigARP_CACHE_ENTRIES               10\r
304 #endif\r
305 \r
306 #ifndef ipconfigMAX_ARP_RETRANSMISSIONS\r
307         #define ipconfigMAX_ARP_RETRANSMISSIONS ( 5u )\r
308 #endif\r
309 \r
310 #ifndef ipconfigMAX_ARP_AGE\r
311         #define ipconfigMAX_ARP_AGE                     150u\r
312 #endif\r
313 \r
314 #ifndef ipconfigUSE_ARP_REVERSED_LOOKUP\r
315         #define ipconfigUSE_ARP_REVERSED_LOOKUP         0\r
316 #endif\r
317 \r
318 #ifndef ipconfigUSE_ARP_REMOVE_ENTRY\r
319         #define ipconfigUSE_ARP_REMOVE_ENTRY            0\r
320 #endif\r
321 \r
322 #ifndef ipconfigINCLUDE_FULL_INET_ADDR\r
323         #define ipconfigINCLUDE_FULL_INET_ADDR  1\r
324 #endif\r
325 \r
326 #ifndef ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS\r
327         #define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS          45\r
328 #endif\r
329 \r
330 #ifndef ipconfigEVENT_QUEUE_LENGTH\r
331         #define ipconfigEVENT_QUEUE_LENGTH              ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )\r
332 #endif\r
333 \r
334 #ifndef ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND\r
335         #define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1\r
336 #endif\r
337 \r
338 #ifndef ipconfigUDP_TIME_TO_LIVE\r
339         #define ipconfigUDP_TIME_TO_LIVE                128\r
340 #endif\r
341 \r
342 #ifndef ipconfigTCP_TIME_TO_LIVE\r
343         #define ipconfigTCP_TIME_TO_LIVE                128\r
344 #endif\r
345 \r
346 #ifndef ipconfigUDP_MAX_RX_PACKETS\r
347         /* Make postive to define the maximum number of packets which will be buffered\r
348          * for each UDP socket.\r
349          * Can be overridden with the socket option FREERTOS_SO_UDP_MAX_RX_PACKETS\r
350          */\r
351         #define ipconfigUDP_MAX_RX_PACKETS              0u\r
352 #endif\r
353 \r
354 #ifndef ipconfigUSE_DHCP\r
355         #define ipconfigUSE_DHCP                                1\r
356 #endif\r
357 \r
358 #ifndef ipconfigUSE_DHCP_HOOK\r
359         #define ipconfigUSE_DHCP_HOOK           0\r
360 #endif\r
361 \r
362 #ifndef ipconfigDHCP_FALL_BACK_AUTO_IP\r
363         /*\r
364          * Only applicable when DHCP is in use:\r
365          * If no DHCP server responds, use "Auto-IP" : the\r
366          * device will allocate a random LinkLayer IP address.\r
367          */\r
368         #define ipconfigDHCP_FALL_BACK_AUTO_IP          ( 0 )\r
369 #endif\r
370 \r
371 #if( ipconfigDHCP_FALL_BACK_AUTO_IP != 0 )\r
372         #define ipconfigARP_USE_CLASH_DETECTION         1\r
373 #endif\r
374 \r
375 #ifndef ipconfigARP_USE_CLASH_DETECTION\r
376         #define ipconfigARP_USE_CLASH_DETECTION         0\r
377 #endif\r
378 \r
379 #ifndef ipconfigNETWORK_MTU\r
380         #define ipconfigNETWORK_MTU             1500\r
381 #endif\r
382 \r
383 #ifndef ipconfigTCP_MSS\r
384         #define ipconfigTCP_MSS         ( ipconfigNETWORK_MTU - ipSIZE_OF_IPv4_HEADER - ipSIZE_OF_TCP_HEADER )\r
385 #endif\r
386 \r
387 /* Each TCP socket has circular stream buffers for Rx and Tx, which\r
388  * have a fixed maximum size.\r
389  * The defaults for these size are defined here, although\r
390  * they can be overridden at runtime by using the setsockopt() call */\r
391 #ifndef ipconfigTCP_RX_BUFFER_LENGTH\r
392         #define ipconfigTCP_RX_BUFFER_LENGTH                    ( 4u * ipconfigTCP_MSS )        /* defaults to 5840 bytes */\r
393 #endif\r
394 \r
395 /* Define the size of Tx stream buffer for TCP sockets */\r
396 #ifndef ipconfigTCP_TX_BUFFER_LENGTH\r
397 #       define ipconfigTCP_TX_BUFFER_LENGTH                     ( 4u * ipconfigTCP_MSS )        /* defaults to 5840 bytes */\r
398 #endif\r
399 \r
400 #ifndef ipconfigMAXIMUM_DISCOVER_TX_PERIOD\r
401         #ifdef _WINDOWS_\r
402                 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD              ( pdMS_TO_TICKS( 999 ) )\r
403         #else\r
404                 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD              ( pdMS_TO_TICKS( 30000 ) )\r
405         #endif /* _WINDOWS_ */\r
406 #endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */\r
407 \r
408 #ifndef ipconfigUSE_DNS\r
409         #define ipconfigUSE_DNS                                         1\r
410 #endif\r
411 \r
412 #ifndef ipconfigDNS_REQUEST_ATTEMPTS\r
413         #define ipconfigDNS_REQUEST_ATTEMPTS            5\r
414 #endif\r
415 \r
416 #ifndef ipconfigUSE_DNS_CACHE\r
417         #define ipconfigUSE_DNS_CACHE                           0\r
418 #endif\r
419 \r
420 #if( ipconfigUSE_DNS_CACHE != 0 )\r
421         #ifndef ipconfigDNS_CACHE_NAME_LENGTH\r
422                 #define ipconfigDNS_CACHE_NAME_LENGTH           ( 16 )\r
423         #endif\r
424 \r
425         #ifndef ipconfigDNS_CACHE_ENTRIES\r
426                 #define ipconfigDNS_CACHE_ENTRIES                       0\r
427         #endif\r
428 #endif /* ipconfigUSE_DNS_CACHE != 0 */\r
429 \r
430 #ifndef ipconfigCHECK_IP_QUEUE_SPACE\r
431         #define ipconfigCHECK_IP_QUEUE_SPACE                    0\r
432 #endif\r
433 \r
434 #ifndef ipconfigUSE_LLMNR\r
435         /* Include support for LLMNR: Link-local Multicast Name Resolution (non-Microsoft) */\r
436         #define ipconfigUSE_LLMNR                                       ( 0 )\r
437 #endif\r
438 \r
439 #if( !defined( ipconfigUSE_DNS ) )\r
440         #if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )\r
441                 /* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */\r
442                 #error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined\r
443         #endif\r
444 #endif\r
445 \r
446 #ifndef ipconfigREPLY_TO_INCOMING_PINGS\r
447         #define ipconfigREPLY_TO_INCOMING_PINGS         1\r
448 #endif\r
449 \r
450 #ifndef ipconfigSUPPORT_OUTGOING_PINGS\r
451         #define ipconfigSUPPORT_OUTGOING_PINGS          0\r
452 #endif\r
453 \r
454 #ifndef ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES\r
455         #define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1\r
456 #endif\r
457 \r
458 #ifndef ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES\r
459         #define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES     1\r
460 #endif\r
461 \r
462 #ifndef configINCLUDE_TRACE_RELATED_CLI_COMMANDS\r
463         #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS 0\r
464 #else\r
465         #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS configINCLUDE_TRACE_RELATED_CLI_COMMANDS\r
466 #endif\r
467 \r
468 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM\r
469         #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM  ( 0 )\r
470 #endif\r
471 \r
472 #ifndef ipconfigETHERNET_DRIVER_FILTERS_PACKETS\r
473         #define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 0 )\r
474 #endif\r
475 \r
476 #ifndef ipconfigWATCHDOG_TIMER\r
477         /* This macro will be called in every loop the IP-task makes.  It may be\r
478         replaced by user-code that triggers a watchdog */\r
479         #define ipconfigWATCHDOG_TIMER()\r
480 #endif\r
481 \r
482 #ifndef ipconfigUSE_CALLBACKS\r
483         #define ipconfigUSE_CALLBACKS                   ( 0 )\r
484 #endif\r
485 \r
486 #if( ipconfigUSE_CALLBACKS != 0 )\r
487         #ifndef ipconfigIS_VALID_PROG_ADDRESS\r
488                 /* Replace this macro with a test returning non-zero if the memory pointer to by x\r
489                  * is valid memory which can contain executable code\r
490                  * In fact this is an extra safety measure: if a handler points to invalid memory,\r
491                  * it will not be called\r
492                  */\r
493                 #define ipconfigIS_VALID_PROG_ADDRESS(x)                ( ( x ) != NULL )\r
494         #endif\r
495 #endif\r
496 \r
497 #ifndef ipconfigHAS_INLINE_FUNCTIONS\r
498         #define ipconfigHAS_INLINE_FUNCTIONS    ( 1 )\r
499 #endif\r
500 \r
501 #ifndef portINLINE\r
502         #define portINLINE inline\r
503 #endif\r
504 \r
505 #ifndef ipconfigZERO_COPY_TX_DRIVER\r
506         /* When non-zero, the buffers passed to the SEND routine may be passed\r
507         to DMA. As soon as sending is ready, the buffers must be released by\r
508         calling vReleaseNetworkBufferAndDescriptor(), */\r
509         #define ipconfigZERO_COPY_TX_DRIVER             ( 0 )\r
510 #endif\r
511 \r
512 #ifndef ipconfigZERO_COPY_RX_DRIVER\r
513         /* This define doesn't mean much to the driver, except that it makes\r
514         sure that pxPacketBuffer_to_NetworkBuffer() will be included. */\r
515         #define ipconfigZERO_COPY_RX_DRIVER             ( 0 )\r
516 #endif\r
517 \r
518 #ifndef ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM\r
519         #define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0\r
520 #endif\r
521 \r
522 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM\r
523         #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 0\r
524 #endif\r
525 \r
526 #ifndef ipconfigDHCP_REGISTER_HOSTNAME\r
527         #define ipconfigDHCP_REGISTER_HOSTNAME 0\r
528 #endif\r
529 \r
530 #ifndef ipconfigSOCKET_HAS_USER_SEMAPHORE\r
531         #define ipconfigSOCKET_HAS_USER_SEMAPHORE 0\r
532 #endif\r
533 \r
534 #ifndef ipconfigSUPPORT_SELECT_FUNCTION\r
535         #define ipconfigSUPPORT_SELECT_FUNCTION 0\r
536 #endif\r
537 \r
538 #ifndef ipconfigTCP_KEEP_ALIVE\r
539         #define ipconfigTCP_KEEP_ALIVE 0\r
540 #endif\r
541 \r
542 #ifndef ipconfigDNS_USE_CALLBACKS\r
543         #define ipconfigDNS_USE_CALLBACKS 0\r
544 #endif\r
545 \r
546 #ifndef ipconfigSUPPORT_SIGNALS\r
547         #define ipconfigSUPPORT_SIGNALS                         0\r
548 #endif\r
549 \r
550 #ifndef ipconfigUSE_NBNS\r
551         #define ipconfigUSE_NBNS 0\r
552 #endif\r
553 \r
554 #ifndef ipconfigTCP_HANG_PROTECTION\r
555         #define ipconfigTCP_HANG_PROTECTION  0\r
556 #endif\r
557 \r
558 #ifndef ipconfigTCP_IP_SANITY\r
559         #define ipconfigTCP_IP_SANITY 0\r
560 #endif\r
561 \r
562 #ifndef ipconfigARP_STORES_REMOTE_ADDRESSES\r
563         #define ipconfigARP_STORES_REMOTE_ADDRESSES 0\r
564 #endif\r
565 \r
566 #ifndef ipconfigBUFFER_PADDING\r
567         /* Expert option: define a value for 'ipBUFFER_PADDING'.\r
568         When 'ipconfigBUFFER_PADDING' equals 0,\r
569         'ipBUFFER_PADDING' will get a default value of 8 + 2 bytes. */\r
570         #define ipconfigBUFFER_PADDING 0\r
571 #endif\r
572 \r
573 #ifndef ipconfigPACKET_FILLER_SIZE\r
574         #define ipconfigPACKET_FILLER_SIZE 2\r
575 #endif\r
576 \r
577 #endif /* FREERTOS_DEFAULT_IP_CONFIG_H */\r