You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
578 lines
18 KiB
C
578 lines
18 KiB
C
/*
|
|
* FreeRTOS+TCP Labs Build 160919 (C) 2016 Real Time Engineers ltd.
|
|
* Authors include Hein Tibosch and Richard Barry
|
|
*
|
|
*******************************************************************************
|
|
***** NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ***
|
|
*** ***
|
|
*** ***
|
|
*** FREERTOS+TCP IS STILL IN THE LAB (mainly because the FTP and HTTP ***
|
|
*** demos have a dependency on FreeRTOS+FAT, which is only in the Labs ***
|
|
*** download): ***
|
|
*** ***
|
|
*** FreeRTOS+TCP is functional and has been used in commercial products ***
|
|
*** for some time. Be aware however that we are still refining its ***
|
|
*** design, the source code does not yet quite conform to the strict ***
|
|
*** coding and style standards mandated by Real Time Engineers ltd., and ***
|
|
*** the documentation and testing is not necessarily complete. ***
|
|
*** ***
|
|
*** PLEASE REPORT EXPERIENCES USING THE SUPPORT RESOURCES FOUND ON THE ***
|
|
*** URL: http://www.FreeRTOS.org/contact Active early adopters may, at ***
|
|
*** the sole discretion of Real Time Engineers Ltd., be offered versions ***
|
|
*** under a license other than that described below. ***
|
|
*** ***
|
|
*** ***
|
|
***** NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ******* NOTE ***
|
|
*******************************************************************************
|
|
*
|
|
* FreeRTOS+TCP can be used under two different free open source licenses. The
|
|
* license that applies is dependent on the processor on which FreeRTOS+TCP is
|
|
* executed, as follows:
|
|
*
|
|
* If FreeRTOS+TCP is executed on one of the processors listed under the Special
|
|
* License Arrangements heading of the FreeRTOS+TCP license information web
|
|
* page, then it can be used under the terms of the FreeRTOS Open Source
|
|
* License. If FreeRTOS+TCP is used on any other processor, then it can be used
|
|
* under the terms of the GNU General Public License V2. Links to the relevant
|
|
* licenses follow:
|
|
*
|
|
* The FreeRTOS+TCP License Information Page: http://www.FreeRTOS.org/tcp_license
|
|
* The FreeRTOS Open Source License: http://www.FreeRTOS.org/license
|
|
* The GNU General Public License Version 2: http://www.FreeRTOS.org/gpl-2.0.txt
|
|
*
|
|
* FreeRTOS+TCP is distributed in the hope that it will be useful. You cannot
|
|
* use FreeRTOS+TCP unless you agree that you use the software 'as is'.
|
|
* FreeRTOS+TCP is provided WITHOUT ANY WARRANTY; without even the implied
|
|
* warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. Real Time Engineers Ltd. disclaims all conditions and terms, be they
|
|
* implied, expressed, or statutory.
|
|
*
|
|
* 1 tab == 4 spaces!
|
|
*
|
|
* http://www.FreeRTOS.org
|
|
* http://www.FreeRTOS.org/plus
|
|
* http://www.FreeRTOS.org/labs
|
|
*
|
|
*/
|
|
|
|
#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
|
|
|
|
/*
|
|
* 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 */
|
|
|
|
#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
|
|
#define ipconfigDNS_CACHE_NAME_LENGTH ( 16 )
|
|
#endif
|
|
|
|
#ifndef ipconfigDNS_CACHE_ENTRIES
|
|
#define ipconfigDNS_CACHE_ENTRIES 0
|
|
#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
|
|
|
|
#if( !defined( ipconfigUSE_DNS ) )
|
|
#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 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 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
|
|
|
|
#ifndef ipconfigTCP_HANG_PROTECTION
|
|
#define ipconfigTCP_HANG_PROTECTION 0
|
|
#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 */
|