1 | INTRODUCTION
|
---|
2 |
|
---|
3 | lwIP is a small independent implementation of the TCP/IP protocol suite.
|
---|
4 |
|
---|
5 | The focus of the lwIP TCP/IP implementation is to reduce the RAM usage
|
---|
6 | while still having a full scale TCP. This making lwIP suitable for use
|
---|
7 | in embedded systems with tens of kilobytes of free RAM and room for
|
---|
8 | around 40 kilobytes of code ROM.
|
---|
9 |
|
---|
10 | lwIP was originally developed by Adam Dunkels at the Computer and Networks
|
---|
11 | Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS)
|
---|
12 | and is now developed and maintained by a worldwide network of developers.
|
---|
13 |
|
---|
14 | FEATURES
|
---|
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 | * DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6
|
---|
26 | * UDP (User Datagram Protocol) including experimental UDP-lite extensions
|
---|
27 | * TCP (Transmission Control Protocol) with congestion control, RTT estimation
|
---|
28 | fast recovery/fast retransmit and sending SACKs
|
---|
29 | * raw/native API for enhanced performance
|
---|
30 | * Optional Berkeley-like socket API
|
---|
31 | * TLS: optional layered TCP ("altcp") for nearly transparent TLS for any
|
---|
32 | TCP-based protocol (ported to mbedTLS) (see changelog for more info)
|
---|
33 | * PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet)
|
---|
34 | * DNS (Domain name resolver incl. mDNS)
|
---|
35 | * 6LoWPAN (via IEEE 802.15.4, BLE or ZEP)
|
---|
36 |
|
---|
37 |
|
---|
38 | APPLICATIONS
|
---|
39 |
|
---|
40 | * HTTP server with SSI and CGI (HTTPS via altcp)
|
---|
41 | * SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp
|
---|
42 | * SNTP (Simple network time protocol)
|
---|
43 | * NetBIOS name service responder
|
---|
44 | * MDNS (Multicast DNS) responder
|
---|
45 | * iPerf server implementation
|
---|
46 | * MQTT client (TLS support via altcp)
|
---|
47 |
|
---|
48 |
|
---|
49 | LICENSE
|
---|
50 |
|
---|
51 | lwIP is freely available under a BSD license.
|
---|
52 |
|
---|
53 |
|
---|
54 | DEVELOPMENT
|
---|
55 |
|
---|
56 | lwIP has grown into an excellent TCP/IP stack for embedded devices,
|
---|
57 | and developers using the stack often submit bug fixes, improvements,
|
---|
58 | and additions to the stack to further increase its usefulness.
|
---|
59 |
|
---|
60 | Development of lwIP is hosted on Savannah, a central point for
|
---|
61 | software development, maintenance and distribution. Everyone can
|
---|
62 | help improve lwIP by use of Savannah's interface, Git and the
|
---|
63 | mailing list. A core team of developers will commit changes to the
|
---|
64 | Git source tree.
|
---|
65 |
|
---|
66 | The lwIP TCP/IP stack is maintained in the 'lwip' Git module and
|
---|
67 | contributions (such as platform ports) are in the 'contrib' Git module.
|
---|
68 |
|
---|
69 | See doc/savannah.txt for details on Git server access for users and
|
---|
70 | developers.
|
---|
71 |
|
---|
72 | The current Git trees are web-browsable:
|
---|
73 | http://git.savannah.gnu.org/cgit/lwip.git
|
---|
74 | http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git
|
---|
75 |
|
---|
76 | Submit patches and bugs via the lwIP project page:
|
---|
77 | http://savannah.nongnu.org/projects/lwip/
|
---|
78 |
|
---|
79 | Continuous integration builds (GCC, clang):
|
---|
80 | https://travis-ci.org/yarrick/lwip-merged
|
---|
81 |
|
---|
82 |
|
---|
83 | DOCUMENTATION
|
---|
84 |
|
---|
85 | Self documentation of the source code is regularly extracted from the current
|
---|
86 | Git sources and is available from this web page:
|
---|
87 | http://www.nongnu.org/lwip/
|
---|
88 |
|
---|
89 | There is now a constantly growing wiki about lwIP at
|
---|
90 | http://lwip.wikia.com/wiki/LwIP_Wiki
|
---|
91 |
|
---|
92 | Also, there are mailing lists you can subscribe at
|
---|
93 | http://savannah.nongnu.org/mail/?group=lwip
|
---|
94 | plus searchable archives:
|
---|
95 | http://lists.nongnu.org/archive/html/lwip-users/
|
---|
96 | http://lists.nongnu.org/archive/html/lwip-devel/
|
---|
97 |
|
---|
98 | lwIP was originally written by Adam Dunkels:
|
---|
99 | http://dunkels.com/adam/
|
---|
100 |
|
---|
101 | Reading Adam's papers, the files in docs/, browsing the source code
|
---|
102 | documentation and browsing the mailing list archives is a good way to
|
---|
103 | become familiar with the design of lwIP.
|
---|
104 |
|
---|
105 | Adam Dunkels <adam@sics.se>
|
---|
106 | Leon Woestenberg <leon.woestenberg@gmx.net>
|
---|