xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.0.2/README (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZeroINTRODUCTION
2*10465441SEvalZero
3*10465441SEvalZerolwIP is a small independent implementation of the TCP/IP protocol
4*10465441SEvalZerosuite that has been developed by Adam Dunkels at the Computer and
5*10465441SEvalZeroNetworks Architectures (CNA) lab at the Swedish Institute of Computer
6*10465441SEvalZeroScience (SICS).
7*10465441SEvalZero
8*10465441SEvalZeroThe focus of the lwIP TCP/IP implementation is to reduce the RAM usage
9*10465441SEvalZerowhile still having a full scale TCP. This making lwIP suitable for use
10*10465441SEvalZeroin embedded systems with tens of kilobytes of free RAM and room for
11*10465441SEvalZeroaround 40 kilobytes of code ROM.
12*10465441SEvalZero
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  * UDP (User Datagram Protocol) including experimental UDP-lite extensions
26*10465441SEvalZero  * TCP (Transmission Control Protocol) with congestion control, RTT estimation
27*10465441SEvalZero    and fast recovery/fast retransmit
28*10465441SEvalZero  * raw/native API for enhanced performance
29*10465441SEvalZero  * Optional Berkeley-like socket API
30*10465441SEvalZero  * DNS (Domain names resolver)
31*10465441SEvalZero
32*10465441SEvalZero
33*10465441SEvalZeroAPPLICATIONS
34*10465441SEvalZero
35*10465441SEvalZero  * HTTP server with SSI and CGI
36*10465441SEvalZero  * SNMPv2c agent with MIB compiler (Simple Network Management Protocol)
37*10465441SEvalZero  * SNTP (Simple network time protocol)
38*10465441SEvalZero  * NetBIOS name service responder
39*10465441SEvalZero  * MDNS (Multicast DNS) responder
40*10465441SEvalZero  * iPerf server implementation
41*10465441SEvalZero
42*10465441SEvalZero
43*10465441SEvalZeroLICENSE
44*10465441SEvalZero
45*10465441SEvalZerolwIP is freely available under a BSD license.
46*10465441SEvalZero
47*10465441SEvalZero
48*10465441SEvalZeroDEVELOPMENT
49*10465441SEvalZero
50*10465441SEvalZerolwIP has grown into an excellent TCP/IP stack for embedded devices,
51*10465441SEvalZeroand developers using the stack often submit bug fixes, improvements,
52*10465441SEvalZeroand additions to the stack to further increase its usefulness.
53*10465441SEvalZero
54*10465441SEvalZeroDevelopment of lwIP is hosted on Savannah, a central point for
55*10465441SEvalZerosoftware development, maintenance and distribution. Everyone can
56*10465441SEvalZerohelp improve lwIP by use of Savannah's interface, Git and the
57*10465441SEvalZeromailing list. A core team of developers will commit changes to the
58*10465441SEvalZeroGit source tree.
59*10465441SEvalZero
60*10465441SEvalZeroThe lwIP TCP/IP stack is maintained in the 'lwip' Git module and
61*10465441SEvalZerocontributions (such as platform ports) are in the 'contrib' Git module.
62*10465441SEvalZero
63*10465441SEvalZeroSee doc/savannah.txt for details on Git server access for users and
64*10465441SEvalZerodevelopers.
65*10465441SEvalZero
66*10465441SEvalZeroThe current Git trees are web-browsable:
67*10465441SEvalZero  http://git.savannah.gnu.org/cgit/lwip.git
68*10465441SEvalZero  http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git
69*10465441SEvalZero
70*10465441SEvalZeroSubmit patches and bugs via the lwIP project page:
71*10465441SEvalZero  http://savannah.nongnu.org/projects/lwip/
72*10465441SEvalZero
73*10465441SEvalZeroContinuous integration builds (GCC, clang):
74*10465441SEvalZero  https://travis-ci.org/yarrick/lwip-merged
75*10465441SEvalZero
76*10465441SEvalZero
77*10465441SEvalZeroDOCUMENTATION
78*10465441SEvalZero
79*10465441SEvalZeroSelf documentation of the source code is regularly extracted from the current
80*10465441SEvalZeroGit sources and is available from this web page:
81*10465441SEvalZero  http://www.nongnu.org/lwip/
82*10465441SEvalZero
83*10465441SEvalZeroThere is now a constantly growing wiki about lwIP at
84*10465441SEvalZero  http://lwip.wikia.com/wiki/LwIP_Wiki
85*10465441SEvalZero
86*10465441SEvalZeroAlso, there are mailing lists you can subscribe at
87*10465441SEvalZero  http://savannah.nongnu.org/mail/?group=lwip
88*10465441SEvalZeroplus searchable archives:
89*10465441SEvalZero  http://lists.nongnu.org/archive/html/lwip-users/
90*10465441SEvalZero  http://lists.nongnu.org/archive/html/lwip-devel/
91*10465441SEvalZero
92*10465441SEvalZerolwIP was originally written by Adam Dunkels:
93*10465441SEvalZero  http://dunkels.com/adam/
94*10465441SEvalZero
95*10465441SEvalZeroReading Adam's papers, the files in docs/, browsing the source code
96*10465441SEvalZerodocumentation and browsing the mailing list archives is a good way to
97*10465441SEvalZerobecome familiar with the design of lwIP.
98*10465441SEvalZero
99*10465441SEvalZeroAdam Dunkels <[email protected]>
100*10465441SEvalZeroLeon Woestenberg <[email protected]>
101