a82212bd36e1074408974b466798b9966bbaf49bvboxsyncFUTURE
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TODO: The lwIP source code makes some invalid assumptions on processor
a82212bd36e1074408974b466798b9966bbaf49bvboxsync word-length, storage sizes and alignment. See the mailing lists for
a82212bd36e1074408974b466798b9966bbaf49bvboxsync problems with exoteric (/DSP) architectures showing these problems.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync We still have to fix some of these issues neatly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TODO: the ARP layer is not protected against concurrent access. If
a82212bd36e1074408974b466798b9966bbaf49bvboxsync you run from a multitasking OS, serialize access to ARP (called from
a82212bd36e1074408974b466798b9966bbaf49bvboxsync your network device driver and from a timeout thread.)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TODO: the PPP code is broken in a few ways. There are namespace
a82212bd36e1074408974b466798b9966bbaf49bvboxsync collisions on BSD systems and many assumptions on word-length
a82212bd36e1074408974b466798b9966bbaf49bvboxsync (sizeof(int)). In ppp.c an assumption is made on the availability of
a82212bd36e1074408974b466798b9966bbaf49bvboxsync a thread subsystem. Either PPP needs to be moved to contrib/ports/???
a82212bd36e1074408974b466798b9966bbaf49bvboxsync or rearranged to be more generic.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TODO: review the the sequential netconn and socket API (lwip/src/api)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync for bugs and performance issues. Frequent system calls (e.g. sys_mbox_fetch)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync slooow things down considerably.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsyncHISTORY
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(CVS HEAD)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * [Enter new changes just after this line - do not remove this line]
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-12-01 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * mem.h, opt.h: Added MEM_LIBC_MALLOC option.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Note this is a workaround. Currently I have no other options left.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-10-26 Christiaan Simons (accepted patch by Jonathan Larmour)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/ip_frag.c: rename MAX_MTU to IP_FRAG_MAX_MTU and move define
a82212bd36e1074408974b466798b9966bbaf49bvboxsync to include/lwip/opt.h.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/lwip/ip_frag.h: Remove unused IP_REASS_INTERVAL.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Move IP_REASS_MAXAGE and IP_REASS_BUFSIZE to include/lwip/opt.h.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * opt.h: Add above new options.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-08-18 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp_{in,out}.c: added SNMP counters.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/ip.c: added SNMP counters.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/ip_frag.c: added SNMP counters.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-08-08 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.{c,h}: added etharp_find_addr() to read
a82212bd36e1074408974b466798b9966bbaf49bvboxsync (stable) ethernet/IP address pair from ARP table
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-07-14 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * mib_structs.c: added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * include/lwip/snmp_structs.h: added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * netif.{c,h}, netif/ethernetif.c: added SNMP statistics to netif struct
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-07-06 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * snmp/asn1_{enc,dec}.c added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * snmp/mib2.c added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * snmp/msg_{in,out}.c added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * include/lwip/snmp_asn1.h added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * include/lwip/snmp_msg.h added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * doc/snmp_agent.txt added
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-03-29 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * inet.c, inet.h: Added platform byteswap support.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Added LWIP_PLATFORM_BYTESWAP define (defaults to 0) and
a82212bd36e1074408974b466798b9966bbaf49bvboxsync optional LWIP_PLATFORM_HTONS(), LWIP_PLATFORM_HTONL() macros.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-11-30 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * dhcp.c: Fixed false triggers of request_timeout.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-11-28 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * netif.c: In netif_add() fixed missing clear of ip_addr, netmask, gw and flags.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-10-11 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_lib.c etharp.c, ip.c, memp.c, stats.c, sys.{c,h} tcp.h:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Partially accepted patch #5449 for ANSI C compatibility / build fixes.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/lwip/ip.h ipv6/lwip/ip.h: Corrected UDP-Lite protocol
a82212bd36e1074408974b466798b9966bbaf49bvboxsync identifier from 170 to 136 (bug #17574).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-10-10 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_msg.c: Fixed Nagle algorithm as reported by Bob Grice.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-08-17 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * udp.c: Fixed bug #17200, added check for broadcast
a82212bd36e1074408974b466798b9966bbaf49bvboxsync destinations for PCBs bound to a unicast address.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-08-07 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_msg.c: Flushing TCP output in do_close() (bug #15926).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-06-27 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_msg.c: Applied patch for cold case (bug #11135).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync In accept_function() ensure newconn->callback is always initialized.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-06-15 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * mem.h: added MEM_SIZE_F alias to fix an ancient cold case (bug #1748),
a82212bd36e1074408974b466798b9966bbaf49bvboxsync facilitate printing of mem_size_t and u16_t statistics.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-06-14 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_msg.c: Applied patch #5146 to handle allocation failures
a82212bd36e1074408974b466798b9966bbaf49bvboxsync in accept() by Kevin Lawson.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-05-26 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_lib.c: Removed conn->sem creation and destruction
a82212bd36e1074408974b466798b9966bbaf49bvboxsync from netconn_write() and added sys_sem_new to netconn_new_*.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-1_1_1)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-03-03 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/ip_frag.c: Added bound-checking assertions on ip_reassbitmap
a82212bd36e1074408974b466798b9966bbaf49bvboxsync access and added pbuf_alloc() return value checks.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-01-01 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp_{in,out}.c, tcp_out.c: Removed 'even sndbuf' fix in TCP, which is
a82212bd36e1074408974b466798b9966bbaf49bvboxsync now handled by the checksum routine properly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2006-02-27 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * pbuf.c: Fix alignment; pbuf_init() would not work unless
a82212bd36e1074408974b466798b9966bbaf49bvboxsync pbuf_pool_memory[] was properly aligned. (Patch by Curt McDowell.)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-12-20 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp.c: Remove PCBs which stay in LAST_ACK state too long. Patch
a82212bd36e1074408974b466798b9966bbaf49bvboxsync submitted by Mitrani Hiroshi.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-12-15 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * inet.c: Disabled the added summing routine to preserve code space.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-12-14 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp_in.c: Duplicate FIN ACK race condition fix by Kelvin Lawson.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Added Curt McDowell's optimized checksumming routine for future
a82212bd36e1074408974b466798b9966bbaf49bvboxsync inclusion. Need to create test case for unaliged, aligned, odd,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync even length combination of cases on various endianess machines.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-12-09 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * inet.c: Rewrote standard checksum routine in proper portable C.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-11-25 Christiaan Simons
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * udp.c tcp.c: Removed SO_REUSE hack. Should reside in socket code only.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * *.c: introduced cc.h LWIP_DEBUG formatters matching the u16_t, s16_t,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync u32_t, s32_t typedefs. This solves most debug word-length assumes.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-07-17 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * inet.c: Fixed unaligned 16-bit access in the standard checksum
a82212bd36e1074408974b466798b9966bbaf49bvboxsync routine by Peter Jolasson.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * slipif.c: Fixed implementation assumption of single-pbuf datagrams.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-02-04 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp_out.c: Fixed uninitialized 'queue' referenced in memerr branch.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp_{out|in}.c: Applied patch fixing unaligned access.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-01-04 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * pbuf.c: Fixed missing semicolon after LWIP_DEBUG statement.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2005-01-03 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * udp.c: UDP pcb->recv() was called even when it was NULL.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-1_1_0)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-12-28 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.*: Disabled multiple packets on the ARP queue.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync This clashes with TCP queueing.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-11-28 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.*: Fixed race condition from ARP request to ARP timeout.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Halved the ARP period, doubled the period counts.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ETHARP_MAX_PENDING now should be at least 2. This prevents
a82212bd36e1074408974b466798b9966bbaf49bvboxsync the counter from reaching 0 right away (which would allow
a82212bd36e1074408974b466798b9966bbaf49bvboxsync too little time for ARP responses to be received).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-11-25 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * dhcp.c: Decline messages were not multicast but unicast.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: ETHARP_CREATE is renamed to ETHARP_TRY_HARD.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Do not try hard to insert arbitrary packet's source address,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync etharp_query() now always DOES call ETHARP_TRY_HARD so that users
a82212bd36e1074408974b466798b9966bbaf49bvboxsync querying an address will see it appear in the cache (DHCP could
a82212bd36e1074408974b466798b9966bbaf49bvboxsync suffer from this when a server invalidly gave an in-use address.)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/ip_addr.h: Renamed ip_addr_maskcmp() to _netcmp() as we are
a82212bd36e1074408974b466798b9966bbaf49bvboxsync comparing network addresses (identifiers), not the network masks
a82212bd36e1074408974b466798b9966bbaf49bvboxsync themselves.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ipv4/ip_addr.c: ip_addr_isbroadcast() now checks that the given
a82212bd36e1074408974b466798b9966bbaf49bvboxsync IP address actually belongs to the network of the given interface.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-11-24 Kieran Mansley <kjm25@cam.ac.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp.c: Increment pcb->snd_buf when ACK is received in SYN_SENT state.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-1_1_0-RC1)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-10-16 Kieran Mansley <kjm25@cam.ac.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp.c: Add code to tcp_recved() to send an ACK (window update) immediately,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync even if one is already pending, if the rcv_wnd is above a threshold
a82212bd36e1074408974b466798b9966bbaf49bvboxsync (currently TCP_WND/2). This avoids waiting for a timer to expire to send a
a82212bd36e1074408974b466798b9966bbaf49bvboxsync delayed ACK in order to open the window if the stack is only receiving data.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-09-12 Kieran Mansley <kjm25@cam.ac.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp*.*: Retransmit time-out handling improvement by Sam Jansen.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-08-20 Tony Mountifield <tony@softins.co.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: Make sure the first pbuf queued on an ARP entry
a82212bd36e1074408974b466798b9966bbaf49bvboxsync is properly ref counted.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-07-27 Tony Mountifield <tony@softins.co.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * debug.h: Added (int) cast in LWIP_DEBUGF() to avoid compiler
a82212bd36e1074408974b466798b9966bbaf49bvboxsync warnings about comparison.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * pbuf.c: Stopped compiler complaining of empty if statement
a82212bd36e1074408974b466798b9966bbaf49bvboxsync when LWIP_DEBUGF() empty. Closed an unclosed comment.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp.c: Stopped compiler complaining of empty if statement
a82212bd36e1074408974b466798b9966bbaf49bvboxsync when LWIP_DEBUGF() empty.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ip.h Corrected IPH_TOS() macro: returns a byte, so doesn't need htons().
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * inet.c: Added a couple of casts to quiet the compiler.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync No need to test isascii(c) before isdigit(c) or isxdigit(c).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-07-22 Tony Mountifield <tony@softins.co.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * inet.c: Made data types consistent in inet_ntoa().
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Added casts for return values of checksum routines, to pacify compiler.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ip_frag.c, tcp_out.c, sockets.c, pbuf.c
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Small corrections to some debugging statements, to pacify compiler.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-07-21 Tony Mountifield <tony@softins.co.uk>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: Removed spurious semicolon and added missing end-of-comment.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ethernetif.c Updated low_level_output() to match prototype for
a82212bd36e1074408974b466798b9966bbaf49bvboxsync netif->linkoutput and changed low_level_input() similarly for consistency.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * api_msg.c: Changed recv_raw() from int to u8_t, to match prototype
a82212bd36e1074408974b466798b9966bbaf49bvboxsync of raw_recv() in raw.h and so avoid compiler error.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * sockets.c: Added trivial (int) cast to keep compiler happier.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ip.c, netif.c Changed debug statements to use the tidier ip4_addrN() macros.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-1_0_0)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-07-05 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * sockets.*: Restructured LWIP_PRIVATE_TIMEVAL. Make sure
a82212bd36e1074408974b466798b9966bbaf49bvboxsync your cc.h file defines this either 1 or 0. If non-defined,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync defaults to 1.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * .c: Added <string.h> and <errno.h> includes where used.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: Made some array indices unsigned.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-06-27 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * netif.*: Added netif_set_up()/down().
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * dhcp.c: Changes to restart program flow.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-05-07 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: In find_entry(), instead of a list traversal per candidate, do a
a82212bd36e1074408974b466798b9966bbaf49bvboxsync single-pass lookup for different candidates. Should exploit locality.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-04-29 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * tcp*.c: Cleaned up source comment documentation for Doxygen processing.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * opt.h: ETHARP_ALWAYS_INSERT option removed to comply with ARP RFC.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: update_arp_entry() only adds new ARP entries when adviced to by
a82212bd36e1074408974b466798b9966bbaf49bvboxsync the caller. This deprecates the ETHARP_ALWAYS_INSERT overrule option.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-04-27 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: Applied patch of bug #8708 by Toni Mountifield with a solution
a82212bd36e1074408974b466798b9966bbaf49bvboxsync suggested by Timmy Brolin. Fix for 32-bit processors that cannot access
a82212bd36e1074408974b466798b9966bbaf49bvboxsync non-aligned 32-bit words, such as soms 32-bit TCP/IP header fields. Fix
a82212bd36e1074408974b466798b9966bbaf49bvboxsync is to prefix the 14-bit Ethernet headers with two padding bytes.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 2004-04-23 Leon Woestenberg <leon.woestenberg@gmx.net>
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ip_addr.c: Fix in the ip_addr_isbroadcast() check.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c: Fixed the case where the packet that initiates the ARP request
a82212bd36e1074408974b466798b9966bbaf49bvboxsync is not queued, and gets lost. Fixed the case where the packets destination
a82212bd36e1074408974b466798b9966bbaf49bvboxsync address is already known; we now always queue the packet and perform an ARP
a82212bd36e1074408974b466798b9966bbaf49bvboxsync request.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-0_7_0)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fixed TCP bug for SYN_SENT to ESTABLISHED state transition.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fixed TCP bug in dequeueing of FIN from out of order segment queue.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fixed two possible NULL references in rare cases.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-0_6_6)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fixed DHCP which did not include the IP address in DECLINE messages.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * etharp.c has been hauled over a bit.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-0_6_5)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fixed TCP bug induced by bad window resizing with unidirectional TCP traffic.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Packets sent from ARP queue had invalid source hardware address.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Pass-by ARP requests do now update the cache.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * No longer dependent on ctype.h.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * New socket options.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Raw IP pcb support.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-0_6_4)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Some debug formatters and casts fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Numereous fixes in PPP.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * DEBUGF now is LWIP_DEBUGF
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * pbuf_dechain() has been re-enabled.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Mentioned the changed use of CVS branches in README.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(STABLE-0_6_3)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bug fixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fixed pool pbuf memory leak in pbuf_alloc().
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Occured if not enough PBUF_POOL pbufs for a packet pbuf chain.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Reported by Savin Zlobec.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * PBUF_POOL chains had their tot_len field not set for non-first
a82212bd36e1074408974b466798b9966bbaf49bvboxsync pbufs. Fixed in pbuf_alloc().
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Added PPP stack contributed by Marc Boucher
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Now drops short packets for ICMP/UDP/TCP protocols. More robust.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ARP queueuing now queues the latest packet instead of the first.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync This is the RFC recommended behaviour, but can be overridden in
a82212bd36e1074408974b466798b9966bbaf49bvboxsync lwipopts.h.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.6.2)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP has been fixed to deal with the new use of the pbuf->ref
a82212bd36e1074408974b466798b9966bbaf49bvboxsync counter.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * DHCP dhcp_inform() crash bug fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Removed pbuf_pool_free_cache and pbuf_pool_alloc_cache. Also removed
a82212bd36e1074408974b466798b9966bbaf49bvboxsync pbuf_refresh(). This has sped up pbuf pool operations considerably.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Implemented by David Haas.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.6.1)
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The packet buffer implementation has been enhanced to support
a82212bd36e1074408974b466798b9966bbaf49bvboxsync zero-copy and copy-on-demand for packet buffers which have their
a82212bd36e1074408974b466798b9966bbaf49bvboxsync payloads in application-managed memory.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Implemented by David Haas.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Use PBUF_REF to make a pbuf refer to RAM. lwIP will use zero-copy
a82212bd36e1074408974b466798b9966bbaf49bvboxsync if an outgoing packet can be directly sent on the link, or perform
a82212bd36e1074408974b466798b9966bbaf49bvboxsync a copy-on-demand when necessary.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync The application can safely assume the packet is sent, and the RAM
a82212bd36e1074408974b466798b9966bbaf49bvboxsync is available to the application directly after calling udp_send()
a82212bd36e1074408974b466798b9966bbaf49bvboxsync or similar function.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ARP_QUEUEING should now correctly work for all cases, including
a82212bd36e1074408974b466798b9966bbaf49bvboxsync PBUF_REF.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Implemented by Leon Woestenberg.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * IP_ADDR_ANY is no longer a NULL pointer. Instead, it is a pointer
a82212bd36e1074408974b466798b9966bbaf49bvboxsync to a '0.0.0.0' IP address.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The packet buffer implementation is changed. The pbuf->ref counter
a82212bd36e1074408974b466798b9966bbaf49bvboxsync meaning has changed, and several pbuf functions have been
a82212bd36e1074408974b466798b9966bbaf49bvboxsync adapted accordingly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * netif drivers have to be changed to set the hardware address length field
a82212bd36e1074408974b466798b9966bbaf49bvboxsync that must be initialized correctly by the driver (hint: 6 for Ethernet MAC).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync See the contrib/ports/c16x cs8900 driver as a driver example.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * netif's have a dhcp field that must be initialized to NULL by the driver.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync See the contrib/ports/c16x cs8900 driver as a driver example.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.5.x) This file has been unmaintained up to 0.6.1. All changes are
a82212bd36e1074408974b466798b9966bbaf49bvboxsync logged in CVS but have not been explained here.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.5.3) Changes since version 0.5.2
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * memp_malloc(MEMP_API_MSG) could fail with multiple application
a82212bd36e1074408974b466798b9966bbaf49bvboxsync threads because it wasn't protected by semaphores.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Other changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * struct ip_addr now packed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The name of the time variable in arp.c has been changed to ctime
a82212bd36e1074408974b466798b9966bbaf49bvboxsync to avoid conflicts with the time() function.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.5.2) Changes since version 0.5.1
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * A new TCP function, tcp_tmr(), now handles both TCP timers.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * A bug in tcp_parseopt() could cause the stack to hang because of a
a82212bd36e1074408974b466798b9966bbaf49bvboxsync malformed TCP option.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The address of new connections in the accept() function in the BSD
a82212bd36e1074408974b466798b9966bbaf49bvboxsync socket library was not handled correctly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * pbuf_dechain() did not update the ->tot_len field of the tail.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Aborted TCP connections were not handled correctly in all
a82212bd36e1074408974b466798b9966bbaf49bvboxsync situations.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Other changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * All protocol header structs are now packed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The ->len field in the tcp_seg structure now counts the actual
a82212bd36e1074408974b466798b9966bbaf49bvboxsync amount of data, and does not add one for SYN and FIN segments.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.5.1) Changes since version 0.5.0
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Possible to run as a user process under Linux.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Preliminary support for cross platform packed structs.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ARP timer now implemented.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP output queue length was badly initialized when opening
a82212bd36e1074408974b466798b9966bbaf49bvboxsync connections.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP delayed ACKs were not sent correctly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Explicit initialization of BSS segment variables.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * read() in BSD socket library could drop data.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Problems with memory alignment.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Situations when all TCP buffers were used could lead to
a82212bd36e1074408974b466798b9966bbaf49bvboxsync starvation.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP MSS option wasn't parsed correctly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Problems with UDP checksum calculation.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * IP multicast address tests had endianess problems.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ARP requests had wrong destination hardware address.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Other changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * struct eth_addr changed from u16_t[3] array to u8_t[6].
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * A ->linkoutput() member was added to struct netif.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP and UDP ->dest_* struct members where changed to ->remote_*.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * ntoh* macros are now null definitions for big endian CPUs.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.5.0) Changes since version 0.4.2
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Redesigned operating system emulation layer to make porting easier.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Better control over TCP output buffers.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Documenation added.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Locking issues in buffer management.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Bugfixes in the sequential API.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * IP forwarding could cause memory leakage. This has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Other changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Directory structure somewhat changed; the core/ tree has been
a82212bd36e1074408974b466798b9966bbaf49bvboxsync collapsed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.4.2) Changes since version 0.4.1
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Experimental ARP implementation added.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Skeleton Ethernet driver added.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Experimental BSD socket API library added.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * In very intense situations, memory leakage could occur. This has
a82212bd36e1074408974b466798b9966bbaf49bvboxsync been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Other changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Variables named "data" and "code" have been renamed in order to
a82212bd36e1074408974b466798b9966bbaf49bvboxsync avoid name conflicts in certain compilers.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Variable++ have in appliciable cases been translated to ++variable
a82212bd36e1074408974b466798b9966bbaf49bvboxsync since some compilers generate better code in the latter case.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.4.1) Changes since version 0.4
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ New features:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP: Connection attempts time out earlier than data
a82212bd36e1074408974b466798b9966bbaf49bvboxsync transmissions. Nagle algorithm implemented. Push flag set on the
a82212bd36e1074408974b466798b9966bbaf49bvboxsync last segment in a burst.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * UDP: experimental support for UDP-Lite extensions.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Bugfixes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP: out of order segments were in some cases handled incorrectly,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync and this has now been fixed. Delayed acknowledgements was broken
a82212bd36e1074408974b466798b9966bbaf49bvboxsync in 0.4, has now been fixed. Binding to an address that is in use
a82212bd36e1074408974b466798b9966bbaf49bvboxsync now results in an error. Reset connections sometimes hung an
a82212bd36e1074408974b466798b9966bbaf49bvboxsync application; this has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Checksum calculation sometimes failed for chained pbufs with odd
a82212bd36e1074408974b466798b9966bbaf49bvboxsync lengths. This has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * API: a lot of bug fixes in the API. The UDP API has been improved
a82212bd36e1074408974b466798b9966bbaf49bvboxsync and tested. Error reporting and handling has been
a82212bd36e1074408974b466798b9966bbaf49bvboxsync improved. Logical flaws and race conditions for incoming TCP
a82212bd36e1074408974b466798b9966bbaf49bvboxsync connections has been found and removed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Memory manager: alignment issues. Reallocating memory sometimes
a82212bd36e1074408974b466798b9966bbaf49bvboxsync failed, this has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Generic library: bcopy was flawed and has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ++ Other changes:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * API: all datatypes has been changed from generic ones such as
a82212bd36e1074408974b466798b9966bbaf49bvboxsync ints, to specified ones such as u16_t. Functions that return
a82212bd36e1074408974b466798b9966bbaf49bvboxsync errors now have the correct type (err_t).
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * General: A lot of code cleaned up and debugging code removed. Many
a82212bd36e1074408974b466798b9966bbaf49bvboxsync portability issues have been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The license was changed; the advertising clause was removed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * C64 port added.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Thanks: Huge thanks go to Dagan Galarneau, Horst Garnetzke, Petri
a82212bd36e1074408974b466798b9966bbaf49bvboxsync Kosunen, Mikael Caleres, and Frits Wilmink for reporting and
a82212bd36e1074408974b466798b9966bbaf49bvboxsync fixing bugs!
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.4) Changes since version 0.3.1
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Memory management has been radically changed; instead of
a82212bd36e1074408974b466798b9966bbaf49bvboxsync allocating memory from a shared heap, memory for objects that are
a82212bd36e1074408974b466798b9966bbaf49bvboxsync rapidly allocated and deallocated is now kept in pools. Allocation
a82212bd36e1074408974b466798b9966bbaf49bvboxsync and deallocation from those memory pools is very fast. The shared
a82212bd36e1074408974b466798b9966bbaf49bvboxsync heap is still present but is used less frequently.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The memory, memory pool, and packet buffer subsystems now support
a82212bd36e1074408974b466798b9966bbaf49bvboxsync 4-, 2-, or 1-byte alignment.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * "Out of memory" situations are handled in a more robust way.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Stack usage has been reduced.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Easier configuration of lwIP parameters such as memory usage,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync TTLs, statistics gathering, etc. All configuration parameters are
a82212bd36e1074408974b466798b9966bbaf49bvboxsync now kept in a single header file "lwipopts.h".
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The directory structure has been changed slightly so that all
a82212bd36e1074408974b466798b9966bbaf49bvboxsync architecture specific files are kept under the src/arch
a82212bd36e1074408974b466798b9966bbaf49bvboxsync hierarchy.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Error propagation has been improved, both in the protocol modules
a82212bd36e1074408974b466798b9966bbaf49bvboxsync and in the API.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The code for the RTXC architecture has been implemented, tested
a82212bd36e1074408974b466798b9966bbaf49bvboxsync and put to use.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Bugs have been found and corrected in the TCP, UDP, IP, API, and
a82212bd36e1074408974b466798b9966bbaf49bvboxsync the Internet checksum modules.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Bugs related to porting between a 32-bit and a 16-bit architecture
a82212bd36e1074408974b466798b9966bbaf49bvboxsync have been found and corrected.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The license has been changed slightly to conform more with the
a82212bd36e1074408974b466798b9966bbaf49bvboxsync original BSD license, including the advertisement clause.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.3.1) Changes since version 0.3
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Fix of a fatal bug in the buffer management. Pbufs with allocated
a82212bd36e1074408974b466798b9966bbaf49bvboxsync RAM never returned the RAM when the pbuf was deallocated.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP congestion control, window updates and retransmissions did not
a82212bd36e1074408974b466798b9966bbaf49bvboxsync work correctly. This has now been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Bugfixes in the API.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.3) Changes since version 0.2
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * New and improved directory structure. All include files are now
a82212bd36e1074408974b466798b9966bbaf49bvboxsync kept in a dedicated include/ directory.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * The API now has proper error handling. A new function,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync netconn_err(), now returns an error code for the connection in
a82212bd36e1074408974b466798b9966bbaf49bvboxsync case of errors.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Improvements in the memory management subsystem. The system now
a82212bd36e1074408974b466798b9966bbaf49bvboxsync keeps a pointer to the lowest free memory block. A new function,
a82212bd36e1074408974b466798b9966bbaf49bvboxsync mem_malloc2() tries to allocate memory once, and if it fails tries
a82212bd36e1074408974b466798b9966bbaf49bvboxsync to free some memory and retry the allocation.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Much testing has been done with limited memory
a82212bd36e1074408974b466798b9966bbaf49bvboxsync configurations. lwIP now does a better job when overloaded.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Some bugfixes and improvements to the buffer (pbuf) subsystem.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * Many bugfixes in the TCP code:
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - Fixed a bug in tcp_close().
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - The TCP receive window was incorrectly closed when out of
a82212bd36e1074408974b466798b9966bbaf49bvboxsync sequence segments was received. This has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - Connections are now timed-out of the FIN-WAIT-2 state.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - The initial congestion window could in some cases be too
a82212bd36e1074408974b466798b9966bbaf49bvboxsync large. This has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - The retransmission queue could in some cases be screwed up. This
a82212bd36e1074408974b466798b9966bbaf49bvboxsync has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - TCP RST flag now handled correctly.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - Out of sequence data was in some cases never delivered to the
a82212bd36e1074408974b466798b9966bbaf49bvboxsync application. This has been fixed.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - Retransmitted segments now contain the correct acknowledgment
a82212bd36e1074408974b466798b9966bbaf49bvboxsync number and advertised window.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync - TCP retransmission timeout backoffs are not correctly computed
a82212bd36e1074408974b466798b9966bbaf49bvboxsync (ala BSD). After a number of retransmissions, TCP now gives up
a82212bd36e1074408974b466798b9966bbaf49bvboxsync the connection.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP connections now are kept on three lists, one for active
a82212bd36e1074408974b466798b9966bbaf49bvboxsync connections, one for listening connections, and one for
a82212bd36e1074408974b466798b9966bbaf49bvboxsync connections that are in TIME-WAIT. This greatly speeds up the fast
a82212bd36e1074408974b466798b9966bbaf49bvboxsync timeout processing for sending delayed ACKs.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * TCP now provides proper feedback to the application when a
a82212bd36e1074408974b466798b9966bbaf49bvboxsync connection has been successfully set up.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync * More comments have been added to the code. The code has also been
a82212bd36e1074408974b466798b9966bbaf49bvboxsync somewhat cleaned up.
a82212bd36e1074408974b466798b9966bbaf49bvboxsync
a82212bd36e1074408974b466798b9966bbaf49bvboxsync(0.2) Initial public release.