xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.1.0/README (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZeroINTRODUCTION
2*10465441SEvalZero
3*10465441SEvalZerolwIP is a small independent implementation of the TCP/IP protocol suite.
4*10465441SEvalZero
5*10465441SEvalZeroThe focus of the lwIP TCP/IP implementation is to reduce the RAM usage
6*10465441SEvalZerowhile still having a full scale TCP. This making lwIP suitable for use
7*10465441SEvalZeroin embedded systems with tens of kilobytes of free RAM and room for
8*10465441SEvalZeroaround 40 kilobytes of code ROM.
9*10465441SEvalZero
10*10465441SEvalZerolwIP was originally developed by Adam Dunkels at the Computer and Networks
11*10465441SEvalZeroArchitectures (CNA) lab at the Swedish Institute of Computer Science (SICS)
12*10465441SEvalZeroand is now developed and maintained by a worldwide network of developers.
13*10465441SEvalZero
14*10465441SEvalZeroFEATURES
15*10465441SEvalZero
16*10465441SEvalZero  * IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over
17*10465441SEvalZero    multiple network interfaces
18*10465441SEvalZero  * ICMP (Internet Control Message Protocol) for network maintenance and debugging
19*10465441SEvalZero  * IGMP (Internet Group Management Protocol) for multicast traffic management
20*10465441SEvalZero  * MLD (Multicast listener discovery for IPv6). Aims to be compliant with
21*10465441SEvalZero    RFC 2710. No support for MLDv2
22*10465441SEvalZero  * ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
23*10465441SEvalZero    Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862
24*10465441SEvalZero    (Address autoconfiguration)
25*10465441SEvalZero  * DHCP, AutoIP/APIPA (Zeroconf) and (stateless) DHCPv6
26*10465441SEvalZero  * UDP (User Datagram Protocol) including experimental UDP-lite extensions
27*10465441SEvalZero  * TCP (Transmission Control Protocol) with congestion control, RTT estimation
28*10465441SEvalZero    fast recovery/fast retransmit and sending SACKs
29*10465441SEvalZero  * raw/native API for enhanced performance
30*10465441SEvalZero  * Optional Berkeley-like socket API
31*10465441SEvalZero  * TLS: optional layered TCP ("altcp") for nearly transparent TLS for any
32*10465441SEvalZero    TCP-based protocol (ported to mbedTLS) (see changelog for more info)
33*10465441SEvalZero  * PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet)
34*10465441SEvalZero  * DNS (Domain name resolver incl. mDNS)
35*10465441SEvalZero  * 6LoWPAN (via IEEE 802.15.4, BLE or ZEP)
36*10465441SEvalZero
37*10465441SEvalZero
38*10465441SEvalZeroAPPLICATIONS
39*10465441SEvalZero
40*10465441SEvalZero  * HTTP server with SSI and CGI (HTTPS via altcp)
41*10465441SEvalZero  * SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp
42*10465441SEvalZero  * SNTP (Simple network time protocol)
43*10465441SEvalZero  * NetBIOS name service responder
44*10465441SEvalZero  * MDNS (Multicast DNS) responder
45*10465441SEvalZero  * iPerf server implementation
46*10465441SEvalZero  * MQTT client (TLS support via altcp)
47*10465441SEvalZero
48*10465441SEvalZero
49*10465441SEvalZeroLICENSE
50*10465441SEvalZero
51*10465441SEvalZerolwIP is freely available under a BSD license.
52*10465441SEvalZero
53*10465441SEvalZero
54*10465441SEvalZeroDEVELOPMENT
55*10465441SEvalZero
56*10465441SEvalZerolwIP has grown into an excellent TCP/IP stack for embedded devices,
57*10465441SEvalZeroand developers using the stack often submit bug fixes, improvements,
58*10465441SEvalZeroand additions to the stack to further increase its usefulness.
59*10465441SEvalZero
60*10465441SEvalZeroDevelopment of lwIP is hosted on Savannah, a central point for
61*10465441SEvalZerosoftware development, maintenance and distribution. Everyone can
62*10465441SEvalZerohelp improve lwIP by use of Savannah's interface, Git and the
63*10465441SEvalZeromailing list. A core team of developers will commit changes to the
64*10465441SEvalZeroGit source tree.
65*10465441SEvalZero
66*10465441SEvalZeroThe lwIP TCP/IP stack is maintained in the 'lwip' Git module and
67*10465441SEvalZerocontributions (such as platform ports) are in the 'contrib' Git module.
68*10465441SEvalZero
69*10465441SEvalZeroSee doc/savannah.txt for details on Git server access for users and
70*10465441SEvalZerodevelopers.
71*10465441SEvalZero
72*10465441SEvalZeroThe current Git trees are web-browsable:
73*10465441SEvalZero  http://git.savannah.gnu.org/cgit/lwip.git
74*10465441SEvalZero  http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git
75*10465441SEvalZero
76*10465441SEvalZeroSubmit patches and bugs via the lwIP project page:
77*10465441SEvalZero  http://savannah.nongnu.org/projects/lwip/
78*10465441SEvalZero
79*10465441SEvalZeroContinuous integration builds (GCC, clang):
80*10465441SEvalZero  https://travis-ci.org/yarrick/lwip-merged
81*10465441SEvalZero
82*10465441SEvalZero
83*10465441SEvalZeroDOCUMENTATION
84*10465441SEvalZero
85*10465441SEvalZeroSelf documentation of the source code is regularly extracted from the current
86*10465441SEvalZeroGit sources and is available from this web page:
87*10465441SEvalZero  http://www.nongnu.org/lwip/
88*10465441SEvalZero
89*10465441SEvalZeroThere is now a constantly growing wiki about lwIP at
90*10465441SEvalZero  http://lwip.wikia.com/wiki/LwIP_Wiki
91*10465441SEvalZero
92*10465441SEvalZeroAlso, there are mailing lists you can subscribe at
93*10465441SEvalZero  http://savannah.nongnu.org/mail/?group=lwip
94*10465441SEvalZeroplus searchable archives:
95*10465441SEvalZero  http://lists.nongnu.org/archive/html/lwip-users/
96*10465441SEvalZero  http://lists.nongnu.org/archive/html/lwip-devel/
97*10465441SEvalZero
98*10465441SEvalZerolwIP was originally written by Adam Dunkels:
99*10465441SEvalZero  http://dunkels.com/adam/
100*10465441SEvalZero
101*10465441SEvalZeroReading Adam's papers, the files in docs/, browsing the source code
102*10465441SEvalZerodocumentation and browsing the mailing list archives is a good way to
103*10465441SEvalZerobecome familiar with the design of lwIP.
104*10465441SEvalZero
105*10465441SEvalZeroAdam Dunkels <[email protected]>
106*10465441SEvalZeroLeon Woestenberg <[email protected]>
107