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