Changes in V2.0.11 | |
+ Updates some drivers in the portable layer. | |
Changes between 160919 and 180821 releases: | |
+ Multiple security improvements and fixes in packet parsing routines, DNS | |
caching, and TCP sequence number and ID generation. | |
+ Disable NBNS and LLMNR by default. | |
+ Add TCP hang protection by default. | |
We thank Ori Karliner of Zimperium zLabs Team for reporting these issues. | |
+ Update FreeRTOS_gethostbyname() to allow an IP address to be passed in - | |
in which case it is just returned as a uint32_t. | |
+ Introduce ipconfigSOCKET_HAS_USER_WAKE_CALLBACK to FreeRTOS_Sockets.c to | |
allow a user supposed callback function to be executed when socket events | |
occur in the same way that the socket semaphore is currently used. | |
+ Update xNetworkBuffersInitialise() to ensure the semaphore created by the | |
function is not accessed until after the NULL check. | |
+ Improve print messages output by the Win32 port layer version of | |
prvPrintAvailableNetworkInterfaces(). | |
Changes between 160908 and 160919 releases: | |
+ Add a NULL check before attempting to close the DHCP socket. [Prior to | |
160823 the IP task closed the DHCP socket by calling a public API function | |
- which checked for the socket being NULL. This was changed to call a | |
local private function, which did not have a NULL check, in place of the | |
public API function.] | |
+ Various [internal only] naming changes to better comply with the FreeRTOS | |
naming conventions. | |
+ Improvements to the Zynq network driver. DMA transmission buffers now use | |
a counting semaphore. When all TX-buffers are in-use, the IP-task will | |
block momentarily until a TX-buffer becomes available. | |
+ Experimental implementation of the TCP window scaling protocol. The | |
scaling option will always be offered, at least with a factor 1. If the | |
TCP sliding window size becomes more than 64KB, the factor will increase | |
automatically. | |
+ ipconfigETHERNET_MINIMUM_PACKET_BYTES is now applied for every protocol: | |
TCP, UDP, and ARP. | |
+ Updated the Zynq project to use BufferAllocation_1.c rather than | |
BufferAllocation_2.c - which is a requirement with its current | |
configuration (due to the alignment requirements on the combined cache and | |
DMA configuration). | |
Changes between 160823 and 160908 releases: | |
+ Use ipconfigZERO_COPY_TX_DRIVER as the xReleaseAfterSend() parameter where | |
prvTCPReturnPacket() is called in prvSendData() to prevent unnecessary | |
copying of data. | |
+ Remove the use of the uxGetRxEventCount variable, which was used to give | |
priority to incoming messages, but could result in the IP task starving | |
application tasks of processing time. | |
Changes between 160112 and 160823 releases | |
NOTE: The 160908 release is a maintenance release for the 160112 single | |
interface labs release - not a release of the current development branch. | |
+ Various minor stability enhancements, including the ability to work with | |
configTICK_RATE_HZ set to less than 1KHz, closing DHCP sockets directly | |
rather than via FreeRTOS_closesocket(), and better handling of unknown | |
TCP packets before an IP address has been assigned. | |
+ ipBUFFER_PADDING is now configurable through the ipconfigBUFFER_PADDING | |
constant to improve network buffer alignment handling capabilities (expert | |
users/driver writers only). | |
+ Multiple improvements to the FTP server, including to how read only and | |
zero length files are handled. | |
+ ipconfigFTP_HAS_USER_PROPERTIES_HOOK (to allow each user to have a | |
different root directory and access rights) and | |
ipconfigHTTP_HAS_HANDLE_REQUEST_HOOK (to handle AJAX style data) | |
introduced, although these are not yet fully tested and the constant names | |
are likely to change. | |
+ Introduce ipconfigHAS_TX_CRC_OFFLOADING. | |
+ ipconfigUSE_DHCP_HOOK is now called ipconfigUSE_DHCP_HOOK, and the name | |
of the callback function has also changed. See the web documentation for | |
details. | |
+ ipconfigTCP_RX_BUF_LEN is now ipconfigTCP_RX_BUFFER_LENGTH, and | |
ipconfigTCP_TX_BUF_LEN is now ipconfigTCP_TX_BUFFER_LENGTH, which is | |
actually how they have always been documented. | |
+ Added example TFTP server capable of receiving (not sending) files. | |
Intended for bootloader type functionality. | |
+ Various variable name changes for consistency (mainly ensuring UDP, TCP, | |
DNS, etc. always use the same case letters, and type prefixes are correct). | |
+ Various minor edits to improve types used by internal variables. | |
+ Simplified mapping of standard library functions to their Visual Studio | |
equivalents. | |
+ Improve robustness of network drivers. | |
+ Introduce pxResizeNetworkBufferWithDescriptor(). | |
+ Removed obsolete FreeRTOSIPConfig.h constants from | |
FreeRTOSIPConfigDefaults.h. | |
+ Added additional asserts() - predominantly to catch incorrect structure | |
packing. | |
Changes between 160112 and 160111 releases | |
+ Updated the STM32 network driver so checksums are calculated by the | |
hardware. | |
+ Implemented a simple "quit" command in the TCP command console. | |
Changes between 150825 and 160111 releases | |
+ New device support: Demo applications and example drivers are provided | |
for Atmel SAM4E and ST STM32F4 microcontrollers. | |
+ Various updates to improve compliance with the FreeRTOS coding standard. | |
+ Added a command console example that uses TCP/IP for input and output (the | |
pre-existing command console example uses UDP/IP). | |
+ Updated the UDP logging example so it will send log messages to the local | |
UDP broadcast address if a specific IP address is not provided. This | |
simplifies configuration, but note not all switches and routers will pass | |
broadcast messages. | |
+ Add TCP echo client and TCP echo server examples to the Zynq demo. | |
+ Minor updates to the Zynq network driver. | |
+ Update the Zynq project to use version 2015.4 of the Xilinx SDK. | |
+ Introduce FreeRTOS_SignalSocket(), which can be used to interrupt a task | |
that is blocked while reading from a socket ( FreeRTOS_recv[from] ). | |
+ Make use of FreeRTOS_SignalSocket() in the FTP and HTTP servers. | |
+ Major updates to the NTP client, although this is not included in any of | |
the pre-configured demo applications yet. | |
+ Added support for DHCP zero pad option. | |
+ Added uxGetMinimumIPQueueSpace(), a function to monitor the minimum amount | |
of space on the message queue. | |
+ Better handling of zero length files in the FTP server. | |
+ Fixed a bug reported by Andrey Ivanov from swissEmbedded that affects | |
users of 'ipconfigZERO_COPY_TX_DRIVER'. | |
Changes between 150825 150825 (?) | |
+ Added xApplicationDHCPUserHook() so a user defined hook will be | |
called at certain points in the DHCP process if | |
ipconfigDHCP_USES_USER_HOOK is set to 1. | |
+ Added FreeRTOS_get_tx_head() to improve TCP zero copy behaviour - for | |
expert use only. | |
+ RST is no longer sent if only the ACK flag is set. | |
+ Previously, an immediate ACK was only sent when buffer space was | |
exhausted. Now, to improve performance, it is possible to send an | |
immediate ACK earlier - dependent on the ipconfigTCP_ACK_EARLIER_PACKET | |
setting. | |
+ LLMNR and NBNS requests can now be sent to locate other devices - | |
previously these protocols would only be replied to, not generated. | |
+ Added Auto-IP functionality (still in test) in case DHCP fails. Dependent | |
on the ipconfigDHCP_FALL_BACK_LINK_LAYER_ADDRESS and | |
ipconfigARP_USE_CLASH_DETECTION settings. | |
+ Added NTP code and demo. | |
+ FTP can now STOR and RETR zero-length files. | |
+ Added LLMNR demo to Win32 demo - so now the Win32 responds to | |
"ping RTOSDemo". | |
Changes between 141019 and 150825 | |
+ Added FTP server, which uses the new FreeRTOS+FAT component. | |
+ Added basic HTTP server, which uses the new FreeRTOS+FAT component. | |
+ Multiple definitions that are now common with FreeRTOS+FAT have been moved | |
into FreeRTOS's ProjDefs.h header file, and so prefixed with 'pd'. | |
+ Introduced ipconfigZERO_COPY_TX_DRIVER, which defines who is responsible | |
for freeing a buffer sent to to the MAC driver for transmission, and | |
facilitates the development of zero copy drivers. | |
+ Introduced the FREERTOS_MSG_DONTWAIT flag. The flag can be used as a | |
simpler and faster alternative to using FreeRTOS_setsockopt() to set the | |
send or receive timeout to 0. | |
+ A few functions that were previously all lower case are now mixed case, as | |
lower case function names are only used when they are equivalent to a | |
a Berkeley sockets API function of the same name. | |
+ Introduced uxGetMinimumFreeNetworkBuffers() to return the minimum number | |
of network buffers that have ever existed since the application started | |
executing. | |
+ Introduce ipconfigETHERNET_MINIMUM_PACKET_BYTES to allow the application | |
writer to set their own minimum buffer size should the hardware not be | |
capable of padding under-sized Ethernet frames. | |
+ vNetworkBufferRelease() renamed vReleaseNetworkBuffer() - just for | |
consistency with the names of other functions in the same file. | |
+ Grouped DHCP status data into a structure. | |
+ DHCP is now tried both with and without the broadcast flag. | |
+ Replaced occurrences of configASSERT_VOID() with configASSERT(). | |
+ ipconfigDNS_USE_CALLBACKS introduced to allow FreeRTOS_gethostbyname() to | |
be used without blocking. | |
+ Fix: LLMNR and NBNS behaviour when the reply is in a larger buffer than the | |
request, and BufferAllocation_2 was used. | |
+ Introduced ipMAX_IP_TASK_SLEEP_TIME to allow the application writer to | |
override the default value of 10 seconds. | |
+ Fix: Correct error in *pxUDPPayloadBuffer_to_NetworkBuffer(). | |
+ FreeRTOS_recv() now recognises the FREERTOS_ZERO_COPY flag, which, when | |
set, the void *pvBuffer parameter is interpreted as void **pvBuffer. | |
+ FreeRTOS_listen() now returns an error code. Previously it always | |
returned 0. | |
+ Fix: Previously if a listening socket was reused, and a connection | |
failed, the TCP/IP stack closed the socket, now the socket is correctly | |
left unclosed as it is owned by the application. | |
+ Various other formatting and minor fix alterations. |