1INTRODUCTION 2 3lwIP is a small independent implementation of the TCP/IP protocol 4suite that has been developed by Adam Dunkels at the Computer and 5Networks Architectures (CNA) lab at the Swedish Institute of Computer 6Science (SICS). 7 8The focus of the lwIP TCP/IP implementation is to reduce the RAM usage 9while still having a full scale TCP. This making lwIP suitable for use 10in embedded systems with tens of kilobytes of free RAM and room for 11around 40 kilobytes of code ROM. 12 13 14FEATURES 15 16 * IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over 17 multiple network interfaces 18 * ICMP (Internet Control Message Protocol) for network maintenance and debugging 19 * IGMP (Internet Group Management Protocol) for multicast traffic management 20 * MLD (Multicast listener discovery for IPv6). Aims to be compliant with 21 RFC 2710. No support for MLDv2 22 * ND (Neighbor discovery and stateless address autoconfiguration for IPv6). 23 Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 24 (Address autoconfiguration) 25 * UDP (User Datagram Protocol) including experimental UDP-lite extensions 26 * TCP (Transmission Control Protocol) with congestion control, RTT estimation 27 and fast recovery/fast retransmit 28 * raw/native API for enhanced performance 29 * Optional Berkeley-like socket API 30 * DNS (Domain names resolver) 31 32 33APPLICATIONS 34 35 * HTTP server with SSI and CGI 36 * SNMPv2c agent with MIB compiler (Simple Network Management Protocol) 37 * SNTP (Simple network time protocol) 38 * NetBIOS name service responder 39 * MDNS (Multicast DNS) responder 40 * iPerf server implementation 41 42 43LICENSE 44 45lwIP is freely available under a BSD license. 46 47 48DEVELOPMENT 49 50lwIP has grown into an excellent TCP/IP stack for embedded devices, 51and developers using the stack often submit bug fixes, improvements, 52and additions to the stack to further increase its usefulness. 53 54Development of lwIP is hosted on Savannah, a central point for 55software development, maintenance and distribution. Everyone can 56help improve lwIP by use of Savannah's interface, Git and the 57mailing list. A core team of developers will commit changes to the 58Git source tree. 59 60The lwIP TCP/IP stack is maintained in the 'lwip' Git module and 61contributions (such as platform ports) are in the 'contrib' Git module. 62 63See doc/savannah.txt for details on Git server access for users and 64developers. 65 66The current Git trees are web-browsable: 67 http://git.savannah.gnu.org/cgit/lwip.git 68 http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git 69 70Submit patches and bugs via the lwIP project page: 71 http://savannah.nongnu.org/projects/lwip/ 72 73Continuous integration builds (GCC, clang): 74 https://travis-ci.org/yarrick/lwip-merged 75 76 77DOCUMENTATION 78 79Self documentation of the source code is regularly extracted from the current 80Git sources and is available from this web page: 81 http://www.nongnu.org/lwip/ 82 83There is now a constantly growing wiki about lwIP at 84 http://lwip.wikia.com/wiki/LwIP_Wiki 85 86Also, there are mailing lists you can subscribe at 87 http://savannah.nongnu.org/mail/?group=lwip 88plus searchable archives: 89 http://lists.nongnu.org/archive/html/lwip-users/ 90 http://lists.nongnu.org/archive/html/lwip-devel/ 91 92lwIP was originally written by Adam Dunkels: 93 http://dunkels.com/adam/ 94 95Reading Adam's papers, the files in docs/, browsing the source code 96documentation and browsing the mailing list archives is a good way to 97become familiar with the design of lwIP. 98 99Adam Dunkels <adam@sics.se> 100Leon Woestenberg <leon.woestenberg@gmx.net> 101