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 tens 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.

See doc/savannah.txt for details on CVS server access for users and
developers.

Last night's CVS tar ball can be downloaded from:
  http://savannah.gnu.org/cvs.backups/lwip.tar.gz [CHANGED - NEEDS FIXING]

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>		    
