]> git.sur5r.net Git - freertos/blob - FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/History.txt
Added +TCP code to main repo.
[freertos] / FreeRTOS-Plus / Source / FreeRTOS-Plus-TCP / History.txt
1 Changes since the 160112 release\r
2 \r
3 FTP : now has ipconfigFTP_HAS_USER_PROPERTIES_HOOK\r
4 Each user can be assigned a different root directory and different access rights.\r
5 Read-only access for FTP is now possible.\r
6 \r
7 Adapted to comply a bit more to MISRA rules.\r
8 The introduction of unsigned true/false, e.g. pdTRUE_UNSIGNED.\r
9 \r
10 'ipBUFFER_PADDING' now configurable (expert option).\r
11 \r
12 Added ipconfigFTP_HAS_USER_PROPERTIES_HOOK.\r
13 ipconfigHAS_TX_CRC_OFFLOADING\r
14 Improve support for read only file systems in the FTP server.\r
15 \r
16 Depending on priorities: FreeRTOS_accept() could fail if the priority of the application task is higher than the priority of the IP-task. Now with a higher priority FreeRTOS_accept() will still work correctly.\r
17 \r
18 Depending on the tick rate: A TCP socket could freeze (stop working) when the FreeRTOS tick rate was lower than 1,000 Hz. Now also tested with 100 Hz.\r
19 \r
20 When "ipconfigZERO_COPY_TX_DRIVER = 0", sometime xNetworkInterfaceOutput() was called to send out a small TCP ACK. The network buffer would refer to space on the TCP socket ("lastPacket"), which was not 8-byte aligned. Repaired: from now on the buffer will have a proper 8-byte alignment.\r
21 \r
22 "#if __cplusplus" is been replaced with the more proper test "#ifdef __cplusplus".\r
23 \r
24 \r
25 \r
26 These are the recent commits:\r
27 565 Initial check-in of +TCP/multi\r
28 566 LPC18xx : updated and re-tested the TCP and FAT drivers\r
29 569 +TCP : protocols: Added an installable application hook: "CheckDrivesHook"\r
30 570 +TCP : will now work properly when configTICK_RATE_HZ < 1000\r
31 571 +TCP : will now work properly when configTICK_RATE_HZ < 1000\r
32 572 +TCP : FreeRTOS_recvfrom now recognises "FREERTOS_MSG_PEEK"\r
33 573 +FAT : Zynq : writing may fail if it goes too fast. Introduced pauses but not yet satisfied\r
34 \r
35 \r
36 Changes between 160112 and 160111 releases\r
37 \r
38         + Updated the STM32 network driver so checksums are calculated by the\r
39           hardware.\r
40         + Implemented a simple "quit" command in the TCP command console.\r
41 \r
42 Changes between 150825 and 160111 releases\r
43 \r
44         + New device support:  Demo applications and example drivers are provided\r
45           for Atmel SAM4E and ST STM32F4 microcontrollers.\r
46         + Various updates to improve compliance with the FreeRTOS coding standard.\r
47         + Added a command console example that uses TCP/IP for input and output (the\r
48           pre-existing command console example uses UDP/IP).\r
49         + Updated the UDP logging example so it will send log messages to the local\r
50           UDP broadcast address if a specific IP address is not provided.  This\r
51           simplifies configuration, but note not all switches and routers will pass\r
52           broadcast messages.\r
53         + Add TCP echo client and TCP echo server examples to the Zynq demo.\r
54         + Minor updates to the Zynq network driver.\r
55         + Update the Zynq project to use version 2015.4 of the Xilinx SDK.\r
56         + Introduce FreeRTOS_SignalSocket(), which can be used to interrupt a task\r
57           that is blocked while reading from a socket ( FreeRTOS_recv[from] ).\r
58         + Make use of FreeRTOS_SignalSocket() in the FTP and HTTP servers.\r
59         + Major updates to the NTP client, although this is not included in any of\r
60           the pre-configured demo applications yet.\r
61         + Added support for DHCP zero pad option.\r
62         + Added uxGetMinimumIPQueueSpace(), a function to monitor the minimum amount\r
63           of space on the message queue.\r
64         + Better handling of zero length files in the FTP server.\r
65         + Fixed a bug reported by Andrey Ivanov from swissEmbedded that affects\r
66           users of 'ipconfigZERO_COPY_TX_DRIVER'.\r
67 \r
68 \r
69 Changes between 150825 150825 (?)\r
70 \r
71         + Added xApplicationDHCPUserHook() so a user defined hook will be\r
72           called at certain points in the DHCP process if\r
73           ipconfigDHCP_USES_USER_HOOK is set to 1.\r
74         + Added FreeRTOS_get_tx_head() to improve TCP zero copy behaviour - for\r
75           expert use only.\r
76         + RST is no longer sent if only the ACK flag is set.\r
77         + Previously, an immediate ACK was only sent when buffer space was\r
78           exhausted.  Now, to improve performance, it is possible to send an\r
79           immediate ACK earlier - dependent on the ipconfigTCP_ACK_EARLIER_PACKET\r
80           setting.\r
81         + LLMNR and NBNS requests can now be sent to locate other devices -\r
82           previously these protocols would only be replied to, not generated.\r
83         + Added Auto-IP functionality (still in test) in case DHCP fails.  Dependent\r
84           on the ipconfigDHCP_FALL_BACK_LINK_LAYER_ADDRESS and\r
85           ipconfigARP_USE_CLASH_DETECTION settings.\r
86         + Added NTP code and demo.\r
87         + FTP can now STOR and RETR zero-length files.\r
88         + Added LLMNR demo to Win32 demo - so now the Win32 responds to\r
89           "ping RTOSDemo".\r
90 \r
91 Changes between 141019 and 150825\r
92 \r
93         + Added FTP server, which uses the new FreeRTOS+FAT component.\r
94         + Added basic HTTP server, which uses the new FreeRTOS+FAT component.\r
95         + Multiple definitions that are now common with FreeRTOS+FAT have been moved\r
96           into FreeRTOS's ProjDefs.h header file, and so prefixed with 'pd'.\r
97         + Introduced ipconfigZERO_COPY_TX_DRIVER, which defines who is responsible\r
98           for freeing a buffer sent to to the MAC driver for transmission, and\r
99           facilitates the development of zero copy drivers.\r
100         + Introduced the FREERTOS_MSG_DONTWAIT flag.  The flag can be used as a\r
101           simpler and faster alternative to using FreeRTOS_setsockopt() to set the\r
102           send or receive timeout to 0.\r
103         + A few functions that were previously all lower case are now mixed case, as\r
104           lower case function names are only used when they are equivalent to a\r
105           a Berkeley sockets API function of the same name.\r
106         + Introduced uxGetMinimumFreeNetworkBuffers() to return the minimum number\r
107           of network buffers that have ever existed since the application started\r
108           executing.\r
109         + Introduce ipconfigETHERNET_MINIMUM_PACKET_BYTES to allow the application\r
110           writer to set their own minimum buffer size should the hardware not be\r
111           capable of padding under-sized Ethernet frames.\r
112         + vNetworkBufferRelease() renamed vReleaseNetworkBuffer() - just for\r
113           consistency with the names of other functions in the same file.\r
114         + Grouped DHCP status data into a structure.\r
115         + DHCP is now tried both with and without the broadcast flag.\r
116         + Replaced occurrences of configASSERT_VOID() with configASSERT().\r
117         + ipconfigDNS_USE_CALLBACKS introduced to allow FreeRTOS_gethostbyname() to\r
118           be used without blocking.\r
119         + Fix: LLMNR and NBNS behaviour when the reply is in a larger buffer than the\r
120           request, and BufferAllocation_2 was used.\r
121         + Introduced ipMAX_IP_TASK_SLEEP_TIME to allow the application writer to\r
122           override the default value of 10 seconds.\r
123         + Fix:  Correct error in *pxUDPPayloadBuffer_to_NetworkBuffer().\r
124         + FreeRTOS_recv() now recognises the FREERTOS_ZERO_COPY flag, which, when\r
125           set, the void *pvBuffer parameter is interpreted as void **pvBuffer.\r
126         + FreeRTOS_listen() now returns an error code.  Previously it always\r
127           returned 0.\r
128         + Fix:  Previously if a listening socket was reused, and a connection\r
129           failed, the TCP/IP stack closed the socket, now the socket is correctly\r
130           left unclosed as it is owned by the application.\r
131         + Various other formatting and minor fix alterations.