CHANGELOG revision a82212bd36e1074408974b466798b9966bbaf49b
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * TODO: The lwIP source code makes some invalid assumptions on processor
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync word-length, storage sizes and alignment. See the mailing lists for
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync problems with exoteric (/DSP) architectures showing these problems.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync We still have to fix some of these issues neatly.
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * TODO: the ARP layer is not protected against concurrent access. If
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync you run from a multitasking OS, serialize access to ARP (called from
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync your network device driver and from a timeout thread.)
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * TODO: the PPP code is broken in a few ways. There are namespace
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync collisions on BSD systems and many assumptions on word-length
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync (sizeof(int)). In ppp.c an assumption is made on the availability of
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync a thread subsystem. Either PPP needs to be moved to contrib/ports/???
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync or rearranged to be more generic.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * TODO: review the the sequential netconn and socket API (lwip/src/api)
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync for bugs and performance issues. Frequent system calls (e.g. sys_mbox_fetch)
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync slooow things down considerably.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * [Enter new changes just after this line - do not remove this line]
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync ++ New features:
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2006-12-01 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync Note this is a workaround. Currently I have no other options left.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2006-10-26 Christiaan Simons (accepted patch by Jonathan Larmour)
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * ipv4/ip_frag.c: rename MAX_MTU to IP_FRAG_MAX_MTU and move define
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * ipv4/lwip/ip_frag.h: Remove unused IP_REASS_INTERVAL.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync Move IP_REASS_MAXAGE and IP_REASS_BUFSIZE to include/lwip/opt.h.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * opt.h: Add above new options.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2006-08-18 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * tcp_{in,out}.c: added SNMP counters.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * ipv4/ip.c: added SNMP counters.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * ipv4/ip_frag.c: added SNMP counters.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-08-08 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * etharp.{c,h}: added etharp_find_addr() to read
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync (stable) ethernet/IP address pair from ARP table
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2006-07-14 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * netif.{c,h}, netif/ethernetif.c: added SNMP statistics to netif struct
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-07-06 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * snmp/asn1_{enc,dec}.c added
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * snmp/msg_{in,out}.c added
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2006-03-29 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync Added LWIP_PLATFORM_BYTESWAP define (defaults to 0) and
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync optional LWIP_PLATFORM_HTONS(), LWIP_PLATFORM_HTONL() macros.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync ++ Bug fixes:
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-11-30 Christiaan Simons
0623012e80c8f7252d781d1f51cb6836afd4d3eevboxsync * dhcp.c: Fixed false triggers of request_timeout.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-11-28 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * netif.c: In netif_add() fixed missing clear of ip_addr, netmask, gw and flags.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-10-11 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * api_lib.c etharp.c, ip.c, memp.c, stats.c, sys.{c,h} tcp.h:
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync Partially accepted patch #5449 for ANSI C compatibility / build fixes.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * ipv4/lwip/ip.h ipv6/lwip/ip.h: Corrected UDP-Lite protocol
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync identifier from 170 to 136 (bug #17574).
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-10-10 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * api_msg.c: Fixed Nagle algorithm as reported by Bob Grice.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-08-17 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * udp.c: Fixed bug #17200, added check for broadcast
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync destinations for PCBs bound to a unicast address.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2006-08-07 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * api_msg.c: Flushing TCP output in do_close() (bug #15926).
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-06-27 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * api_msg.c: Applied patch for cold case (bug #11135).
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync In accept_function() ensure newconn->callback is always initialized.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-06-15 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * mem.h: added MEM_SIZE_F alias to fix an ancient cold case (bug #1748),
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync facilitate printing of mem_size_t and u16_t statistics.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-06-14 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * api_msg.c: Applied patch #5146 to handle allocation failures
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync in accept() by Kevin Lawson.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-05-26 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * api_lib.c: Removed conn->sem creation and destruction
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync from netconn_write() and added sys_sem_new to netconn_new_*.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync(STABLE-1_1_1)
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-03-03 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * ipv4/ip_frag.c: Added bound-checking assertions on ip_reassbitmap
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync access and added pbuf_alloc() return value checks.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-01-01 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * tcp_{in,out}.c, tcp_out.c: Removed 'even sndbuf' fix in TCP, which is
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync now handled by the checksum routine properly.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2006-02-27 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * pbuf.c: Fix alignment; pbuf_init() would not work unless
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync pbuf_pool_memory[] was properly aligned. (Patch by Curt McDowell.)
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2005-12-20 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * tcp.c: Remove PCBs which stay in LAST_ACK state too long. Patch
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync submitted by Mitrani Hiroshi.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2005-12-15 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * inet.c: Disabled the added summing routine to preserve code space.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2005-12-14 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * tcp_in.c: Duplicate FIN ACK race condition fix by Kelvin Lawson.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync Added Curt McDowell's optimized checksumming routine for future
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync inclusion. Need to create test case for unaliged, aligned, odd,
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync even length combination of cases on various endianess machines.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2005-12-09 Christiaan Simons
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * inet.c: Rewrote standard checksum routine in proper portable C.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2005-11-25 Christiaan Simons
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * udp.c tcp.c: Removed SO_REUSE hack. Should reside in socket code only.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * *.c: introduced cc.h LWIP_DEBUG formatters matching the u16_t, s16_t,
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync u32_t, s32_t typedefs. This solves most debug word-length assumes.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2005-07-17 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * inet.c: Fixed unaligned 16-bit access in the standard checksum
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync routine by Peter Jolasson.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * slipif.c: Fixed implementation assumption of single-pbuf datagrams.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2005-02-04 Leon Woestenberg <leon.woestenberg@gmx.net>
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * tcp_out.c: Fixed uninitialized 'queue' referenced in memerr branch.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync * tcp_{out|in}.c: Applied patch fixing unaligned access.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2005-01-04 Leon Woestenberg <leon.woestenberg@gmx.net>
cf575292da27c79a7de59f7ced500686a0838b38vboxsync * pbuf.c: Fixed missing semicolon after LWIP_DEBUG statement.
cf575292da27c79a7de59f7ced500686a0838b38vboxsync 2005-01-03 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * udp.c: UDP pcb->recv() was called even when it was NULL.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync(STABLE-1_1_0)
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2004-12-28 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * etharp.*: Disabled multiple packets on the ARP queue.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync This clashes with TCP queueing.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2004-11-28 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * etharp.*: Fixed race condition from ARP request to ARP timeout.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync Halved the ARP period, doubled the period counts.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync ETHARP_MAX_PENDING now should be at least 2. This prevents
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync the counter from reaching 0 right away (which would allow
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync too little time for ARP responses to be received).
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2004-11-25 Leon Woestenberg <leon.woestenberg@gmx.net>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * dhcp.c: Decline messages were not multicast but unicast.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * etharp.c: ETHARP_CREATE is renamed to ETHARP_TRY_HARD.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync Do not try hard to insert arbitrary packet's source address,
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync etharp_query() now always DOES call ETHARP_TRY_HARD so that users
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync querying an address will see it appear in the cache (DHCP could
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync suffer from this when a server invalidly gave an in-use address.)
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * ipv4/ip_addr.h: Renamed ip_addr_maskcmp() to _netcmp() as we are
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync comparing network addresses (identifiers), not the network masks
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync themselves.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * ipv4/ip_addr.c: ip_addr_isbroadcast() now checks that the given
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync IP address actually belongs to the network of the given interface.
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync 2004-11-24 Kieran Mansley <kjm25@cam.ac.uk>
26ab5559e05ae622734a4047cee975670da3b0e8vboxsync * tcp.c: Increment pcb->snd_buf when ACK is received in SYN_SENT state.
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync(STABLE-1_1_0-RC1)
8230e6f6671b538d39c7ef6d8484cf516a983ef4vboxsync 2004-10-16 Kieran Mansley <kjm25@cam.ac.uk>
* tcp.c: Add code to tcp_recved() to send an ACK (window update) immediately,
* etharp.c: Make sure the first pbuf queued on an ARP entry
* debug.h: Added (int) cast in LWIP_DEBUGF() to avoid compiler
* pbuf.c: Stopped compiler complaining of empty if statement
* tcp.c: Stopped compiler complaining of empty if statement
* ip.h Corrected IPH_TOS() macro: returns a byte, so doesn't need htons().
* inet.c: Added a couple of casts to quiet the compiler.
* inet.c: Made data types consistent in inet_ntoa().
* etharp.c: Removed spurious semicolon and added missing end-of-comment.
* ethernetif.c Updated low_level_output() to match prototype for
* api_msg.c: Changed recv_raw() from int to u8_t, to match prototype
of raw_recv() in raw.h and so avoid compiler error.
* sockets.c: Added trivial (int) cast to keep compiler happier.
your cc.h file defines this either 1 or 0. If non-defined,
* etharp.c: Made some array indices unsigned.
* dhcp.c: Changes to restart program flow.
* etharp.c: In find_entry(), instead of a list traversal per candidate, do a
* opt.h: ETHARP_ALWAYS_INSERT option removed to comply with ARP RFC.
* etharp.c: update_arp_entry() only adds new ARP entries when adviced to by
* etharp.c: Applied patch of bug #8708 by Toni Mountifield with a solution
non-aligned 32-bit words, such as soms 32-bit TCP/IP header fields. Fix
* ip_addr.c: Fix in the ip_addr_isbroadcast() check.
* etharp.c: Fixed the case where the packet that initiates the ARP request
* etharp.c has been hauled over a bit.
* No longer dependent on ctype.h.
* Now drops short packets for ICMP/UDP/TCP protocols. More robust.
See the contrib/ports/c16x cs8900 driver as a driver example.
See the contrib/ports/c16x cs8900 driver as a driver example.
(0.5.x) This file has been unmaintained up to 0.6.1. All changes are
* The name of the time variable in arp.c has been changed to ctime
now kept in a single header file "lwipopts.h".
architecture specific files are kept under the src/arch