]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lwip.git/blob - CHANGELOG
Updated texts to reflect move to http://savannah.nongnu.org/projects/lwip/
[pes-rpp/rpp-lwip.git] / CHANGELOG
1 Changelog that precedes the move to Savannah:
2
3 (0.5.3) Changes since version 0.5.2
4
5   ++ Bugfixes:
6
7   * memp_malloc(MEMP_API_MSG) could fail with multiple application
8     threads because it wasn't protected by semaphores.
9
10   ++ Other changes:
11
12   * struct ip_addr now packed.
13
14   * The name of the time variable in arp.c has been changed to ctime
15     to avoid conflicts with the time() function.
16
17 (0.5.2) Changes since version 0.5.1
18
19   ++ New features:
20
21   * A new TCP function, tcp_tmr(), now handles both TCP timers.
22
23   ++ Bugfixes:
24
25   * A bug in tcp_parseopt() could cause the stack to hang because of a
26     malformed TCP option.
27
28   * The address of new connections in the accept() function in the BSD
29     socket library was not handled correctly.
30
31   * pbuf_dechain() did not update the ->tot_len field of the tail.
32
33   * Aborted TCP connections were not handled correctly in all
34     situations. 
35
36   ++ Other changes:
37
38   * All protocol header structs are now packed.
39
40   * The ->len field in the tcp_seg structure now counts the actual
41     amount of data, and does not add one for SYN and FIN segments.
42     
43 (0.5.1) Changes since version 0.5.0
44
45   ++ New features:
46
47   * Possible to run as a user process under Linux.
48
49   * Preliminary support for cross platform packed structs.
50
51   * ARP timer now implemented.
52   
53   ++ Bugfixes:
54
55   * TCP output queue length was badly initialized when opening
56     connections.
57
58   * TCP delayed ACKs were not sent correctly.
59   
60   * Explicit initialization of BSS segment variables.
61   
62   * read() in BSD socket library could drop data.
63
64   * Problems with memory alignment.
65
66   * Situations when all TCP buffers were used could lead to
67     starvation.
68
69   * TCP MSS option wasn't parsed correctly.
70
71   * Problems with UDP checksum calculation.
72
73   * IP multicast address tests had endianess problems.
74
75   * ARP requests had wrong destination hardware address. 
76
77   ++ Other changes:
78
79   * struct eth_addr changed from u16_t[3] array to u8_t[6].
80
81   * A ->linkoutput() member was added to struct netif.
82
83   * TCP and UDP ->dest_* struct members where changed to ->remote_*.
84
85   * ntoh* macros are now null definitions for big endian CPUs. 
86   
87 (0.5.0) Changes since version 0.4.2
88
89   ++ New features:
90
91   * Redesigned operating system emulation layer to make porting easier.
92
93   * Better control over TCP output buffers.
94     
95   * Documenation added.
96   
97   ++ Bugfixes:
98
99   * Locking issues in buffer management.
100
101   * Bugfixes in the sequential API.
102
103   * IP forwarding could cause memory leakage. This has been fixed.
104
105   ++ Other changes:
106
107   * Directory structure somewhat changed; the core/ tree has been
108     collapsed.
109   
110 (0.4.2) Changes since version 0.4.1
111
112   ++ New features:
113
114   * Experimental ARP implementation added.
115
116   * Skeleton Ethernet driver added.
117
118   * Experimental BSD socket API library added.
119
120   ++ Bugfixes:
121
122   * In very intense situations, memory leakage could occur. This has
123     been fixed.
124
125   ++ Other changes:
126
127   * Variables named "data" and "code" have been renamed in order to
128     avoid name conflicts in certain compilers.
129
130   * Variable++ have in appliciable cases been translated to ++variable
131     since some compilers generate better code in the latter case.
132     
133 (0.4.1) Changes since version 0.4
134
135   ++ New features:
136
137   * TCP: Connection attempts time out earlier than data
138     transmissions. Nagle algorithm implemented. Push flag set on the
139     last segment in a burst.
140
141   * UDP: experimental support for UDP-Lite extensions.
142
143   ++ Bugfixes:
144     
145   * TCP: out of order segments were in some cases handled incorrectly,
146     and this has now been fixed. Delayed acknowledgements was broken
147     in 0.4, has now been fixed. Binding to an address that is in use
148     now results in an error. Reset connections sometimes hung an
149     application; this has been fixed. 
150
151   * Checksum calculation sometimes failed for chained pbufs with odd
152     lengths. This has been fixed.
153     
154   * API: a lot of bug fixes in the API. The UDP API has been improved
155     and tested. Error reporting and handling has been
156     improved. Logical flaws and race conditions for incoming TCP
157     connections has been found and removed. 
158  
159   * Memory manager: alignment issues. Reallocating memory sometimes
160     failed, this has been fixed.
161
162   * Generic library: bcopy was flawed and has been fixed. 
163
164   ++ Other changes:
165   
166   * API: all datatypes has been changed from generic ones such as
167     ints, to specified ones such as u16_t. Functions that return
168     errors now have the correct type (err_t).
169   
170   * General: A lot of code cleaned up and debugging code removed. Many
171     portability issues have been fixed.
172
173   * The license was changed; the advertising clause was removed. 
174
175   * C64 port added.
176
177   * Thanks: Huge thanks go to Dagan Galarneau, Horst Garnetzke, Petri
178     Kosunen, Mikael Caleres, and Frits Wilmink for reporting and
179     fixing bugs!
180   
181 (0.4) Changes since version 0.3.1
182
183   * Memory management has been radically changed; instead of
184     allocating memory from a shared heap, memory for objects that are
185     rapidly allocated and deallocated is now kept in pools. Allocation
186     and deallocation from those memory pools is very fast. The shared
187     heap is still present but is used less frequently.
188     
189   * The memory, memory pool, and packet buffer subsystems now support
190     4-, 2-, or 1-byte alignment.
191
192   * "Out of memory" situations are handled in a more robust way.
193  
194   * Stack usage has been reduced.
195     
196   * Easier configuration of lwIP parameters such as memory usage,
197     TTLs, statistics gathering, etc. All configuration parameters are
198     now kept in a single header file "lwipopts.h".
199
200   * The directory structure has been changed slightly so that all
201     architecture specific files are kept under the src/arch
202     hierarchy.
203
204   * Error propagation has been improved, both in the protocol modules
205     and in the API.
206
207   * The code for the RTXC architecture has been implemented, tested
208     and put to use.
209     
210   * Bugs have been found and corrected in the TCP, UDP, IP, API, and
211     the Internet checksum modules.
212
213   * Bugs related to porting between a 32-bit and a 16-bit architecture
214     have been found and corrected.
215
216   * The license has been changed slightly to conform more with the
217     original BSD license, including the advertisement clause.
218   
219 (0.3.1) Changes since version 0.3
220
221   * Fix of a fatal bug in the buffer management. Pbufs with allocated
222     RAM never returned the RAM when the pbuf was deallocated.
223
224   * TCP congestion control, window updates and retransmissions did not
225     work correctly. This has now been fixed.
226
227   * Bugfixes in the API.
228
229 (0.3) Changes since version 0.2
230
231   * New and improved directory structure. All include files are now
232     kept in a dedicated include/ directory.
233
234   * The API now has proper error handling. A new function,
235     netconn_err(), now returns an error code for the connection in
236     case of errors.
237
238   * Improvements in the memory management subsystem. The system now
239     keeps a pointer to the lowest free memory block. A new function,
240     mem_malloc2() tries to allocate memory once, and if it fails tries
241     to free some memory and retry the allocation.
242
243   * Much testing has been done with limited memory
244     configurations. lwIP now does a better job when overloaded. 
245
246   * Some bugfixes and improvements to the buffer (pbuf) subsystem.
247     
248   * Many bugfixes in the TCP code:
249
250     - Fixed a bug in tcp_close().
251
252     - The TCP receive window was incorrectly closed when out of
253       sequence segments was received. This has been fixed.
254
255     - Connections are now timed-out of the FIN-WAIT-2 state.
256
257     - The initial congestion window could in some cases be too
258       large. This has been fixed.
259
260     - The retransmission queue could in some cases be screwed up. This
261       has been fixed.
262
263     - TCP RST flag now handled correctly.
264
265     - Out of sequence data was in some cases never delivered to the
266       application. This has been fixed.
267
268     - Retransmitted segments now contain the correct acknowledgment
269       number and advertised window.
270
271     - TCP retransmission timeout backoffs are not correctly computed
272       (ala BSD). After a number of retransmissions, TCP now gives up
273       the connection.
274       
275   * TCP connections now are kept on three lists, one for active
276     connections, one for listening connections, and one for
277     connections that are in TIME-WAIT. This greatly speeds up the fast
278     timeout processing for sending delayed ACKs.
279   
280   * TCP now provides proper feedback to the application when a
281     connection has been successfully set up.
282   
283   * More comments have been added to the code. The code has also been
284     somewhat cleaned up.
285
286 (0.2) Initial public release.