1195972f6Sopenharmony_ciINTRODUCTION 2195972f6Sopenharmony_ci 3195972f6Sopenharmony_cilwIP is a small independent implementation of the TCP/IP protocol suite. 4195972f6Sopenharmony_ci 5195972f6Sopenharmony_ciThe focus of the lwIP TCP/IP implementation is to reduce the RAM usage 6195972f6Sopenharmony_ciwhile still having a full scale TCP. This making lwIP suitable for use 7195972f6Sopenharmony_ciin embedded systems with tens of kilobytes of free RAM and room for 8195972f6Sopenharmony_ciaround 40 kilobytes of code ROM. 9195972f6Sopenharmony_ci 10195972f6Sopenharmony_cilwIP was originally developed by Adam Dunkels at the Computer and Networks 11195972f6Sopenharmony_ciArchitectures (CNA) lab at the Swedish Institute of Computer Science (SICS) 12195972f6Sopenharmony_ciand is now developed and maintained by a worldwide network of developers. 13195972f6Sopenharmony_ci 14195972f6Sopenharmony_ciFEATURES 15195972f6Sopenharmony_ci 16195972f6Sopenharmony_ci * IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over 17195972f6Sopenharmony_ci multiple network interfaces 18195972f6Sopenharmony_ci * ICMP (Internet Control Message Protocol) for network maintenance and debugging 19195972f6Sopenharmony_ci * IGMP (Internet Group Management Protocol) for multicast traffic management 20195972f6Sopenharmony_ci * MLD (Multicast listener discovery for IPv6). Aims to be compliant with 21195972f6Sopenharmony_ci RFC 2710. No support for MLDv2 22195972f6Sopenharmony_ci * ND (Neighbor discovery and stateless address autoconfiguration for IPv6). 23195972f6Sopenharmony_ci Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 24195972f6Sopenharmony_ci (Address autoconfiguration) 25195972f6Sopenharmony_ci * DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6 26195972f6Sopenharmony_ci * UDP (User Datagram Protocol) including experimental UDP-lite extensions 27195972f6Sopenharmony_ci * TCP (Transmission Control Protocol) with congestion control, RTT estimation 28195972f6Sopenharmony_ci fast recovery/fast retransmit and sending SACKs 29195972f6Sopenharmony_ci * raw/native API for enhanced performance 30195972f6Sopenharmony_ci * Optional Berkeley-like socket API 31195972f6Sopenharmony_ci * TLS: optional layered TCP ("altcp") for nearly transparent TLS for any 32195972f6Sopenharmony_ci TCP-based protocol (ported to mbedTLS) (see changelog for more info) 33195972f6Sopenharmony_ci * PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet) 34195972f6Sopenharmony_ci * DNS (Domain name resolver incl. mDNS) 35195972f6Sopenharmony_ci * 6LoWPAN (via IEEE 802.15.4, BLE or ZEP) 36195972f6Sopenharmony_ci 37195972f6Sopenharmony_ci 38195972f6Sopenharmony_ciAPPLICATIONS 39195972f6Sopenharmony_ci 40195972f6Sopenharmony_ci * HTTP server with SSI and CGI (HTTPS via altcp) 41195972f6Sopenharmony_ci * SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp 42195972f6Sopenharmony_ci * SNTP (Simple network time protocol) 43195972f6Sopenharmony_ci * NetBIOS name service responder 44195972f6Sopenharmony_ci * MDNS (Multicast DNS) responder 45195972f6Sopenharmony_ci * iPerf server implementation 46195972f6Sopenharmony_ci * MQTT client (TLS support via altcp) 47195972f6Sopenharmony_ci 48195972f6Sopenharmony_ci 49195972f6Sopenharmony_ciLICENSE 50195972f6Sopenharmony_ci 51195972f6Sopenharmony_cilwIP is freely available under a BSD license. 52195972f6Sopenharmony_ci 53195972f6Sopenharmony_ci 54195972f6Sopenharmony_ciDEVELOPMENT 55195972f6Sopenharmony_ci 56195972f6Sopenharmony_cilwIP has grown into an excellent TCP/IP stack for embedded devices, 57195972f6Sopenharmony_ciand developers using the stack often submit bug fixes, improvements, 58195972f6Sopenharmony_ciand additions to the stack to further increase its usefulness. 59195972f6Sopenharmony_ci 60195972f6Sopenharmony_ciDevelopment of lwIP is hosted on Savannah, a central point for 61195972f6Sopenharmony_cisoftware development, maintenance and distribution. Everyone can 62195972f6Sopenharmony_cihelp improve lwIP by use of Savannah's interface, Git and the 63195972f6Sopenharmony_cimailing list. A core team of developers will commit changes to the 64195972f6Sopenharmony_ciGit source tree. 65195972f6Sopenharmony_ci 66195972f6Sopenharmony_ciThe lwIP TCP/IP stack is maintained in the 'lwip' Git module and 67195972f6Sopenharmony_cicontributions (such as platform ports) are in the 'contrib' Git module. 68195972f6Sopenharmony_ci 69195972f6Sopenharmony_ciSee doc/savannah.txt for details on Git server access for users and 70195972f6Sopenharmony_cidevelopers. 71195972f6Sopenharmony_ci 72195972f6Sopenharmony_ciThe current Git trees are web-browsable: 73195972f6Sopenharmony_ci http://git.savannah.gnu.org/cgit/lwip.git 74195972f6Sopenharmony_ci http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git 75195972f6Sopenharmony_ci 76195972f6Sopenharmony_ciSubmit patches and bugs via the lwIP project page: 77195972f6Sopenharmony_ci http://savannah.nongnu.org/projects/lwip/ 78195972f6Sopenharmony_ci 79195972f6Sopenharmony_ciContinuous integration builds (GCC, clang): 80195972f6Sopenharmony_ci https://travis-ci.org/yarrick/lwip-merged 81195972f6Sopenharmony_ci 82195972f6Sopenharmony_ci 83195972f6Sopenharmony_ciDOCUMENTATION 84195972f6Sopenharmony_ci 85195972f6Sopenharmony_ciSelf documentation of the source code is regularly extracted from the current 86195972f6Sopenharmony_ciGit sources and is available from this web page: 87195972f6Sopenharmony_ci http://www.nongnu.org/lwip/ 88195972f6Sopenharmony_ci 89195972f6Sopenharmony_ciThere is now a constantly growing wiki about lwIP at 90195972f6Sopenharmony_ci http://lwip.wikia.com/wiki/LwIP_Wiki 91195972f6Sopenharmony_ci 92195972f6Sopenharmony_ciAlso, there are mailing lists you can subscribe at 93195972f6Sopenharmony_ci http://savannah.nongnu.org/mail/?group=lwip 94195972f6Sopenharmony_ciplus searchable archives: 95195972f6Sopenharmony_ci http://lists.nongnu.org/archive/html/lwip-users/ 96195972f6Sopenharmony_ci http://lists.nongnu.org/archive/html/lwip-devel/ 97195972f6Sopenharmony_ci 98195972f6Sopenharmony_cilwIP was originally written by Adam Dunkels: 99195972f6Sopenharmony_ci http://dunkels.com/adam/ 100195972f6Sopenharmony_ci 101195972f6Sopenharmony_ciReading Adam's papers, the files in docs/, browsing the source code 102195972f6Sopenharmony_cidocumentation and browsing the mailing list archives is a good way to 103195972f6Sopenharmony_cibecome familiar with the design of lwIP. 104195972f6Sopenharmony_ci 105195972f6Sopenharmony_ciAdam Dunkels <adam@sics.se> 106195972f6Sopenharmony_ciLeon Woestenberg <leon.woestenberg@gmx.net> 107