2 * FreeRTOS+TCP Labs Build 160919 (C) 2016 Real Time Engineers ltd.
\r
3 * Authors include Hein Tibosch and Richard Barry
\r
5 *******************************************************************************
\r
6 ***** NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ***
\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
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
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
25 ***** NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ***
\r
26 *******************************************************************************
\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
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
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
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
50 * 1 tab == 4 spaces!
\r
52 * http://www.FreeRTOS.org
\r
53 * http://www.FreeRTOS.org/plus
\r
54 * http://www.FreeRTOS.org/labs
\r
58 #ifndef FREERTOS_DEFAULT_IP_CONFIG_H
\r
59 #define FREERTOS_DEFAULT_IP_CONFIG_H
\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
64 #include "FreeRTOS_errno_TCP.h"
\r
66 /* This file provides default values for configuration options that are missing
\r
67 from the FreeRTOSIPConfig.h configuration header file. */
\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
75 #ifdef updconfigIP_TIME_TO_LIVE
\r
76 #error now called: ipconfigUDP_TIME_TO_LIVE
\r
79 #ifdef ipFILLER_SIZE
\r
80 #error now called: ipconfigPACKET_FILLER_SIZE
\r
83 #ifdef dnsMAX_REQUEST_ATTEMPTS
\r
84 #error now called: ipconfigDNS_REQUEST_ATTEMPTS
\r
87 #ifdef ipconfigUDP_TASK_PRIORITY
\r
88 #error now called: ipconfigIP_TASK_PRIORITY
\r
91 #ifdef ipconfigUDP_TASK_STACK_SIZE_WORDS
\r
92 #error now called: ipconfigIP_TASK_STACK_SIZE_WORDS
\r
95 #ifdef ipconfigDRIVER_INCLUDED_RX_IP_FILTERING
\r
96 #error now called: ipconfigETHERNET_DRIVER_FILTERS_PACKETS
\r
99 #ifdef ipconfigMAX_SEND_BLOCK_TIME_TICKS
\r
100 #error now called: ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS
\r
103 #ifdef ipconfigUSE_RECEIVE_CONNECT_CALLBACKS
\r
104 #error now called: ipconfigUSE_CALLBACKS
\r
107 #ifdef ipconfigNUM_NETWORK_BUFFERS
\r
108 #error now called: ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS
\r
111 #ifdef ipconfigTCP_HANG_PROT
\r
112 #error now called: ipconfigTCP_HANG_PROTECTION
\r
115 #ifdef ipconfigTCP_HANG_PROT_TIME
\r
116 #error now called: ipconfigTCP_HANG_PROTECTION_TIME
\r
119 #ifdef FreeRTOS_lprintf
\r
120 #error now called: FreeRTOS_debug_printf
\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
127 #if ( ipconfigNETWORK_MTU < 46 )
\r
128 #error ipconfigNETWORK_MTU must be at least 46.
\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
135 #ifdef ipconfigNIC_SEND_PASSES_DMA
\r
136 #error now called: ipconfigZERO_COPY_TX_DRIVER
\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
145 #ifdef HAS_RX_CRC_OFFLOADING
\r
146 #error now called: ipconfigHAS_RX_CRC_OFFLOADING
\r
149 #ifdef ipconfigTCP_RX_BUF_LEN
\r
150 #error ipconfigTCP_RX_BUF_LEN is now called ipconfigTCP_RX_BUFFER_LENGTH
\r
153 #ifdef ipconfigTCP_TX_BUF_LEN
\r
154 #error ipconfigTCP_TX_BUF_LEN is now called ipconfigTCP_TX_BUFFER_LENGTH
\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
161 #ifndef ipconfigUSE_TCP
\r
162 #define ipconfigUSE_TCP ( 1 )
\r
165 #if ipconfigUSE_TCP
\r
167 /* Include support for TCP scaling windows */
\r
168 #ifndef ipconfigUSE_TCP_WIN
\r
169 #define ipconfigUSE_TCP_WIN ( 1 )
\r
172 #ifndef ipconfigTCP_WIN_SEG_COUNT
\r
173 #define ipconfigTCP_WIN_SEG_COUNT ( 256 )
\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
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
189 #ifndef ipconfigTCP_MAY_LOG_PORT
\r
190 #define ipconfigTCP_MAY_LOG_PORT(xPort) ( ( xPort ) != 23u )
\r
194 #ifndef ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME
\r
195 #define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME portMAX_DELAY
\r
198 #ifndef ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME
\r
199 #define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME portMAX_DELAY
\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
207 * #define FreeRTOS_debug_printf( MSG ) my_printf MSG
\r
209 * The FreeRTOS_debug_printf() must be thread-safe but does not have to be
\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
220 #ifndef FreeRTOS_debug_printf
\r
221 #define FreeRTOS_debug_printf( MSG ) do{} while(0)
\r
222 #define ipconfigHAS_DEBUG_PRINTF 0
\r
226 * FreeRTOS general logging routine (proposal)
\r
227 * Used in some utility functions such as FreeRTOS_netstat() and FreeRTOS_PrintARPCache()
\r
229 * #define FreeRTOS_printf( MSG ) my_printf MSG
\r
231 * The FreeRTOS_printf() must be thread-safe but does not have to be interrupt-safe
\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
241 #ifndef FreeRTOS_printf
\r
242 #define FreeRTOS_printf( MSG ) do{} while(0)
\r
243 #define ipconfigHAS_PRINTF 0
\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
251 #ifndef FreeRTOS_flush_logging
\r
252 #define FreeRTOS_flush_logging( ) do{} while(0)
\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
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
262 #ifndef pvPortMallocLarge
\r
263 #define pvPortMallocLarge( x ) pvPortMalloc( x )
\r
266 #ifndef vPortFreeLarge
\r
267 #define vPortFreeLarge(ptr) vPortFree(ptr)
\r
270 #ifndef pvPortMallocSocket
\r
271 #define pvPortMallocSocket( x ) pvPortMalloc( x )
\r
274 #ifndef vPortFreeSocket
\r
275 #define vPortFreeSocket(ptr) vPortFree(ptr)
\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
287 #ifndef ipconfigRAND32
\r
288 #define ipconfigRAND32() rand()
\r
290 /* --------------------------------------------------------
\r
291 * End of: HT Added some macro defaults for the PLUS-UDP project
\r
292 * -------------------------------------------------------- */
\r
294 #ifndef ipconfigUSE_NETWORK_EVENT_HOOK
\r
295 #define ipconfigUSE_NETWORK_EVENT_HOOK 0
\r
298 #ifndef ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS
\r
299 #define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( pdMS_TO_TICKS( 20 ) )
\r
302 #ifndef ipconfigARP_CACHE_ENTRIES
\r
303 #define ipconfigARP_CACHE_ENTRIES 10
\r
306 #ifndef ipconfigMAX_ARP_RETRANSMISSIONS
\r
307 #define ipconfigMAX_ARP_RETRANSMISSIONS ( 5u )
\r
310 #ifndef ipconfigMAX_ARP_AGE
\r
311 #define ipconfigMAX_ARP_AGE 150u
\r
314 #ifndef ipconfigUSE_ARP_REVERSED_LOOKUP
\r
315 #define ipconfigUSE_ARP_REVERSED_LOOKUP 0
\r
318 #ifndef ipconfigUSE_ARP_REMOVE_ENTRY
\r
319 #define ipconfigUSE_ARP_REMOVE_ENTRY 0
\r
322 #ifndef ipconfigINCLUDE_FULL_INET_ADDR
\r
323 #define ipconfigINCLUDE_FULL_INET_ADDR 1
\r
326 #ifndef ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS
\r
327 #define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 45
\r
330 #ifndef ipconfigEVENT_QUEUE_LENGTH
\r
331 #define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
\r
334 #ifndef ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND
\r
335 #define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
\r
338 #ifndef ipconfigUDP_TIME_TO_LIVE
\r
339 #define ipconfigUDP_TIME_TO_LIVE 128
\r
342 #ifndef ipconfigTCP_TIME_TO_LIVE
\r
343 #define ipconfigTCP_TIME_TO_LIVE 128
\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
351 #define ipconfigUDP_MAX_RX_PACKETS 0u
\r
354 #ifndef ipconfigUSE_DHCP
\r
355 #define ipconfigUSE_DHCP 1
\r
358 #ifndef ipconfigUSE_DHCP_HOOK
\r
359 #define ipconfigUSE_DHCP_HOOK 0
\r
362 #ifndef ipconfigDHCP_FALL_BACK_AUTO_IP
\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
368 #define ipconfigDHCP_FALL_BACK_AUTO_IP ( 0 )
\r
371 #if( ipconfigDHCP_FALL_BACK_AUTO_IP != 0 )
\r
372 #define ipconfigARP_USE_CLASH_DETECTION 1
\r
375 #ifndef ipconfigARP_USE_CLASH_DETECTION
\r
376 #define ipconfigARP_USE_CLASH_DETECTION 0
\r
379 #ifndef ipconfigNETWORK_MTU
\r
380 #define ipconfigNETWORK_MTU 1500
\r
383 #ifndef ipconfigTCP_MSS
\r
384 #define ipconfigTCP_MSS ( ipconfigNETWORK_MTU - ipSIZE_OF_IPv4_HEADER - ipSIZE_OF_TCP_HEADER )
\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
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
400 #ifndef ipconfigMAXIMUM_DISCOVER_TX_PERIOD
\r
402 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 999 ) )
\r
404 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 30000 ) )
\r
405 #endif /* _WINDOWS_ */
\r
406 #endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */
\r
408 #ifndef ipconfigUSE_DNS
\r
409 #define ipconfigUSE_DNS 1
\r
412 #ifndef ipconfigDNS_REQUEST_ATTEMPTS
\r
413 #define ipconfigDNS_REQUEST_ATTEMPTS 5
\r
416 #ifndef ipconfigUSE_DNS_CACHE
\r
417 #define ipconfigUSE_DNS_CACHE 0
\r
420 #if( ipconfigUSE_DNS_CACHE != 0 )
\r
421 #ifndef ipconfigDNS_CACHE_NAME_LENGTH
\r
422 #define ipconfigDNS_CACHE_NAME_LENGTH ( 16 )
\r
425 #ifndef ipconfigDNS_CACHE_ENTRIES
\r
426 #define ipconfigDNS_CACHE_ENTRIES 0
\r
428 #endif /* ipconfigUSE_DNS_CACHE != 0 */
\r
430 #ifndef ipconfigCHECK_IP_QUEUE_SPACE
\r
431 #define ipconfigCHECK_IP_QUEUE_SPACE 0
\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
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
446 #ifndef ipconfigREPLY_TO_INCOMING_PINGS
\r
447 #define ipconfigREPLY_TO_INCOMING_PINGS 1
\r
450 #ifndef ipconfigSUPPORT_OUTGOING_PINGS
\r
451 #define ipconfigSUPPORT_OUTGOING_PINGS 0
\r
454 #ifndef ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES
\r
455 #define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
\r
458 #ifndef ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES
\r
459 #define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
\r
462 #ifndef configINCLUDE_TRACE_RELATED_CLI_COMMANDS
\r
463 #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS 0
\r
465 #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS configINCLUDE_TRACE_RELATED_CLI_COMMANDS
\r
468 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM
\r
469 #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM ( 0 )
\r
472 #ifndef ipconfigETHERNET_DRIVER_FILTERS_PACKETS
\r
473 #define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 0 )
\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
482 #ifndef ipconfigUSE_CALLBACKS
\r
483 #define ipconfigUSE_CALLBACKS ( 0 )
\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
493 #define ipconfigIS_VALID_PROG_ADDRESS(x) ( ( x ) != NULL )
\r
497 #ifndef ipconfigHAS_INLINE_FUNCTIONS
\r
498 #define ipconfigHAS_INLINE_FUNCTIONS ( 1 )
\r
502 #define portINLINE inline
\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
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
518 #ifndef ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM
\r
519 #define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0
\r
522 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM
\r
523 #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 0
\r
526 #ifndef ipconfigDHCP_REGISTER_HOSTNAME
\r
527 #define ipconfigDHCP_REGISTER_HOSTNAME 0
\r
530 #ifndef ipconfigSOCKET_HAS_USER_SEMAPHORE
\r
531 #define ipconfigSOCKET_HAS_USER_SEMAPHORE 0
\r
534 #ifndef ipconfigSUPPORT_SELECT_FUNCTION
\r
535 #define ipconfigSUPPORT_SELECT_FUNCTION 0
\r
538 #ifndef ipconfigTCP_KEEP_ALIVE
\r
539 #define ipconfigTCP_KEEP_ALIVE 0
\r
542 #ifndef ipconfigDNS_USE_CALLBACKS
\r
543 #define ipconfigDNS_USE_CALLBACKS 0
\r
546 #ifndef ipconfigSUPPORT_SIGNALS
\r
547 #define ipconfigSUPPORT_SIGNALS 0
\r
550 #ifndef ipconfigUSE_NBNS
\r
551 #define ipconfigUSE_NBNS 0
\r
554 #ifndef ipconfigTCP_HANG_PROTECTION
\r
555 #define ipconfigTCP_HANG_PROTECTION 0
\r
558 #ifndef ipconfigTCP_IP_SANITY
\r
559 #define ipconfigTCP_IP_SANITY 0
\r
562 #ifndef ipconfigARP_STORES_REMOTE_ADDRESSES
\r
563 #define ipconfigARP_STORES_REMOTE_ADDRESSES 0
\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
573 #ifndef ipconfigPACKET_FILLER_SIZE
\r
574 #define ipconfigPACKET_FILLER_SIZE 2
\r
577 #endif /* FREERTOS_DEFAULT_IP_CONFIG_H */
\r