X-Git-Url: https://git.sur5r.net/?p=freertos;a=blobdiff_plain;f=FreeRTOS-Plus%2FSource%2FFreeRTOS-Plus-TCP%2FHistory.txt;fp=FreeRTOS-Plus%2FSource%2FFreeRTOS-Plus-TCP%2FHistory.txt;h=0bbfaa505fd7bbea87c5264e78b5b4168a21cc77;hp=52565cc86b814329943427fbd6882b79f0e85d90;hb=b15dfacb6026af3b0ba697e5753844923b468d2b;hpb=4334233a064299a09d167a497889d3860932a587 diff --git a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/History.txt b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/History.txt index 52565cc86..0bbfaa505 100644 --- a/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/History.txt +++ b/FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/History.txt @@ -1,177 +1,177 @@ -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. - -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. +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. + +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.