INTRODUCTION

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.

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

LICENSE

lwIP is freely available under a BSD license.

DEVELOPMENT

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. Everyone can
help improve lwIP by use of Savannah's interface, CVS and the
mailing list. A core team of developers will commit changes to the
CVS source tree.

The lwIP TCP/IP stack is maintained in the 'lwip' CVS module and
contributions (such as platform ports) are in the 'contrib' module.

The CVS main trunk is the stable branch, which contains bug fixes and
tested features. The latest stable branch 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

The 'STABLE' tag in the stable branch will represent the most stable
revision (which may be somewhat older to protect us from errors
introduced by merges). This 'STABLE' tagged version 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 -r STABLE lwip

The 'DEVEL' branch is the active development branch, which contains
bleeding edge changes, and may be instable. It can be checkout by doing:
  cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/lwip login
  cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/lwip co -r DEVEL lwip

The current contrib 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 contrib

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

The current CVS trees are web-browsable:
  http://savannah.nongnu.org/cgi-bin/viewcvs/lwip/lwip/
  http://savannah.nongnu.org/cgi-bin/viewcvs/lwip/contrib/

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


DOCUMENTATION

The original out-dated homepage of lwIP and Adam Dunkels' papers on
lwIP are at the official lwIP home page:
  http://www.sics.se/~adam/lwip/

Self documentation of the source code is regularly extracted from the
current CVS sources and is available from this web page:
  http://www.nongnu.org/lwip/

Reading Adam's papers, the files in docs/, browsing the source code
documentation 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>		    
