lwIP is a small independent implementation of the TCP/IP protocol
suite that has been developed by Adam Dunkels at the Computer and
Networks Architectures (CNA) lab at the Swedish Institute of Computer
Science (SICS).

The focus of the lwIP TCP/IP implementation is to reduce the RAM usage
while still having a full scale TCP. This making lwIP suitable for use
in embedded systems with tenths of kilobytes of free RAM and room for
around 40 kilobytes of code ROM.

lwIP features:
 * IP (Internet Protocol) including packet forwarding over multiple
   network interfaces
 * ICMP (Internet Control Message Protocol) for network maintenance
   and debugging
 * UDP (User Datagram Protocol) including experimental UDP-lite
   extensions
 * TCP (Transmission Control Protocol) with congestion control, RTT
   estimation and fast recovery/fast retransmit
 * Specialized API for enhanced performance
 * Optional Berkeley socket API

lwIP is freely available under a BSD license.

lwIP has grown into an excellent TCP/IP stack for embedded devices,
and developers using the stack often submit bug fixes, improvements,
and additions to the stack to further increase its usefulness.

Development of lwIP is hosted on Savannah, a central point for
software development, maintenance and distribution. A core team
will improve lwIP by the use of Savannah's interface and CVS.

The current lwIP CVS tree can be checked out by doing:
  cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/lwip login
  cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/lwip co lwip

Last night's CVS tar ball can be downloaded from:
  http://savannah.gnu.org/cvs.backups/lwip.tar.gz

The current CVS tree is web-browsable:
http://savannah.nongnu.org/cgi-bin/viewcvs/lwip/lwip/

Submit patches and bugs via the lwIP project page:
  http://savannah.nongnu.org/projects/lwip/

Stable releases have not been released yet. For development we
suggest downloading the latest CVS and keeping track of the
lwIP mailing list.

The mailing list (with searchable archives), as well as Adam
Dunkels' papers on lwIP are at the official lwIP home page:
  http://www.sics.se/~adam/lwip/

Reading Adam's papers and browsing the mailing list archives
is a good way to become familiar with the design of lwIP.

Adam Dunkels <adam@sics.se>
Leon Woestenberg <leon.woestenberg@gmx.net>		    

