]> git.sur5r.net Git - freertos/blob - FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/History.txt
07ad698a21a3875837002c25f6d1f1dc15b92e54
[freertos] / FreeRTOS-Plus / Source / FreeRTOS-Plus-TCP / History.txt
1 Changes in V2.0.11\r
2 \r
3         + Updates some drivers in the portable layer.\r
4 \r
5 Changes between 160919 and 180821 releases:\r
6 \r
7         + Multiple security improvements and fixes in packet parsing routines, DNS\r
8           caching, and TCP sequence number and ID generation.\r
9         + Disable NBNS and LLMNR by default.\r
10         + Add TCP hang protection by default.\r
11 \r
12         We thank Ori Karliner of Zimperium zLabs Team for reporting these issues.\r
13 \r
14         + Update FreeRTOS_gethostbyname() to allow an IP address to be passed in -\r
15           in which case it is just returned as a uint32_t.\r
16         + Introduce ipconfigSOCKET_HAS_USER_WAKE_CALLBACK to FreeRTOS_Sockets.c to\r
17           allow a user supposed callback function to be executed when socket events\r
18           occur in the same way that the socket semaphore is currently used.\r
19         + Update xNetworkBuffersInitialise() to ensure the semaphore created by the\r
20           function is not accessed until after the NULL check.\r
21         + Improve print messages output by the Win32 port layer version of\r
22           prvPrintAvailableNetworkInterfaces().\r
23 \r
24 Changes between 160908 and 160919 releases:\r
25 \r
26         + Add a NULL check before attempting to close the DHCP socket.  [Prior to\r
27           160823 the IP task closed the DHCP socket by calling a public API function\r
28           - which checked for the socket being NULL.  This was changed to call a\r
29           local private function, which did not have a NULL check, in place of the\r
30           public API function.]\r
31         + Various [internal only] naming changes to better comply with the FreeRTOS\r
32           naming conventions.\r
33         + Improvements to the Zynq network driver.  DMA transmission buffers now use\r
34           a counting semaphore. When all TX-buffers are in-use, the IP-task will\r
35           block momentarily until a TX-buffer becomes available.\r
36         + Experimental implementation of the TCP window scaling protocol.  The\r
37           scaling option will always be offered, at least with a factor 1. If the\r
38           TCP sliding window size becomes more than 64KB, the factor will increase\r
39           automatically.\r
40         + ipconfigETHERNET_MINIMUM_PACKET_BYTES is now applied for every protocol:\r
41           TCP, UDP, and ARP.\r
42         + Updated the Zynq project to use BufferAllocation_1.c rather than\r
43           BufferAllocation_2.c - which is a requirement with its current\r
44           configuration (due to the alignment requirements on the combined cache and\r
45           DMA configuration).\r
46 \r
47 Changes between 160823 and 160908 releases:\r
48 \r
49         + Use ipconfigZERO_COPY_TX_DRIVER as the xReleaseAfterSend() parameter where\r
50           prvTCPReturnPacket() is called in prvSendData() to prevent unnecessary\r
51           copying of data.\r
52         + Remove the use of the uxGetRxEventCount variable, which was used to give\r
53           priority to incoming messages, but could result in the IP task starving\r
54           application tasks of processing time.\r
55 \r
56 Changes between 160112 and 160823 releases\r
57 \r
58         NOTE:  The 160908 release is a maintenance release for the 160112 single\r
59         interface labs release - not a release of the current development branch.\r
60 \r
61         + Various minor stability enhancements, including the ability to work with\r
62           configTICK_RATE_HZ set to less than 1KHz, closing DHCP sockets directly\r
63           rather than via FreeRTOS_closesocket(), and better handling of unknown\r
64           TCP packets before an IP address has been assigned.\r
65         + ipBUFFER_PADDING is now configurable through the ipconfigBUFFER_PADDING\r
66           constant to improve network buffer alignment handling capabilities (expert\r
67           users/driver writers only).\r
68         + Multiple improvements to the FTP server, including to how read only and\r
69           zero length files are handled.\r
70         + ipconfigFTP_HAS_USER_PROPERTIES_HOOK (to allow each user to have a\r
71           different root directory and access rights) and\r
72           ipconfigHTTP_HAS_HANDLE_REQUEST_HOOK (to handle AJAX style data)\r
73           introduced, although these are not yet fully tested and the constant names\r
74           are likely to change.\r
75         + Introduce ipconfigHAS_TX_CRC_OFFLOADING.\r
76         + ipconfigUSE_DHCP_HOOK is now called ipconfigUSE_DHCP_HOOK, and the name\r
77           of the callback function has also changed.  See the web documentation for\r
78           details.\r
79         + ipconfigTCP_RX_BUF_LEN is now ipconfigTCP_RX_BUFFER_LENGTH, and\r
80           ipconfigTCP_TX_BUF_LEN is now ipconfigTCP_TX_BUFFER_LENGTH, which is\r
81           actually how they have always been documented.\r
82         + Added example TFTP server capable of receiving (not sending) files.\r
83           Intended for bootloader type functionality.\r
84         + Various variable name changes for consistency (mainly ensuring UDP, TCP,\r
85           DNS, etc. always use the same case letters, and type prefixes are correct).\r
86         + Various minor edits to improve types used by internal variables.\r
87         + Simplified mapping of standard library functions to their Visual Studio\r
88           equivalents.\r
89         + Improve robustness of network drivers.\r
90         + Introduce pxResizeNetworkBufferWithDescriptor().\r
91         + Removed obsolete FreeRTOSIPConfig.h constants from\r
92           FreeRTOSIPConfigDefaults.h.\r
93         + Added additional asserts() - predominantly to catch incorrect structure\r
94           packing.\r
95 \r
96 Changes between 160112 and 160111 releases\r
97 \r
98         + Updated the STM32 network driver so checksums are calculated by the\r
99           hardware.\r
100         + Implemented a simple "quit" command in the TCP command console.\r
101 \r
102 Changes between 150825 and 160111 releases\r
103 \r
104         + New device support:  Demo applications and example drivers are provided\r
105           for Atmel SAM4E and ST STM32F4 microcontrollers.\r
106         + Various updates to improve compliance with the FreeRTOS coding standard.\r
107         + Added a command console example that uses TCP/IP for input and output (the\r
108           pre-existing command console example uses UDP/IP).\r
109         + Updated the UDP logging example so it will send log messages to the local\r
110           UDP broadcast address if a specific IP address is not provided.  This\r
111           simplifies configuration, but note not all switches and routers will pass\r
112           broadcast messages.\r
113         + Add TCP echo client and TCP echo server examples to the Zynq demo.\r
114         + Minor updates to the Zynq network driver.\r
115         + Update the Zynq project to use version 2015.4 of the Xilinx SDK.\r
116         + Introduce FreeRTOS_SignalSocket(), which can be used to interrupt a task\r
117           that is blocked while reading from a socket ( FreeRTOS_recv[from] ).\r
118         + Make use of FreeRTOS_SignalSocket() in the FTP and HTTP servers.\r
119         + Major updates to the NTP client, although this is not included in any of\r
120           the pre-configured demo applications yet.\r
121         + Added support for DHCP zero pad option.\r
122         + Added uxGetMinimumIPQueueSpace(), a function to monitor the minimum amount\r
123           of space on the message queue.\r
124         + Better handling of zero length files in the FTP server.\r
125         + Fixed a bug reported by Andrey Ivanov from swissEmbedded that affects\r
126           users of 'ipconfigZERO_COPY_TX_DRIVER'.\r
127 \r
128 \r
129 Changes between 150825 150825 (?)\r
130 \r
131         + Added xApplicationDHCPUserHook() so a user defined hook will be\r
132           called at certain points in the DHCP process if\r
133           ipconfigDHCP_USES_USER_HOOK is set to 1.\r
134         + Added FreeRTOS_get_tx_head() to improve TCP zero copy behaviour - for\r
135           expert use only.\r
136         + RST is no longer sent if only the ACK flag is set.\r
137         + Previously, an immediate ACK was only sent when buffer space was\r
138           exhausted.  Now, to improve performance, it is possible to send an\r
139           immediate ACK earlier - dependent on the ipconfigTCP_ACK_EARLIER_PACKET\r
140           setting.\r
141         + LLMNR and NBNS requests can now be sent to locate other devices -\r
142           previously these protocols would only be replied to, not generated.\r
143         + Added Auto-IP functionality (still in test) in case DHCP fails.  Dependent\r
144           on the ipconfigDHCP_FALL_BACK_LINK_LAYER_ADDRESS and\r
145           ipconfigARP_USE_CLASH_DETECTION settings.\r
146         + Added NTP code and demo.\r
147         + FTP can now STOR and RETR zero-length files.\r
148         + Added LLMNR demo to Win32 demo - so now the Win32 responds to\r
149           "ping RTOSDemo".\r
150 \r
151 Changes between 141019 and 150825\r
152 \r
153         + Added FTP server, which uses the new FreeRTOS+FAT component.\r
154         + Added basic HTTP server, which uses the new FreeRTOS+FAT component.\r
155         + Multiple definitions that are now common with FreeRTOS+FAT have been moved\r
156           into FreeRTOS's ProjDefs.h header file, and so prefixed with 'pd'.\r
157         + Introduced ipconfigZERO_COPY_TX_DRIVER, which defines who is responsible\r
158           for freeing a buffer sent to to the MAC driver for transmission, and\r
159           facilitates the development of zero copy drivers.\r
160         + Introduced the FREERTOS_MSG_DONTWAIT flag.  The flag can be used as a\r
161           simpler and faster alternative to using FreeRTOS_setsockopt() to set the\r
162           send or receive timeout to 0.\r
163         + A few functions that were previously all lower case are now mixed case, as\r
164           lower case function names are only used when they are equivalent to a\r
165           a Berkeley sockets API function of the same name.\r
166         + Introduced uxGetMinimumFreeNetworkBuffers() to return the minimum number\r
167           of network buffers that have ever existed since the application started\r
168           executing.\r
169         + Introduce ipconfigETHERNET_MINIMUM_PACKET_BYTES to allow the application\r
170           writer to set their own minimum buffer size should the hardware not be\r
171           capable of padding under-sized Ethernet frames.\r
172         + vNetworkBufferRelease() renamed vReleaseNetworkBuffer() - just for\r
173           consistency with the names of other functions in the same file.\r
174         + Grouped DHCP status data into a structure.\r
175         + DHCP is now tried both with and without the broadcast flag.\r
176         + Replaced occurrences of configASSERT_VOID() with configASSERT().\r
177         + ipconfigDNS_USE_CALLBACKS introduced to allow FreeRTOS_gethostbyname() to\r
178           be used without blocking.\r
179         + Fix: LLMNR and NBNS behaviour when the reply is in a larger buffer than the\r
180           request, and BufferAllocation_2 was used.\r
181         + Introduced ipMAX_IP_TASK_SLEEP_TIME to allow the application writer to\r
182           override the default value of 10 seconds.\r
183         + Fix:  Correct error in *pxUDPPayloadBuffer_to_NetworkBuffer().\r
184         + FreeRTOS_recv() now recognises the FREERTOS_ZERO_COPY flag, which, when\r
185           set, the void *pvBuffer parameter is interpreted as void **pvBuffer.\r
186         + FreeRTOS_listen() now returns an error code.  Previously it always\r
187           returned 0.\r
188         + Fix:  Previously if a listening socket was reused, and a connection\r
189           failed, the TCP/IP stack closed the socket, now the socket is correctly\r
190           left unclosed as it is owned by the application.\r
191         + Various other formatting and minor fix alterations.