lwIP 2.0.2 Lightweight IP stack |
INTRODUCTIONlwIP is a small independent implementation of the TCP/IP protocolsuite that has been developed by Adam Dunkels at the Computer andNetworks Architectures (CNA) lab at the Swedish Institute of ComputerScience (SICS).The focus of the lwIP TCP/IP implementation is to reduce the RAM usagewhile still having a full scale TCP. This making lwIP suitable for usein embedded systems with tens of kilobytes of free RAM and room foraround 40 kilobytes of code ROM.FEATURES * IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over multiple network interfaces * ICMP (Internet Control Message Protocol) for network maintenance and debugging * IGMP (Internet Group Management Protocol) for multicast traffic management * MLD (Multicast listener discovery for IPv6). Aims to be compliant with RFC 2710. No support for MLDv2 * ND (Neighbor discovery and stateless address autoconfiguration for IPv6). Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 (Address autoconfiguration) * UDP (User Datagram Protocol) including experimental UDP-lite extensions * TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit * raw/native API for enhanced performance * Optional Berkeley-like socket API * DNS (Domain names resolver)APPLICATIONS * HTTP server with SSI and CGI * SNMPv2c agent with MIB compiler (Simple Network Management Protocol) * SNTP (Simple network time protocol) * NetBIOS name service responder * MDNS (Multicast DNS) responder * iPerf server implementationLICENSElwIP is freely available under a BSD license.DEVELOPMENTlwIP 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 forsoftware development, maintenance and distribution. Everyone canhelp improve lwIP by use of Savannah's interface, Git and themailing list. A core team of developers will commit changes to theGit source tree.The lwIP TCP/IP stack is maintained in the 'lwip' Git module andcontributions (such as platform ports) are in the 'contrib' Git module.See doc/savannah.txt for details on Git server access for users anddevelopers.The current Git trees are web-browsable: http://git.savannah.gnu.org/cgit/lwip.git http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.gitSubmit patches and bugs via the lwIP project page: http://savannah.nongnu.org/projects/lwip/Continuous integration builds (GCC, clang): https://travis-ci.org/yarrick/lwip-mergedDOCUMENTATIONSelf documentation of the source code is regularly extracted from the currentGit sources and is available from this web page: http://www.nongnu.org/lwip/There is now a constantly growing wiki about lwIP at http://lwip.wikia.com/wiki/LwIP_WikiAlso, there are mailing lists you can subscribe at http://savannah.nongnu.org/mail/?group=lwipplus searchable archives: http://lists.nongnu.org/archive/html/lwip-users/ http://lists.nongnu.org/archive/html/lwip-devel/lwIP was originally written by Adam Dunkels: http://dunkels.com/adam/Reading Adam's papers, the files in docs/, browsing the source codedocumentation and browsing the mailing list archives is a good way tobecome familiar with the design of lwIP.Adam Dunkels <adam@sics.se>Leon Woestenberg <leon.woestenberg@gmx.net>