mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-22 23:28:06 +08:00
625 lines
19 KiB
C
625 lines
19 KiB
C
|
/*
|
||
|
* FreeRTOS+TCP V2.3.2
|
||
|
* Copyright (C) 2020 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. */
|
||
|
|
||
|
/* These macros are used to define away static keyword for CBMC proofs */
|
||
|
#ifndef _static
|
||
|
#define _static static
|
||
|
#endif
|
||
|
|
||
|
/* 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 superseded - 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 /* if ipconfigUSE_TCP */
|
||
|
|
||
|
/*
|
||
|
* For debugging/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( 5000U )
|
||
|
#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( ipFALSE_BOOL )
|
||
|
#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( ipFALSE_BOOL )
|
||
|
#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( ipFALSE_BOOL )
|
||
|
#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 randomized 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( 20U ) )
|
||
|
#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 ipconfigUSE_LINKED_RX_MESSAGES
|
||
|
#define ipconfigUSE_LINKED_RX_MESSAGES 0
|
||
|
#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
|
||
|
|
||
|
/* Configuration to control whether packets with IP options,
|
||
|
* received over the network, should be passed up to the
|
||
|
* software stack OR should be dropped.
|
||
|
* If set to 1, the stack accepts IP packets that contain IP options, but does
|
||
|
* not process the options (IP options are not supported).
|
||
|
* If set to 0, the stack will drop IP packets that contain IP options.
|
||
|
*/
|
||
|
#ifndef ipconfigIP_PASS_PACKETS_WITH_IP_OPTIONS
|
||
|
#define ipconfigIP_PASS_PACKETS_WITH_IP_OPTIONS 1
|
||
|
#endif
|
||
|
|
||
|
/* Configuration to control whether UDP packets with
|
||
|
* checksum value of zero should be passed up the software
|
||
|
* stack OR should be dropped.
|
||
|
* If set to 1, the stack will accept UDP packets that have their checksum
|
||
|
* value set to 0.
|
||
|
* If set to 0, the stack will drop UDP packets that have their checksum value
|
||
|
* set to 0.
|
||
|
*/
|
||
|
#ifndef ipconfigUDP_PASS_ZERO_CHECKSUM_PACKETS
|
||
|
#define ipconfigUDP_PASS_ZERO_CHECKSUM_PACKETS 0
|
||
|
#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 positive 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( 999U ) )
|
||
|
#else
|
||
|
#define ipconfigMAXIMUM_DISCOVER_TX_PERIOD ( pdMS_TO_TICKS( 30000U ) )
|
||
|
#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 254U
|
||
|
#endif
|
||
|
|
||
|
#ifndef ipconfigDNS_CACHE_ENTRIES
|
||
|
#define ipconfigDNS_CACHE_ENTRIES 1
|
||
|
#endif
|
||
|
|
||
|
#endif /* ipconfigUSE_DNS_CACHE != 0 */
|
||
|
|
||
|
/* When accessing services which have multiple IP addresses, setting this
|
||
|
* greater than 1 can improve reliability by returning different IP address
|
||
|
* answers on successive calls to FreeRTOS_gethostbyname(). */
|
||
|
#ifndef ipconfigDNS_CACHE_ADDRESSES_PER_ENTRY
|
||
|
#define ipconfigDNS_CACHE_ADDRESSES_PER_ENTRY 1
|
||
|
#endif
|
||
|
|
||
|
#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 30U
|
||
|
#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 0U
|
||
|
#endif
|
||
|
|
||
|
#ifndef ipconfigPACKET_FILLER_SIZE
|
||
|
#define ipconfigPACKET_FILLER_SIZE 2U
|
||
|
#endif
|
||
|
|
||
|
#ifndef ipconfigSELECT_USES_NOTIFY
|
||
|
#define ipconfigSELECT_USES_NOTIFY 0
|
||
|
#endif
|
||
|
|
||
|
#endif /* FREERTOS_DEFAULT_IP_CONFIG_H */
|