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