VirtualBox

source: vbox/trunk/src/VBox/Devices/Network/lwip/CHANGELOG@ 18235

Last change on this file since 18235 was 17797, checked in by vboxsync, 16 years ago

OSE: export INIP feature for use with iSCSI

  • Property svn:eol-style set to native
File size: 22.8 KB
Line 
1FUTURE
2
3 * TODO: The lwIP source code makes some invalid assumptions on processor
4 word-length, storage sizes and alignment. See the mailing lists for
5 problems with exoteric (/DSP) architectures showing these problems.
6 We still have to fix some of these issues neatly.
7
8 * TODO: the ARP layer is not protected against concurrent access. If
9 you run from a multitasking OS, serialize access to ARP (called from
10 your network device driver and from a timeout thread.)
11
12 * TODO: the PPP code is broken in a few ways. There are namespace
13 collisions on BSD systems and many assumptions on word-length
14 (sizeof(int)). In ppp.c an assumption is made on the availability of
15 a thread subsystem. Either PPP needs to be moved to contrib/ports/???
16 or rearranged to be more generic.
17
18 * TODO: review the the sequential netconn and socket API (lwip/src/api)
19 for bugs and performance issues. Frequent system calls (e.g. sys_mbox_fetch)
20 slooow things down considerably.
21
22HISTORY
23
24(CVS HEAD)
25
26 * [Enter new changes just after this line - do not remove this line]
27
28 ++ New features:
29
30 2006-12-01 Christiaan Simons
31 * mem.h, opt.h: Added MEM_LIBC_MALLOC option.
32 Note this is a workaround. Currently I have no other options left.
33
34 2006-10-26 Christiaan Simons (accepted patch by Jonathan Larmour)
35 * ipv4/ip_frag.c: rename MAX_MTU to IP_FRAG_MAX_MTU and move define
36 to include/lwip/opt.h.
37 * ipv4/lwip/ip_frag.h: Remove unused IP_REASS_INTERVAL.
38 Move IP_REASS_MAXAGE and IP_REASS_BUFSIZE to include/lwip/opt.h.
39 * opt.h: Add above new options.
40
41 2006-08-18 Christiaan Simons
42 * tcp_{in,out}.c: added SNMP counters.
43 * ipv4/ip.c: added SNMP counters.
44 * ipv4/ip_frag.c: added SNMP counters.
45
46 2006-08-08 Christiaan Simons
47 * etharp.{c,h}: added etharp_find_addr() to read
48 (stable) ethernet/IP address pair from ARP table
49
50 2006-07-14 Christiaan Simons
51 * mib_structs.c: added
52 * include/lwip/snmp_structs.h: added
53 * netif.{c,h}, netif/ethernetif.c: added SNMP statistics to netif struct
54
55 2006-07-06 Christiaan Simons
56 * snmp/asn1_{enc,dec}.c added
57 * snmp/mib2.c added
58 * snmp/msg_{in,out}.c added
59 * include/lwip/snmp_asn1.h added
60 * include/lwip/snmp_msg.h added
61 * doc/snmp_agent.txt added
62
63 2006-03-29 Christiaan Simons
64 * inet.c, inet.h: Added platform byteswap support.
65 Added LWIP_PLATFORM_BYTESWAP define (defaults to 0) and
66 optional LWIP_PLATFORM_HTONS(), LWIP_PLATFORM_HTONL() macros.
67
68 ++ Bug fixes:
69
70 2006-11-30 Christiaan Simons
71 * dhcp.c: Fixed false triggers of request_timeout.
72
73 2006-11-28 Christiaan Simons
74 * netif.c: In netif_add() fixed missing clear of ip_addr, netmask, gw and flags.
75
76 2006-10-11 Christiaan Simons
77 * api_lib.c etharp.c, ip.c, memp.c, stats.c, sys.{c,h} tcp.h:
78 Partially accepted patch #5449 for ANSI C compatibility / build fixes.
79 * ipv4/lwip/ip.h ipv6/lwip/ip.h: Corrected UDP-Lite protocol
80 identifier from 170 to 136 (bug #17574).
81
82 2006-10-10 Christiaan Simons
83 * api_msg.c: Fixed Nagle algorithm as reported by Bob Grice.
84
85 2006-08-17 Christiaan Simons
86 * udp.c: Fixed bug #17200, added check for broadcast
87 destinations for PCBs bound to a unicast address.
88
89 2006-08-07 Christiaan Simons
90 * api_msg.c: Flushing TCP output in do_close() (bug #15926).
91
92 2006-06-27 Christiaan Simons
93 * api_msg.c: Applied patch for cold case (bug #11135).
94 In accept_function() ensure newconn->callback is always initialized.
95
96 2006-06-15 Christiaan Simons
97 * mem.h: added MEM_SIZE_F alias to fix an ancient cold case (bug #1748),
98 facilitate printing of mem_size_t and u16_t statistics.
99
100 2006-06-14 Christiaan Simons
101 * api_msg.c: Applied patch #5146 to handle allocation failures
102 in accept() by Kevin Lawson.
103
104 2006-05-26 Christiaan Simons
105 * api_lib.c: Removed conn->sem creation and destruction
106 from netconn_write() and added sys_sem_new to netconn_new_*.
107
108(STABLE-1_1_1)
109
110 2006-03-03 Christiaan Simons
111 * ipv4/ip_frag.c: Added bound-checking assertions on ip_reassbitmap
112 access and added pbuf_alloc() return value checks.
113
114 2006-01-01 Leon Woestenberg <leon.woestenberg@gmx.net>
115 * tcp_{in,out}.c, tcp_out.c: Removed 'even sndbuf' fix in TCP, which is
116 now handled by the checksum routine properly.
117
118 2006-02-27 Leon Woestenberg <leon.woestenberg@gmx.net>
119 * pbuf.c: Fix alignment; pbuf_init() would not work unless
120 pbuf_pool_memory[] was properly aligned. (Patch by Curt McDowell.)
121
122 2005-12-20 Leon Woestenberg <leon.woestenberg@gmx.net>
123 * tcp.c: Remove PCBs which stay in LAST_ACK state too long. Patch
124 submitted by Mitrani Hiroshi.
125
126 2005-12-15 Christiaan Simons
127 * inet.c: Disabled the added summing routine to preserve code space.
128
129 2005-12-14 Leon Woestenberg <leon.woestenberg@gmx.net>
130 * tcp_in.c: Duplicate FIN ACK race condition fix by Kelvin Lawson.
131 Added Curt McDowell's optimized checksumming routine for future
132 inclusion. Need to create test case for unaliged, aligned, odd,
133 even length combination of cases on various endianess machines.
134
135 2005-12-09 Christiaan Simons
136 * inet.c: Rewrote standard checksum routine in proper portable C.
137
138 2005-11-25 Christiaan Simons
139 * udp.c tcp.c: Removed SO_REUSE hack. Should reside in socket code only.
140 * *.c: introduced cc.h LWIP_DEBUG formatters matching the u16_t, s16_t,
141 u32_t, s32_t typedefs. This solves most debug word-length assumes.
142
143 2005-07-17 Leon Woestenberg <leon.woestenberg@gmx.net>
144 * inet.c: Fixed unaligned 16-bit access in the standard checksum
145 routine by Peter Jolasson.
146 * slipif.c: Fixed implementation assumption of single-pbuf datagrams.
147
148 2005-02-04 Leon Woestenberg <leon.woestenberg@gmx.net>
149 * tcp_out.c: Fixed uninitialized 'queue' referenced in memerr branch.
150 * tcp_{out|in}.c: Applied patch fixing unaligned access.
151
152 2005-01-04 Leon Woestenberg <leon.woestenberg@gmx.net>
153 * pbuf.c: Fixed missing semicolon after LWIP_DEBUG statement.
154
155 2005-01-03 Leon Woestenberg <leon.woestenberg@gmx.net>
156 * udp.c: UDP pcb->recv() was called even when it was NULL.
157
158(STABLE-1_1_0)
159
160 2004-12-28 Leon Woestenberg <leon.woestenberg@gmx.net>
161 * etharp.*: Disabled multiple packets on the ARP queue.
162 This clashes with TCP queueing.
163
164 2004-11-28 Leon Woestenberg <leon.woestenberg@gmx.net>
165 * etharp.*: Fixed race condition from ARP request to ARP timeout.
166 Halved the ARP period, doubled the period counts.
167 ETHARP_MAX_PENDING now should be at least 2. This prevents
168 the counter from reaching 0 right away (which would allow
169 too little time for ARP responses to be received).
170
171 2004-11-25 Leon Woestenberg <leon.woestenberg@gmx.net>
172 * dhcp.c: Decline messages were not multicast but unicast.
173 * etharp.c: ETHARP_CREATE is renamed to ETHARP_TRY_HARD.
174 Do not try hard to insert arbitrary packet's source address,
175 etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD.
176 etharp_query() now always DOES call ETHARP_TRY_HARD so that users
177 querying an address will see it appear in the cache (DHCP could
178 suffer from this when a server invalidly gave an in-use address.)
179 * ipv4/ip_addr.h: Renamed ip_addr_maskcmp() to _netcmp() as we are
180 comparing network addresses (identifiers), not the network masks
181 themselves.
182 * ipv4/ip_addr.c: ip_addr_isbroadcast() now checks that the given
183 IP address actually belongs to the network of the given interface.
184
185 2004-11-24 Kieran Mansley <kjm25@cam.ac.uk>
186 * tcp.c: Increment pcb->snd_buf when ACK is received in SYN_SENT state.
187
188(STABLE-1_1_0-RC1)
189
190 2004-10-16 Kieran Mansley <kjm25@cam.ac.uk>
191 * tcp.c: Add code to tcp_recved() to send an ACK (window update) immediately,
192 even if one is already pending, if the rcv_wnd is above a threshold
193 (currently TCP_WND/2). This avoids waiting for a timer to expire to send a
194 delayed ACK in order to open the window if the stack is only receiving data.
195
196 2004-09-12 Kieran Mansley <kjm25@cam.ac.uk>
197 * tcp*.*: Retransmit time-out handling improvement by Sam Jansen.
198
199 2004-08-20 Tony Mountifield <tony@softins.co.uk>
200 * etharp.c: Make sure the first pbuf queued on an ARP entry
201 is properly ref counted.
202
203 2004-07-27 Tony Mountifield <tony@softins.co.uk>
204 * debug.h: Added (int) cast in LWIP_DEBUGF() to avoid compiler
205 warnings about comparison.
206 * pbuf.c: Stopped compiler complaining of empty if statement
207 when LWIP_DEBUGF() empty. Closed an unclosed comment.
208 * tcp.c: Stopped compiler complaining of empty if statement
209 when LWIP_DEBUGF() empty.
210 * ip.h Corrected IPH_TOS() macro: returns a byte, so doesn't need htons().
211 * inet.c: Added a couple of casts to quiet the compiler.
212 No need to test isascii(c) before isdigit(c) or isxdigit(c).
213
214 2004-07-22 Tony Mountifield <tony@softins.co.uk>
215 * inet.c: Made data types consistent in inet_ntoa().
216 Added casts for return values of checksum routines, to pacify compiler.
217 * ip_frag.c, tcp_out.c, sockets.c, pbuf.c
218 Small corrections to some debugging statements, to pacify compiler.
219
220 2004-07-21 Tony Mountifield <tony@softins.co.uk>
221 * etharp.c: Removed spurious semicolon and added missing end-of-comment.
222 * ethernetif.c Updated low_level_output() to match prototype for
223 netif->linkoutput and changed low_level_input() similarly for consistency.
224 * api_msg.c: Changed recv_raw() from int to u8_t, to match prototype
225 of raw_recv() in raw.h and so avoid compiler error.
226 * sockets.c: Added trivial (int) cast to keep compiler happier.
227 * ip.c, netif.c Changed debug statements to use the tidier ip4_addrN() macros.
228
229(STABLE-1_0_0)
230
231 ++ Changes:
232
233 2004-07-05 Leon Woestenberg <leon.woestenberg@gmx.net>
234 * sockets.*: Restructured LWIP_PRIVATE_TIMEVAL. Make sure
235 your cc.h file defines this either 1 or 0. If non-defined,
236 defaults to 1.
237 * .c: Added <string.h> and <errno.h> includes where used.
238 * etharp.c: Made some array indices unsigned.
239
240 2004-06-27 Leon Woestenberg <leon.woestenberg@gmx.net>
241 * netif.*: Added netif_set_up()/down().
242 * dhcp.c: Changes to restart program flow.
243
244 2004-05-07 Leon Woestenberg <leon.woestenberg@gmx.net>
245 * etharp.c: In find_entry(), instead of a list traversal per candidate, do a
246 single-pass lookup for different candidates. Should exploit locality.
247
248 2004-04-29 Leon Woestenberg <leon.woestenberg@gmx.net>
249 * tcp*.c: Cleaned up source comment documentation for Doxygen processing.
250 * opt.h: ETHARP_ALWAYS_INSERT option removed to comply with ARP RFC.
251 * etharp.c: update_arp_entry() only adds new ARP entries when adviced to by
252 the caller. This deprecates the ETHARP_ALWAYS_INSERT overrule option.
253
254 ++ Bug fixes:
255
256 2004-04-27 Leon Woestenberg <leon.woestenberg@gmx.net>
257 * etharp.c: Applied patch of bug #8708 by Toni Mountifield with a solution
258 suggested by Timmy Brolin. Fix for 32-bit processors that cannot access
259 non-aligned 32-bit words, such as soms 32-bit TCP/IP header fields. Fix
260 is to prefix the 14-bit Ethernet headers with two padding bytes.
261
262 2004-04-23 Leon Woestenberg <leon.woestenberg@gmx.net>
263 * ip_addr.c: Fix in the ip_addr_isbroadcast() check.
264 * etharp.c: Fixed the case where the packet that initiates the ARP request
265 is not queued, and gets lost. Fixed the case where the packets destination
266 address is already known; we now always queue the packet and perform an ARP
267 request.
268
269(STABLE-0_7_0)
270
271 ++ Bug fixes:
272
273 * Fixed TCP bug for SYN_SENT to ESTABLISHED state transition.
274 * Fixed TCP bug in dequeueing of FIN from out of order segment queue.
275 * Fixed two possible NULL references in rare cases.
276
277(STABLE-0_6_6)
278
279 ++ Bug fixes:
280
281 * Fixed DHCP which did not include the IP address in DECLINE messages.
282
283 ++ Changes:
284
285 * etharp.c has been hauled over a bit.
286
287(STABLE-0_6_5)
288
289 ++ Bug fixes:
290
291 * Fixed TCP bug induced by bad window resizing with unidirectional TCP traffic.
292 * Packets sent from ARP queue had invalid source hardware address.
293
294 ++ Changes:
295
296 * Pass-by ARP requests do now update the cache.
297
298 ++ New features:
299
300 * No longer dependent on ctype.h.
301 * New socket options.
302 * Raw IP pcb support.
303
304(STABLE-0_6_4)
305
306 ++ Bug fixes:
307
308 * Some debug formatters and casts fixed.
309 * Numereous fixes in PPP.
310
311 ++ Changes:
312
313 * DEBUGF now is LWIP_DEBUGF
314 * pbuf_dechain() has been re-enabled.
315 * Mentioned the changed use of CVS branches in README.
316
317(STABLE-0_6_3)
318
319 ++ Bug fixes:
320
321 * Fixed pool pbuf memory leak in pbuf_alloc().
322 Occured if not enough PBUF_POOL pbufs for a packet pbuf chain.
323 Reported by Savin Zlobec.
324
325 * PBUF_POOL chains had their tot_len field not set for non-first
326 pbufs. Fixed in pbuf_alloc().
327
328 ++ New features:
329
330 * Added PPP stack contributed by Marc Boucher
331
332 ++ Changes:
333
334 * Now drops short packets for ICMP/UDP/TCP protocols. More robust.
335
336 * ARP queueuing now queues the latest packet instead of the first.
337 This is the RFC recommended behaviour, but can be overridden in
338 lwipopts.h.
339
340(0.6.2)
341
342 ++ Bugfixes:
343
344 * TCP has been fixed to deal with the new use of the pbuf->ref
345 counter.
346
347 * DHCP dhcp_inform() crash bug fixed.
348
349 ++ Changes:
350
351 * Removed pbuf_pool_free_cache and pbuf_pool_alloc_cache. Also removed
352 pbuf_refresh(). This has sped up pbuf pool operations considerably.
353 Implemented by David Haas.
354
355(0.6.1)
356
357 ++ New features:
358
359 * The packet buffer implementation has been enhanced to support
360 zero-copy and copy-on-demand for packet buffers which have their
361 payloads in application-managed memory.
362 Implemented by David Haas.
363
364 Use PBUF_REF to make a pbuf refer to RAM. lwIP will use zero-copy
365 if an outgoing packet can be directly sent on the link, or perform
366 a copy-on-demand when necessary.
367
368 The application can safely assume the packet is sent, and the RAM
369 is available to the application directly after calling udp_send()
370 or similar function.
371
372 ++ Bugfixes:
373
374 * ARP_QUEUEING should now correctly work for all cases, including
375 PBUF_REF.
376 Implemented by Leon Woestenberg.
377
378 ++ Changes:
379
380 * IP_ADDR_ANY is no longer a NULL pointer. Instead, it is a pointer
381 to a '0.0.0.0' IP address.
382
383 * The packet buffer implementation is changed. The pbuf->ref counter
384 meaning has changed, and several pbuf functions have been
385 adapted accordingly.
386
387 * netif drivers have to be changed to set the hardware address length field
388 that must be initialized correctly by the driver (hint: 6 for Ethernet MAC).
389 See the contrib/ports/c16x cs8900 driver as a driver example.
390
391 * netif's have a dhcp field that must be initialized to NULL by the driver.
392 See the contrib/ports/c16x cs8900 driver as a driver example.
393
394(0.5.x) This file has been unmaintained up to 0.6.1. All changes are
395 logged in CVS but have not been explained here.
396
397(0.5.3) Changes since version 0.5.2
398
399 ++ Bugfixes:
400
401 * memp_malloc(MEMP_API_MSG) could fail with multiple application
402 threads because it wasn't protected by semaphores.
403
404 ++ Other changes:
405
406 * struct ip_addr now packed.
407
408 * The name of the time variable in arp.c has been changed to ctime
409 to avoid conflicts with the time() function.
410
411(0.5.2) Changes since version 0.5.1
412
413 ++ New features:
414
415 * A new TCP function, tcp_tmr(), now handles both TCP timers.
416
417 ++ Bugfixes:
418
419 * A bug in tcp_parseopt() could cause the stack to hang because of a
420 malformed TCP option.
421
422 * The address of new connections in the accept() function in the BSD
423 socket library was not handled correctly.
424
425 * pbuf_dechain() did not update the ->tot_len field of the tail.
426
427 * Aborted TCP connections were not handled correctly in all
428 situations.
429
430 ++ Other changes:
431
432 * All protocol header structs are now packed.
433
434 * The ->len field in the tcp_seg structure now counts the actual
435 amount of data, and does not add one for SYN and FIN segments.
436
437(0.5.1) Changes since version 0.5.0
438
439 ++ New features:
440
441 * Possible to run as a user process under Linux.
442
443 * Preliminary support for cross platform packed structs.
444
445 * ARP timer now implemented.
446
447 ++ Bugfixes:
448
449 * TCP output queue length was badly initialized when opening
450 connections.
451
452 * TCP delayed ACKs were not sent correctly.
453
454 * Explicit initialization of BSS segment variables.
455
456 * read() in BSD socket library could drop data.
457
458 * Problems with memory alignment.
459
460 * Situations when all TCP buffers were used could lead to
461 starvation.
462
463 * TCP MSS option wasn't parsed correctly.
464
465 * Problems with UDP checksum calculation.
466
467 * IP multicast address tests had endianess problems.
468
469 * ARP requests had wrong destination hardware address.
470
471 ++ Other changes:
472
473 * struct eth_addr changed from u16_t[3] array to u8_t[6].
474
475 * A ->linkoutput() member was added to struct netif.
476
477 * TCP and UDP ->dest_* struct members where changed to ->remote_*.
478
479 * ntoh* macros are now null definitions for big endian CPUs.
480
481(0.5.0) Changes since version 0.4.2
482
483 ++ New features:
484
485 * Redesigned operating system emulation layer to make porting easier.
486
487 * Better control over TCP output buffers.
488
489 * Documenation added.
490
491 ++ Bugfixes:
492
493 * Locking issues in buffer management.
494
495 * Bugfixes in the sequential API.
496
497 * IP forwarding could cause memory leakage. This has been fixed.
498
499 ++ Other changes:
500
501 * Directory structure somewhat changed; the core/ tree has been
502 collapsed.
503
504(0.4.2) Changes since version 0.4.1
505
506 ++ New features:
507
508 * Experimental ARP implementation added.
509
510 * Skeleton Ethernet driver added.
511
512 * Experimental BSD socket API library added.
513
514 ++ Bugfixes:
515
516 * In very intense situations, memory leakage could occur. This has
517 been fixed.
518
519 ++ Other changes:
520
521 * Variables named "data" and "code" have been renamed in order to
522 avoid name conflicts in certain compilers.
523
524 * Variable++ have in appliciable cases been translated to ++variable
525 since some compilers generate better code in the latter case.
526
527(0.4.1) Changes since version 0.4
528
529 ++ New features:
530
531 * TCP: Connection attempts time out earlier than data
532 transmissions. Nagle algorithm implemented. Push flag set on the
533 last segment in a burst.
534
535 * UDP: experimental support for UDP-Lite extensions.
536
537 ++ Bugfixes:
538
539 * TCP: out of order segments were in some cases handled incorrectly,
540 and this has now been fixed. Delayed acknowledgements was broken
541 in 0.4, has now been fixed. Binding to an address that is in use
542 now results in an error. Reset connections sometimes hung an
543 application; this has been fixed.
544
545 * Checksum calculation sometimes failed for chained pbufs with odd
546 lengths. This has been fixed.
547
548 * API: a lot of bug fixes in the API. The UDP API has been improved
549 and tested. Error reporting and handling has been
550 improved. Logical flaws and race conditions for incoming TCP
551 connections has been found and removed.
552
553 * Memory manager: alignment issues. Reallocating memory sometimes
554 failed, this has been fixed.
555
556 * Generic library: bcopy was flawed and has been fixed.
557
558 ++ Other changes:
559
560 * API: all datatypes has been changed from generic ones such as
561 ints, to specified ones such as u16_t. Functions that return
562 errors now have the correct type (err_t).
563
564 * General: A lot of code cleaned up and debugging code removed. Many
565 portability issues have been fixed.
566
567 * The license was changed; the advertising clause was removed.
568
569 * C64 port added.
570
571 * Thanks: Huge thanks go to Dagan Galarneau, Horst Garnetzke, Petri
572 Kosunen, Mikael Caleres, and Frits Wilmink for reporting and
573 fixing bugs!
574
575(0.4) Changes since version 0.3.1
576
577 * Memory management has been radically changed; instead of
578 allocating memory from a shared heap, memory for objects that are
579 rapidly allocated and deallocated is now kept in pools. Allocation
580 and deallocation from those memory pools is very fast. The shared
581 heap is still present but is used less frequently.
582
583 * The memory, memory pool, and packet buffer subsystems now support
584 4-, 2-, or 1-byte alignment.
585
586 * "Out of memory" situations are handled in a more robust way.
587
588 * Stack usage has been reduced.
589
590 * Easier configuration of lwIP parameters such as memory usage,
591 TTLs, statistics gathering, etc. All configuration parameters are
592 now kept in a single header file "lwipopts.h".
593
594 * The directory structure has been changed slightly so that all
595 architecture specific files are kept under the src/arch
596 hierarchy.
597
598 * Error propagation has been improved, both in the protocol modules
599 and in the API.
600
601 * The code for the RTXC architecture has been implemented, tested
602 and put to use.
603
604 * Bugs have been found and corrected in the TCP, UDP, IP, API, and
605 the Internet checksum modules.
606
607 * Bugs related to porting between a 32-bit and a 16-bit architecture
608 have been found and corrected.
609
610 * The license has been changed slightly to conform more with the
611 original BSD license, including the advertisement clause.
612
613(0.3.1) Changes since version 0.3
614
615 * Fix of a fatal bug in the buffer management. Pbufs with allocated
616 RAM never returned the RAM when the pbuf was deallocated.
617
618 * TCP congestion control, window updates and retransmissions did not
619 work correctly. This has now been fixed.
620
621 * Bugfixes in the API.
622
623(0.3) Changes since version 0.2
624
625 * New and improved directory structure. All include files are now
626 kept in a dedicated include/ directory.
627
628 * The API now has proper error handling. A new function,
629 netconn_err(), now returns an error code for the connection in
630 case of errors.
631
632 * Improvements in the memory management subsystem. The system now
633 keeps a pointer to the lowest free memory block. A new function,
634 mem_malloc2() tries to allocate memory once, and if it fails tries
635 to free some memory and retry the allocation.
636
637 * Much testing has been done with limited memory
638 configurations. lwIP now does a better job when overloaded.
639
640 * Some bugfixes and improvements to the buffer (pbuf) subsystem.
641
642 * Many bugfixes in the TCP code:
643
644 - Fixed a bug in tcp_close().
645
646 - The TCP receive window was incorrectly closed when out of
647 sequence segments was received. This has been fixed.
648
649 - Connections are now timed-out of the FIN-WAIT-2 state.
650
651 - The initial congestion window could in some cases be too
652 large. This has been fixed.
653
654 - The retransmission queue could in some cases be screwed up. This
655 has been fixed.
656
657 - TCP RST flag now handled correctly.
658
659 - Out of sequence data was in some cases never delivered to the
660 application. This has been fixed.
661
662 - Retransmitted segments now contain the correct acknowledgment
663 number and advertised window.
664
665 - TCP retransmission timeout backoffs are not correctly computed
666 (ala BSD). After a number of retransmissions, TCP now gives up
667 the connection.
668
669 * TCP connections now are kept on three lists, one for active
670 connections, one for listening connections, and one for
671 connections that are in TIME-WAIT. This greatly speeds up the fast
672 timeout processing for sending delayed ACKs.
673
674 * TCP now provides proper feedback to the application when a
675 connection has been successfully set up.
676
677 * More comments have been added to the code. The code has also been
678 somewhat cleaned up.
679
680(0.2) Initial public release.
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette