summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h')
-rw-r--r--FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h1138
1 files changed, 569 insertions, 569 deletions
diff --git a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
index 20cdf739f..d23410f5f 100644
--- a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
+++ b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
@@ -1,569 +1,569 @@
-/*
- * FreeRTOS+TCP V2.2.0
- * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * http://www.FreeRTOS.org
- * http://aws.amazon.com/freertos
- *
- * 1 tab == 4 spaces!
- */
-
-#ifndef FREERTOS_DEFAULT_IP_CONFIG_H
-#define FREERTOS_DEFAULT_IP_CONFIG_H
-
-/* The error numbers defined in this file will be moved to the core FreeRTOS
-code in future versions of FreeRTOS - at which time the following header file
-will be removed. */
-#include "FreeRTOS_errno_TCP.h"
-
-/* This file provides default values for configuration options that are missing
-from the FreeRTOSIPConfig.h configuration header file. */
-
-
-/* Ensure defined configuration constants are using the most up to date naming. */
-#ifdef tcpconfigIP_TIME_TO_LIVE
- #error now called: ipconfigTCP_TIME_TO_LIVE
-#endif
-
-#ifdef updconfigIP_TIME_TO_LIVE
- #error now called: ipconfigUDP_TIME_TO_LIVE
-#endif
-
-#ifdef ipFILLER_SIZE
- #error now called: ipconfigPACKET_FILLER_SIZE
-#endif
-
-#ifdef dnsMAX_REQUEST_ATTEMPTS
- #error now called: ipconfigDNS_REQUEST_ATTEMPTS
-#endif
-
-#ifdef ipconfigUDP_TASK_PRIORITY
- #error now called: ipconfigIP_TASK_PRIORITY
-#endif
-
-#ifdef ipconfigUDP_TASK_STACK_SIZE_WORDS
- #error now called: ipconfigIP_TASK_STACK_SIZE_WORDS
-#endif
-
-#ifdef ipconfigDRIVER_INCLUDED_RX_IP_FILTERING
- #error now called: ipconfigETHERNET_DRIVER_FILTERS_PACKETS
-#endif
-
-#ifdef ipconfigMAX_SEND_BLOCK_TIME_TICKS
- #error now called: ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS
-#endif
-
-#ifdef ipconfigUSE_RECEIVE_CONNECT_CALLBACKS
- #error now called: ipconfigUSE_CALLBACKS
-#endif
-
-#ifdef ipconfigNUM_NETWORK_BUFFERS
- #error now called: ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS
-#endif
-
-#ifdef ipconfigTCP_HANG_PROT
- #error now called: ipconfigTCP_HANG_PROTECTION
-#endif
-
-#ifdef ipconfigTCP_HANG_PROT_TIME
- #error now called: ipconfigTCP_HANG_PROTECTION_TIME
-#endif
-
-#ifdef FreeRTOS_lprintf
- #error now called: FreeRTOS_debug_printf
-#endif
-
-#if ( ipconfigEVENT_QUEUE_LENGTH < ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 ) )
- #error The ipconfigEVENT_QUEUE_LENGTH parameter must be at least ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5
-#endif
-
-#if ( ipconfigNETWORK_MTU < 46 )
- #error ipconfigNETWORK_MTU must be at least 46.
-#endif
-
-#ifdef ipconfigBUFFER_ALLOC_FIXED_SIZE
- #error ipconfigBUFFER_ALLOC_FIXED_SIZE was dropped and replaced by a const value, declared in BufferAllocation[12].c
-#endif
-
-#ifdef ipconfigNIC_SEND_PASSES_DMA
- #error now called: ipconfigZERO_COPY_TX_DRIVER
-#endif
-
-#ifdef HAS_TX_CRC_OFFLOADING
- /* _HT_ As these macro names have changed, throw an error
- if they're still defined. */
- #error now called: ipconfigHAS_TX_CRC_OFFLOADING
-#endif
-
-#ifdef HAS_RX_CRC_OFFLOADING
- #error now called: ipconfigHAS_RX_CRC_OFFLOADING
-#endif
-
-#ifdef ipconfigTCP_RX_BUF_LEN
- #error ipconfigTCP_RX_BUF_LEN is now called ipconfigTCP_RX_BUFFER_LENGTH
-#endif
-
-#ifdef ipconfigTCP_TX_BUF_LEN
- #error ipconfigTCP_TX_BUF_LEN is now called ipconfigTCP_TX_BUFFER_LENGTH
-#endif
-
-#ifdef ipconfigDHCP_USES_USER_HOOK
- #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
-#endif
-
-#ifndef ipconfigUSE_TCP
- #define ipconfigUSE_TCP ( 1 )
-#endif
-
-#if ipconfigUSE_TCP
-
- /* Include support for TCP scaling windows */
- #ifndef ipconfigUSE_TCP_WIN
- #define ipconfigUSE_TCP_WIN ( 1 )
- #endif
-
- #ifndef ipconfigTCP_WIN_SEG_COUNT
- #define ipconfigTCP_WIN_SEG_COUNT ( 256 )
- #endif
-
- #ifndef ipconfigIGNORE_UNKNOWN_PACKETS
- /* When non-zero, TCP will not send RST packets in reply to
- TCP packets which are unknown, or out-of-order. */
- #define ipconfigIGNORE_UNKNOWN_PACKETS ( 0 )
- #endif
-#endif
-
-/*
- * For debuging/logging: check if the port number is used for telnet
- * Some events will not be logged for telnet connections
- * because it would produce logging about the transmission of the logging...
- * This macro will only be used if FreeRTOS_debug_printf() is defined for logging
- */
-#ifndef ipconfigTCP_MAY_LOG_PORT
- #define ipconfigTCP_MAY_LOG_PORT(xPort) ( ( xPort ) != 23u )
-#endif
-
-
-#ifndef ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME
- #define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME portMAX_DELAY
-#endif
-
-#ifndef ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME
- #define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME portMAX_DELAY
-#endif
-
-
-#ifndef ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS
- #define ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS pdMS_TO_TICKS( 500u )
-#endif
-
-#ifndef ipconfigDNS_SEND_BLOCK_TIME_TICKS
- #define ipconfigDNS_SEND_BLOCK_TIME_TICKS pdMS_TO_TICKS( 500u )
-#endif
-/*
- * FreeRTOS debug logging routine (proposal)
- * The macro will be called in the printf() style. Users can define
- * their own logging routine as:
- *
- * #define FreeRTOS_debug_printf( MSG ) my_printf MSG
- *
- * The FreeRTOS_debug_printf() must be thread-safe but does not have to be
- * interrupt-safe.
- */
-#ifdef ipconfigHAS_DEBUG_PRINTF
- #if( ipconfigHAS_DEBUG_PRINTF == 0 )
- #ifdef FreeRTOS_debug_printf
- #error Do not define FreeRTOS_debug_print if ipconfigHAS_DEBUG_PRINTF is set to 0
- #endif /* ifdef FreeRTOS_debug_printf */
- #endif /* ( ipconfigHAS_DEBUG_PRINTF == 0 ) */
-#endif /* ifdef ipconfigHAS_DEBUG_PRINTF */
-
-#ifndef FreeRTOS_debug_printf
- #define FreeRTOS_debug_printf( MSG ) do{} while(0)
- #define ipconfigHAS_DEBUG_PRINTF 0
-#endif
-
-/*
- * FreeRTOS general logging routine (proposal)
- * Used in some utility functions such as FreeRTOS_netstat() and FreeRTOS_PrintARPCache()
- *
- * #define FreeRTOS_printf( MSG ) my_printf MSG
- *
- * The FreeRTOS_printf() must be thread-safe but does not have to be interrupt-safe
- */
-#ifdef ipconfigHAS_PRINTF
- #if( ipconfigHAS_PRINTF == 0 )
- #ifdef FreeRTOS_printf
- #error Do not define FreeRTOS_print if ipconfigHAS_PRINTF is set to 0
- #endif /* ifdef FreeRTOS_debug_printf */
- #endif /* ( ipconfigHAS_PRINTF == 0 ) */
-#endif /* ifdef ipconfigHAS_PRINTF */
-
-#ifndef FreeRTOS_printf
- #define FreeRTOS_printf( MSG ) do{} while(0)
- #define ipconfigHAS_PRINTF 0
-#endif
-
-/*
- * In cases where a lot of logging is produced, FreeRTOS_flush_logging( )
- * will be called to give the logging module a chance to flush the data
- * An example of this is the netstat command, which produces many lines of logging
- */
-#ifndef FreeRTOS_flush_logging
- #define FreeRTOS_flush_logging( ) do{} while(0)
-#endif
-
-/* Malloc functions. Within most applications of FreeRTOS, the couple
- * pvPortMalloc()/vPortFree() will be used.
- * If there is also SDRAM, the user may decide to use a different memory
- * allocator:
- * MallocLarge is used to allocate large TCP buffers (for Rx/Tx)
- * MallocSocket is used to allocate the space for the sockets
- */
-#ifndef pvPortMallocLarge
- #define pvPortMallocLarge( x ) pvPortMalloc( x )
-#endif
-
-#ifndef vPortFreeLarge
- #define vPortFreeLarge(ptr) vPortFree(ptr)
-#endif
-
-#ifndef pvPortMallocSocket
- #define pvPortMallocSocket( x ) pvPortMalloc( x )
-#endif
-
-#ifndef vPortFreeSocket
- #define vPortFreeSocket(ptr) vPortFree(ptr)
-#endif
-
-/*
- * At several places within the library, random numbers are needed:
- * - DHCP: For creating a DHCP transaction number
- * - TCP: Set the Initial Sequence Number: this is the value of the first outgoing
- * sequence number being used when connecting to a peer.
- * Having a well randomised ISN is important to avoid spoofing
- * - UDP/TCP: for setting the first port number to be used, in case a socket
- * uses a 'random' or anonymous port number
- */
-#ifndef ipconfigRAND32
- #define ipconfigRAND32() rand()
-#endif
-/* --------------------------------------------------------
- * End of: HT Added some macro defaults for the PLUS-UDP project
- * -------------------------------------------------------- */
-
-#ifndef ipconfigUSE_NETWORK_EVENT_HOOK
- #define ipconfigUSE_NETWORK_EVENT_HOOK 0
-#endif
-
-#ifndef ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS
- #define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( pdMS_TO_TICKS( 20 ) )
-#endif
-
-#ifndef ipconfigARP_CACHE_ENTRIES
- #define ipconfigARP_CACHE_ENTRIES 10
-#endif
-
-#ifndef ipconfigMAX_ARP_RETRANSMISSIONS
- #define ipconfigMAX_ARP_RETRANSMISSIONS ( 5u )
-#endif
-
-#ifndef ipconfigMAX_ARP_AGE
- #define ipconfigMAX_ARP_AGE 150u
-#endif
-
-#ifndef ipconfigUSE_ARP_REVERSED_LOOKUP
- #define ipconfigUSE_ARP_REVERSED_LOOKUP 0
-#endif
-
-#ifndef ipconfigUSE_ARP_REMOVE_ENTRY
- #define ipconfigUSE_ARP_REMOVE_ENTRY 0
-#endif
-
-#ifndef ipconfigINCLUDE_FULL_INET_ADDR
- #define ipconfigINCLUDE_FULL_INET_ADDR 1
-#endif
-
-#ifndef ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS
- #define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 45
-#endif
-
-#ifndef ipconfigEVENT_QUEUE_LENGTH
- #define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
-#endif
-
-#ifndef ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND
- #define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
-#endif
-
-#ifndef ipconfigUDP_TIME_TO_LIVE
- #define ipconfigUDP_TIME_TO_LIVE 128
-#endif
-
-#ifndef ipconfigTCP_TIME_TO_LIVE
- #define ipconfigTCP_TIME_TO_LIVE 128
-#endif
-
-#ifndef ipconfigUDP_MAX_RX_PACKETS
- /* Make postive to define the maximum number of packets which will be buffered
- * for each UDP socket.
- * Can be overridden with the socket option FREERTOS_SO_UDP_MAX_RX_PACKETS
- */
- #define ipconfigUDP_MAX_RX_PACKETS 0u
-#endif
-
-#ifndef ipconfigUSE_DHCP
- #define ipconfigUSE_DHCP 1
-#endif
-
-#ifndef ipconfigUSE_DHCP_HOOK
- #define ipconfigUSE_DHCP_HOOK 0
-#endif
-
-#ifndef ipconfigDHCP_FALL_BACK_AUTO_IP
- /*
- * Only applicable when DHCP is in use:
- * If no DHCP server responds, use "Auto-IP" : the
- * device will allocate a random LinkLayer IP address.
- */
- #define ipconfigDHCP_FALL_BACK_AUTO_IP ( 0 )
-#endif
-
-#if( ipconfigDHCP_FALL_BACK_AUTO_IP != 0 )
- #define ipconfigARP_USE_CLASH_DETECTION 1
-#endif
-
-#ifndef ipconfigARP_USE_CLASH_DETECTION
- #define ipconfigARP_USE_CLASH_DETECTION 0
-#endif
-
-#ifndef ipconfigNETWORK_MTU
- #define ipconfigNETWORK_MTU 1500
-#endif
-
-#ifndef ipconfigTCP_MSS
- #define ipconfigTCP_MSS ( ipconfigNETWORK_MTU - ipSIZE_OF_IPv4_HEADER - ipSIZE_OF_TCP_HEADER )
-#endif
-
-/* Each TCP socket has circular stream buffers for Rx and Tx, which
- * have a fixed maximum size.
- * The defaults for these size are defined here, although
- * they can be overridden at runtime by using the setsockopt() call */
-#ifndef ipconfigTCP_RX_BUFFER_LENGTH
- #define ipconfigTCP_RX_BUFFER_LENGTH ( 4u * ipconfigTCP_MSS ) /* defaults to 5840 bytes */
-#endif
-
-/* Define the size of Tx stream buffer for TCP sockets */
-#ifndef ipconfigTCP_TX_BUFFER_LENGTH
-# define ipconfigTCP_TX_BUFFER_LENGTH ( 4u * ipconfigTCP_MSS ) /* defaults to 5840 bytes */
-#endif
-
-#ifndef ipconfigMAXIMUM_DISCOVER_TX_PERIOD
- #ifdef _WINDOWS_
- #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 999 ) )
- #else
- #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 30000 ) )
- #endif /* _WINDOWS_ */
-#endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */
-
-#if( ipconfigUSE_DNS == 0 )
- /* The DNS module will not be included. */
- #if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )
- /* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */
- #error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined
- #endif
-#endif
-
-#ifndef ipconfigUSE_DNS
- #define ipconfigUSE_DNS 1
-#endif
-
-#ifndef ipconfigDNS_REQUEST_ATTEMPTS
- #define ipconfigDNS_REQUEST_ATTEMPTS 5
-#endif
-
-#ifndef ipconfigUSE_DNS_CACHE
- #define ipconfigUSE_DNS_CACHE 0
-#endif
-
-#if( ipconfigUSE_DNS_CACHE != 0 )
- #ifndef ipconfigDNS_CACHE_NAME_LENGTH
- /* Per https://tools.ietf.org/html/rfc1035, 253 is the maximum string length
- of a DNS name. The following default accounts for a null terminator. */
- #define ipconfigDNS_CACHE_NAME_LENGTH 254
- #endif
-
- #ifndef ipconfigDNS_CACHE_ENTRIES
- #define ipconfigDNS_CACHE_ENTRIES 1
- #endif
-#endif /* ipconfigUSE_DNS_CACHE != 0 */
-
-#ifndef ipconfigCHECK_IP_QUEUE_SPACE
- #define ipconfigCHECK_IP_QUEUE_SPACE 0
-#endif
-
-#ifndef ipconfigUSE_LLMNR
- /* Include support for LLMNR: Link-local Multicast Name Resolution (non-Microsoft) */
- #define ipconfigUSE_LLMNR ( 0 )
-#endif
-
-#ifndef ipconfigREPLY_TO_INCOMING_PINGS
- #define ipconfigREPLY_TO_INCOMING_PINGS 1
-#endif
-
-#ifndef ipconfigSUPPORT_OUTGOING_PINGS
- #define ipconfigSUPPORT_OUTGOING_PINGS 0
-#endif
-
-#ifndef ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES
- #define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
-#endif
-
-#ifndef ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES
- #define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
-#endif
-
-#ifndef configINCLUDE_TRACE_RELATED_CLI_COMMANDS
- #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS 0
-#else
- #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS configINCLUDE_TRACE_RELATED_CLI_COMMANDS
-#endif
-
-#ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM
- #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM ( 0 )
-#endif
-
-#ifndef ipconfigETHERNET_DRIVER_FILTERS_PACKETS
- #define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 0 )
-#endif
-
-#ifndef ipconfigWATCHDOG_TIMER
- /* This macro will be called in every loop the IP-task makes. It may be
- replaced by user-code that triggers a watchdog */
- #define ipconfigWATCHDOG_TIMER()
-#endif
-
-#ifndef ipconfigUSE_CALLBACKS
- #define ipconfigUSE_CALLBACKS ( 0 )
-#endif
-
-#if( ipconfigUSE_CALLBACKS != 0 )
- #ifndef ipconfigIS_VALID_PROG_ADDRESS
- /* Replace this macro with a test returning non-zero if the memory pointer to by x
- * is valid memory which can contain executable code
- * In fact this is an extra safety measure: if a handler points to invalid memory,
- * it will not be called
- */
- #define ipconfigIS_VALID_PROG_ADDRESS(x) ( ( x ) != NULL )
- #endif
-#endif
-
-#ifndef ipconfigHAS_INLINE_FUNCTIONS
- #define ipconfigHAS_INLINE_FUNCTIONS ( 1 )
-#endif
-
-#ifndef portINLINE
- #define portINLINE inline
-#endif
-
-#ifndef ipconfigZERO_COPY_TX_DRIVER
- /* When non-zero, the buffers passed to the SEND routine may be passed
- to DMA. As soon as sending is ready, the buffers must be released by
- calling vReleaseNetworkBufferAndDescriptor(), */
- #define ipconfigZERO_COPY_TX_DRIVER ( 0 )
-#endif
-
-#ifndef ipconfigZERO_COPY_RX_DRIVER
- /* This define doesn't mean much to the driver, except that it makes
- sure that pxPacketBuffer_to_NetworkBuffer() will be included. */
- #define ipconfigZERO_COPY_RX_DRIVER ( 0 )
-#endif
-
-#ifndef ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM
- #define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0
-#endif
-
-#ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM
- #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 0
-#endif
-
-#ifndef ipconfigDHCP_REGISTER_HOSTNAME
- #define ipconfigDHCP_REGISTER_HOSTNAME 0
-#endif
-
-#ifndef ipconfigSOCKET_HAS_USER_SEMAPHORE
- #define ipconfigSOCKET_HAS_USER_SEMAPHORE 0
-#endif
-
-#ifndef ipconfigSOCKET_HAS_USER_WAKE_CALLBACK
- #define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK 0
-#endif
-
-#ifndef ipconfigSUPPORT_SELECT_FUNCTION
- #define ipconfigSUPPORT_SELECT_FUNCTION 0
-#endif
-
-#ifndef ipconfigTCP_KEEP_ALIVE
- #define ipconfigTCP_KEEP_ALIVE 0
-#endif
-
-#ifndef ipconfigDNS_USE_CALLBACKS
- #define ipconfigDNS_USE_CALLBACKS 0
-#endif
-
-#ifndef ipconfigSUPPORT_SIGNALS
- #define ipconfigSUPPORT_SIGNALS 0
-#endif
-
-#ifndef ipconfigUSE_NBNS
- #define ipconfigUSE_NBNS 0
-#endif
-
-/* As an attack surface reduction for ports that listen for inbound
-connections, hang protection can help reduce the impact of SYN floods. */
-#ifndef ipconfigTCP_HANG_PROTECTION
- #define ipconfigTCP_HANG_PROTECTION 1
-#endif
-
-/* Non-activity timeout is expressed in seconds. */
-#ifndef ipconfigTCP_HANG_PROTECTION_TIME
- #define ipconfigTCP_HANG_PROTECTION_TIME 30
-#endif
-
-#ifndef ipconfigTCP_IP_SANITY
- #define ipconfigTCP_IP_SANITY 0
-#endif
-
-#ifndef ipconfigARP_STORES_REMOTE_ADDRESSES
- #define ipconfigARP_STORES_REMOTE_ADDRESSES 0
-#endif
-
-#ifndef ipconfigBUFFER_PADDING
- /* Expert option: define a value for 'ipBUFFER_PADDING'.
- When 'ipconfigBUFFER_PADDING' equals 0,
- 'ipBUFFER_PADDING' will get a default value of 8 + 2 bytes. */
- #define ipconfigBUFFER_PADDING 0
-#endif
-
-#ifndef ipconfigPACKET_FILLER_SIZE
- #define ipconfigPACKET_FILLER_SIZE 2
-#endif
-
-#endif /* FREERTOS_DEFAULT_IP_CONFIG_H */
+/*
+ * FreeRTOS+TCP V2.2.0
+ * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://www.FreeRTOS.org
+ * http://aws.amazon.com/freertos
+ *
+ * 1 tab == 4 spaces!
+ */
+
+#ifndef FREERTOS_DEFAULT_IP_CONFIG_H
+#define FREERTOS_DEFAULT_IP_CONFIG_H
+
+/* The error numbers defined in this file will be moved to the core FreeRTOS
+code in future versions of FreeRTOS - at which time the following header file
+will be removed. */
+#include "FreeRTOS_errno_TCP.h"
+
+/* This file provides default values for configuration options that are missing
+from the FreeRTOSIPConfig.h configuration header file. */
+
+
+/* Ensure defined configuration constants are using the most up to date naming. */
+#ifdef tcpconfigIP_TIME_TO_LIVE
+ #error now called: ipconfigTCP_TIME_TO_LIVE
+#endif
+
+#ifdef updconfigIP_TIME_TO_LIVE
+ #error now called: ipconfigUDP_TIME_TO_LIVE
+#endif
+
+#ifdef ipFILLER_SIZE
+ #error now called: ipconfigPACKET_FILLER_SIZE
+#endif
+
+#ifdef dnsMAX_REQUEST_ATTEMPTS
+ #error now called: ipconfigDNS_REQUEST_ATTEMPTS
+#endif
+
+#ifdef ipconfigUDP_TASK_PRIORITY
+ #error now called: ipconfigIP_TASK_PRIORITY
+#endif
+
+#ifdef ipconfigUDP_TASK_STACK_SIZE_WORDS
+ #error now called: ipconfigIP_TASK_STACK_SIZE_WORDS
+#endif
+
+#ifdef ipconfigDRIVER_INCLUDED_RX_IP_FILTERING
+ #error now called: ipconfigETHERNET_DRIVER_FILTERS_PACKETS
+#endif
+
+#ifdef ipconfigMAX_SEND_BLOCK_TIME_TICKS
+ #error now called: ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS
+#endif
+
+#ifdef ipconfigUSE_RECEIVE_CONNECT_CALLBACKS
+ #error now called: ipconfigUSE_CALLBACKS
+#endif
+
+#ifdef ipconfigNUM_NETWORK_BUFFERS
+ #error now called: ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS
+#endif
+
+#ifdef ipconfigTCP_HANG_PROT
+ #error now called: ipconfigTCP_HANG_PROTECTION
+#endif
+
+#ifdef ipconfigTCP_HANG_PROT_TIME
+ #error now called: ipconfigTCP_HANG_PROTECTION_TIME
+#endif
+
+#ifdef FreeRTOS_lprintf
+ #error now called: FreeRTOS_debug_printf
+#endif
+
+#if ( ipconfigEVENT_QUEUE_LENGTH < ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 ) )
+ #error The ipconfigEVENT_QUEUE_LENGTH parameter must be at least ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5
+#endif
+
+#if ( ipconfigNETWORK_MTU < 46 )
+ #error ipconfigNETWORK_MTU must be at least 46.
+#endif
+
+#ifdef ipconfigBUFFER_ALLOC_FIXED_SIZE
+ #error ipconfigBUFFER_ALLOC_FIXED_SIZE was dropped and replaced by a const value, declared in BufferAllocation[12].c
+#endif
+
+#ifdef ipconfigNIC_SEND_PASSES_DMA
+ #error now called: ipconfigZERO_COPY_TX_DRIVER
+#endif
+
+#ifdef HAS_TX_CRC_OFFLOADING
+ /* _HT_ As these macro names have changed, throw an error
+ if they're still defined. */
+ #error now called: ipconfigHAS_TX_CRC_OFFLOADING
+#endif
+
+#ifdef HAS_RX_CRC_OFFLOADING
+ #error now called: ipconfigHAS_RX_CRC_OFFLOADING
+#endif
+
+#ifdef ipconfigTCP_RX_BUF_LEN
+ #error ipconfigTCP_RX_BUF_LEN is now called ipconfigTCP_RX_BUFFER_LENGTH
+#endif
+
+#ifdef ipconfigTCP_TX_BUF_LEN
+ #error ipconfigTCP_TX_BUF_LEN is now called ipconfigTCP_TX_BUFFER_LENGTH
+#endif
+
+#ifdef ipconfigDHCP_USES_USER_HOOK
+ #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
+#endif
+
+#ifndef ipconfigUSE_TCP
+ #define ipconfigUSE_TCP ( 1 )
+#endif
+
+#if ipconfigUSE_TCP
+
+ /* Include support for TCP scaling windows */
+ #ifndef ipconfigUSE_TCP_WIN
+ #define ipconfigUSE_TCP_WIN ( 1 )
+ #endif
+
+ #ifndef ipconfigTCP_WIN_SEG_COUNT
+ #define ipconfigTCP_WIN_SEG_COUNT ( 256 )
+ #endif
+
+ #ifndef ipconfigIGNORE_UNKNOWN_PACKETS
+ /* When non-zero, TCP will not send RST packets in reply to
+ TCP packets which are unknown, or out-of-order. */
+ #define ipconfigIGNORE_UNKNOWN_PACKETS ( 0 )
+ #endif
+#endif
+
+/*
+ * For debuging/logging: check if the port number is used for telnet
+ * Some events will not be logged for telnet connections
+ * because it would produce logging about the transmission of the logging...
+ * This macro will only be used if FreeRTOS_debug_printf() is defined for logging
+ */
+#ifndef ipconfigTCP_MAY_LOG_PORT
+ #define ipconfigTCP_MAY_LOG_PORT(xPort) ( ( xPort ) != 23u )
+#endif
+
+
+#ifndef ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME
+ #define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME portMAX_DELAY
+#endif
+
+#ifndef ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME
+ #define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME portMAX_DELAY
+#endif
+
+
+#ifndef ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS
+ #define ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS pdMS_TO_TICKS( 500u )
+#endif
+
+#ifndef ipconfigDNS_SEND_BLOCK_TIME_TICKS
+ #define ipconfigDNS_SEND_BLOCK_TIME_TICKS pdMS_TO_TICKS( 500u )
+#endif
+/*
+ * FreeRTOS debug logging routine (proposal)
+ * The macro will be called in the printf() style. Users can define
+ * their own logging routine as:
+ *
+ * #define FreeRTOS_debug_printf( MSG ) my_printf MSG
+ *
+ * The FreeRTOS_debug_printf() must be thread-safe but does not have to be
+ * interrupt-safe.
+ */
+#ifdef ipconfigHAS_DEBUG_PRINTF
+ #if( ipconfigHAS_DEBUG_PRINTF == 0 )
+ #ifdef FreeRTOS_debug_printf
+ #error Do not define FreeRTOS_debug_print if ipconfigHAS_DEBUG_PRINTF is set to 0
+ #endif /* ifdef FreeRTOS_debug_printf */
+ #endif /* ( ipconfigHAS_DEBUG_PRINTF == 0 ) */
+#endif /* ifdef ipconfigHAS_DEBUG_PRINTF */
+
+#ifndef FreeRTOS_debug_printf
+ #define FreeRTOS_debug_printf( MSG ) do{} while(0)
+ #define ipconfigHAS_DEBUG_PRINTF 0
+#endif
+
+/*
+ * FreeRTOS general logging routine (proposal)
+ * Used in some utility functions such as FreeRTOS_netstat() and FreeRTOS_PrintARPCache()
+ *
+ * #define FreeRTOS_printf( MSG ) my_printf MSG
+ *
+ * The FreeRTOS_printf() must be thread-safe but does not have to be interrupt-safe
+ */
+#ifdef ipconfigHAS_PRINTF
+ #if( ipconfigHAS_PRINTF == 0 )
+ #ifdef FreeRTOS_printf
+ #error Do not define FreeRTOS_print if ipconfigHAS_PRINTF is set to 0
+ #endif /* ifdef FreeRTOS_debug_printf */
+ #endif /* ( ipconfigHAS_PRINTF == 0 ) */
+#endif /* ifdef ipconfigHAS_PRINTF */
+
+#ifndef FreeRTOS_printf
+ #define FreeRTOS_printf( MSG ) do{} while(0)
+ #define ipconfigHAS_PRINTF 0
+#endif
+
+/*
+ * In cases where a lot of logging is produced, FreeRTOS_flush_logging( )
+ * will be called to give the logging module a chance to flush the data
+ * An example of this is the netstat command, which produces many lines of logging
+ */
+#ifndef FreeRTOS_flush_logging
+ #define FreeRTOS_flush_logging( ) do{} while(0)
+#endif
+
+/* Malloc functions. Within most applications of FreeRTOS, the couple
+ * pvPortMalloc()/vPortFree() will be used.
+ * If there is also SDRAM, the user may decide to use a different memory
+ * allocator:
+ * MallocLarge is used to allocate large TCP buffers (for Rx/Tx)
+ * MallocSocket is used to allocate the space for the sockets
+ */
+#ifndef pvPortMallocLarge
+ #define pvPortMallocLarge( x ) pvPortMalloc( x )
+#endif
+
+#ifndef vPortFreeLarge
+ #define vPortFreeLarge(ptr) vPortFree(ptr)
+#endif
+
+#ifndef pvPortMallocSocket
+ #define pvPortMallocSocket( x ) pvPortMalloc( x )
+#endif
+
+#ifndef vPortFreeSocket
+ #define vPortFreeSocket(ptr) vPortFree(ptr)
+#endif
+
+/*
+ * At several places within the library, random numbers are needed:
+ * - DHCP: For creating a DHCP transaction number
+ * - TCP: Set the Initial Sequence Number: this is the value of the first outgoing
+ * sequence number being used when connecting to a peer.
+ * Having a well randomised ISN is important to avoid spoofing
+ * - UDP/TCP: for setting the first port number to be used, in case a socket
+ * uses a 'random' or anonymous port number
+ */
+#ifndef ipconfigRAND32
+ #define ipconfigRAND32() rand()
+#endif
+/* --------------------------------------------------------
+ * End of: HT Added some macro defaults for the PLUS-UDP project
+ * -------------------------------------------------------- */
+
+#ifndef ipconfigUSE_NETWORK_EVENT_HOOK
+ #define ipconfigUSE_NETWORK_EVENT_HOOK 0
+#endif
+
+#ifndef ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS
+ #define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( pdMS_TO_TICKS( 20 ) )
+#endif
+
+#ifndef ipconfigARP_CACHE_ENTRIES
+ #define ipconfigARP_CACHE_ENTRIES 10
+#endif
+
+#ifndef ipconfigMAX_ARP_RETRANSMISSIONS
+ #define ipconfigMAX_ARP_RETRANSMISSIONS ( 5u )
+#endif
+
+#ifndef ipconfigMAX_ARP_AGE
+ #define ipconfigMAX_ARP_AGE 150u
+#endif
+
+#ifndef ipconfigUSE_ARP_REVERSED_LOOKUP
+ #define ipconfigUSE_ARP_REVERSED_LOOKUP 0
+#endif
+
+#ifndef ipconfigUSE_ARP_REMOVE_ENTRY
+ #define ipconfigUSE_ARP_REMOVE_ENTRY 0
+#endif
+
+#ifndef ipconfigINCLUDE_FULL_INET_ADDR
+ #define ipconfigINCLUDE_FULL_INET_ADDR 1
+#endif
+
+#ifndef ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS
+ #define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS 45
+#endif
+
+#ifndef ipconfigEVENT_QUEUE_LENGTH
+ #define ipconfigEVENT_QUEUE_LENGTH ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )
+#endif
+
+#ifndef ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND
+ #define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1
+#endif
+
+#ifndef ipconfigUDP_TIME_TO_LIVE
+ #define ipconfigUDP_TIME_TO_LIVE 128
+#endif
+
+#ifndef ipconfigTCP_TIME_TO_LIVE
+ #define ipconfigTCP_TIME_TO_LIVE 128
+#endif
+
+#ifndef ipconfigUDP_MAX_RX_PACKETS
+ /* Make postive to define the maximum number of packets which will be buffered
+ * for each UDP socket.
+ * Can be overridden with the socket option FREERTOS_SO_UDP_MAX_RX_PACKETS
+ */
+ #define ipconfigUDP_MAX_RX_PACKETS 0u
+#endif
+
+#ifndef ipconfigUSE_DHCP
+ #define ipconfigUSE_DHCP 1
+#endif
+
+#ifndef ipconfigUSE_DHCP_HOOK
+ #define ipconfigUSE_DHCP_HOOK 0
+#endif
+
+#ifndef ipconfigDHCP_FALL_BACK_AUTO_IP
+ /*
+ * Only applicable when DHCP is in use:
+ * If no DHCP server responds, use "Auto-IP" : the
+ * device will allocate a random LinkLayer IP address.
+ */
+ #define ipconfigDHCP_FALL_BACK_AUTO_IP ( 0 )
+#endif
+
+#if( ipconfigDHCP_FALL_BACK_AUTO_IP != 0 )
+ #define ipconfigARP_USE_CLASH_DETECTION 1
+#endif
+
+#ifndef ipconfigARP_USE_CLASH_DETECTION
+ #define ipconfigARP_USE_CLASH_DETECTION 0
+#endif
+
+#ifndef ipconfigNETWORK_MTU
+ #define ipconfigNETWORK_MTU 1500
+#endif
+
+#ifndef ipconfigTCP_MSS
+ #define ipconfigTCP_MSS ( ipconfigNETWORK_MTU - ipSIZE_OF_IPv4_HEADER - ipSIZE_OF_TCP_HEADER )
+#endif
+
+/* Each TCP socket has circular stream buffers for Rx and Tx, which
+ * have a fixed maximum size.
+ * The defaults for these size are defined here, although
+ * they can be overridden at runtime by using the setsockopt() call */
+#ifndef ipconfigTCP_RX_BUFFER_LENGTH
+ #define ipconfigTCP_RX_BUFFER_LENGTH ( 4u * ipconfigTCP_MSS ) /* defaults to 5840 bytes */
+#endif
+
+/* Define the size of Tx stream buffer for TCP sockets */
+#ifndef ipconfigTCP_TX_BUFFER_LENGTH
+# define ipconfigTCP_TX_BUFFER_LENGTH ( 4u * ipconfigTCP_MSS ) /* defaults to 5840 bytes */
+#endif
+
+#ifndef ipconfigMAXIMUM_DISCOVER_TX_PERIOD
+ #ifdef _WINDOWS_
+ #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 999 ) )
+ #else
+ #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 30000 ) )
+ #endif /* _WINDOWS_ */
+#endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */
+
+#if( ipconfigUSE_DNS == 0 )
+ /* The DNS module will not be included. */
+ #if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )
+ /* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */
+ #error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined
+ #endif
+#endif
+
+#ifndef ipconfigUSE_DNS
+ #define ipconfigUSE_DNS 1
+#endif
+
+#ifndef ipconfigDNS_REQUEST_ATTEMPTS
+ #define ipconfigDNS_REQUEST_ATTEMPTS 5
+#endif
+
+#ifndef ipconfigUSE_DNS_CACHE
+ #define ipconfigUSE_DNS_CACHE 0
+#endif
+
+#if( ipconfigUSE_DNS_CACHE != 0 )
+ #ifndef ipconfigDNS_CACHE_NAME_LENGTH
+ /* Per https://tools.ietf.org/html/rfc1035, 253 is the maximum string length
+ of a DNS name. The following default accounts for a null terminator. */
+ #define ipconfigDNS_CACHE_NAME_LENGTH 254
+ #endif
+
+ #ifndef ipconfigDNS_CACHE_ENTRIES
+ #define ipconfigDNS_CACHE_ENTRIES 1
+ #endif
+#endif /* ipconfigUSE_DNS_CACHE != 0 */
+
+#ifndef ipconfigCHECK_IP_QUEUE_SPACE
+ #define ipconfigCHECK_IP_QUEUE_SPACE 0
+#endif
+
+#ifndef ipconfigUSE_LLMNR
+ /* Include support for LLMNR: Link-local Multicast Name Resolution (non-Microsoft) */
+ #define ipconfigUSE_LLMNR ( 0 )
+#endif
+
+#ifndef ipconfigREPLY_TO_INCOMING_PINGS
+ #define ipconfigREPLY_TO_INCOMING_PINGS 1
+#endif
+
+#ifndef ipconfigSUPPORT_OUTGOING_PINGS
+ #define ipconfigSUPPORT_OUTGOING_PINGS 0
+#endif
+
+#ifndef ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES
+ #define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1
+#endif
+
+#ifndef ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES
+ #define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES 1
+#endif
+
+#ifndef configINCLUDE_TRACE_RELATED_CLI_COMMANDS
+ #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS 0
+#else
+ #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS configINCLUDE_TRACE_RELATED_CLI_COMMANDS
+#endif
+
+#ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM
+ #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM ( 0 )
+#endif
+
+#ifndef ipconfigETHERNET_DRIVER_FILTERS_PACKETS
+ #define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 0 )
+#endif
+
+#ifndef ipconfigWATCHDOG_TIMER
+ /* This macro will be called in every loop the IP-task makes. It may be
+ replaced by user-code that triggers a watchdog */
+ #define ipconfigWATCHDOG_TIMER()
+#endif
+
+#ifndef ipconfigUSE_CALLBACKS
+ #define ipconfigUSE_CALLBACKS ( 0 )
+#endif
+
+#if( ipconfigUSE_CALLBACKS != 0 )
+ #ifndef ipconfigIS_VALID_PROG_ADDRESS
+ /* Replace this macro with a test returning non-zero if the memory pointer to by x
+ * is valid memory which can contain executable code
+ * In fact this is an extra safety measure: if a handler points to invalid memory,
+ * it will not be called
+ */
+ #define ipconfigIS_VALID_PROG_ADDRESS(x) ( ( x ) != NULL )
+ #endif
+#endif
+
+#ifndef ipconfigHAS_INLINE_FUNCTIONS
+ #define ipconfigHAS_INLINE_FUNCTIONS ( 1 )
+#endif
+
+#ifndef portINLINE
+ #define portINLINE inline
+#endif
+
+#ifndef ipconfigZERO_COPY_TX_DRIVER
+ /* When non-zero, the buffers passed to the SEND routine may be passed
+ to DMA. As soon as sending is ready, the buffers must be released by
+ calling vReleaseNetworkBufferAndDescriptor(), */
+ #define ipconfigZERO_COPY_TX_DRIVER ( 0 )
+#endif
+
+#ifndef ipconfigZERO_COPY_RX_DRIVER
+ /* This define doesn't mean much to the driver, except that it makes
+ sure that pxPacketBuffer_to_NetworkBuffer() will be included. */
+ #define ipconfigZERO_COPY_RX_DRIVER ( 0 )
+#endif
+
+#ifndef ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM
+ #define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0
+#endif
+
+#ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM
+ #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 0
+#endif
+
+#ifndef ipconfigDHCP_REGISTER_HOSTNAME
+ #define ipconfigDHCP_REGISTER_HOSTNAME 0
+#endif
+
+#ifndef ipconfigSOCKET_HAS_USER_SEMAPHORE
+ #define ipconfigSOCKET_HAS_USER_SEMAPHORE 0
+#endif
+
+#ifndef ipconfigSOCKET_HAS_USER_WAKE_CALLBACK
+ #define ipconfigSOCKET_HAS_USER_WAKE_CALLBACK 0
+#endif
+
+#ifndef ipconfigSUPPORT_SELECT_FUNCTION
+ #define ipconfigSUPPORT_SELECT_FUNCTION 0
+#endif
+
+#ifndef ipconfigTCP_KEEP_ALIVE
+ #define ipconfigTCP_KEEP_ALIVE 0
+#endif
+
+#ifndef ipconfigDNS_USE_CALLBACKS
+ #define ipconfigDNS_USE_CALLBACKS 0
+#endif
+
+#ifndef ipconfigSUPPORT_SIGNALS
+ #define ipconfigSUPPORT_SIGNALS 0
+#endif
+
+#ifndef ipconfigUSE_NBNS
+ #define ipconfigUSE_NBNS 0
+#endif
+
+/* As an attack surface reduction for ports that listen for inbound
+connections, hang protection can help reduce the impact of SYN floods. */
+#ifndef ipconfigTCP_HANG_PROTECTION
+ #define ipconfigTCP_HANG_PROTECTION 1
+#endif
+
+/* Non-activity timeout is expressed in seconds. */
+#ifndef ipconfigTCP_HANG_PROTECTION_TIME
+ #define ipconfigTCP_HANG_PROTECTION_TIME 30
+#endif
+
+#ifndef ipconfigTCP_IP_SANITY
+ #define ipconfigTCP_IP_SANITY 0
+#endif
+
+#ifndef ipconfigARP_STORES_REMOTE_ADDRESSES
+ #define ipconfigARP_STORES_REMOTE_ADDRESSES 0
+#endif
+
+#ifndef ipconfigBUFFER_PADDING
+ /* Expert option: define a value for 'ipBUFFER_PADDING'.
+ When 'ipconfigBUFFER_PADDING' equals 0,
+ 'ipBUFFER_PADDING' will get a default value of 8 + 2 bytes. */
+ #define ipconfigBUFFER_PADDING 0
+#endif
+
+#ifndef ipconfigPACKET_FILLER_SIZE
+ #define ipconfigPACKET_FILLER_SIZE 2
+#endif
+
+#endif /* FREERTOS_DEFAULT_IP_CONFIG_H */