101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								INTRODUCTION
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								lwIP is a small independent implementation of the TCP/IP protocol
							 | 
						||
| 
								 | 
							
								suite that has been developed by Adam Dunkels at the Computer and
							 | 
						||
| 
								 | 
							
								Networks Architectures (CNA) lab at the Swedish Institute of Computer
							 | 
						||
| 
								 | 
							
								Science (SICS).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The focus of the lwIP TCP/IP implementation is to reduce the RAM usage
							 | 
						||
| 
								 | 
							
								while still having a full scale TCP. This making lwIP suitable for use
							 | 
						||
| 
								 | 
							
								in embedded systems with tens of kilobytes of free RAM and room for
							 | 
						||
| 
								 | 
							
								around 40 kilobytes of code ROM.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								FEATURES
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  * IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over
							 | 
						||
| 
								 | 
							
								    multiple network interfaces
							 | 
						||
| 
								 | 
							
								  * ICMP (Internet Control Message Protocol) for network maintenance and debugging
							 | 
						||
| 
								 | 
							
								  * IGMP (Internet Group Management Protocol) for multicast traffic management
							 | 
						||
| 
								 | 
							
								  * MLD (Multicast listener discovery for IPv6). Aims to be compliant with 
							 | 
						||
| 
								 | 
							
								    RFC 2710. No support for MLDv2
							 | 
						||
| 
								 | 
							
								  * ND (Neighbor discovery and stateless address autoconfiguration for IPv6).
							 | 
						||
| 
								 | 
							
								    Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862
							 | 
						||
| 
								 | 
							
								    (Address autoconfiguration)
							 | 
						||
| 
								 | 
							
								  * UDP (User Datagram Protocol) including experimental UDP-lite extensions
							 | 
						||
| 
								 | 
							
								  * TCP (Transmission Control Protocol) with congestion control, RTT estimation
							 | 
						||
| 
								 | 
							
								    and fast recovery/fast retransmit
							 | 
						||
| 
								 | 
							
								  * raw/native API for enhanced performance
							 | 
						||
| 
								 | 
							
								  * Optional Berkeley-like socket API
							 | 
						||
| 
								 | 
							
								  * DNS (Domain names resolver)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								APPLICATIONS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  * HTTP server with SSI and CGI
							 | 
						||
| 
								 | 
							
								  * SNMPv2c agent with MIB compiler (Simple Network Management Protocol)
							 | 
						||
| 
								 | 
							
								  * SNTP (Simple network time protocol)
							 | 
						||
| 
								 | 
							
								  * NetBIOS name service responder
							 | 
						||
| 
								 | 
							
								  * MDNS (Multicast DNS) responder
							 | 
						||
| 
								 | 
							
								  * iPerf server implementation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								LICENSE
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								lwIP is freely available under a BSD license.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								DEVELOPMENT
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								lwIP has grown into an excellent TCP/IP stack for embedded devices,
							 | 
						||
| 
								 | 
							
								and developers using the stack often submit bug fixes, improvements,
							 | 
						||
| 
								 | 
							
								and additions to the stack to further increase its usefulness.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Development of lwIP is hosted on Savannah, a central point for
							 | 
						||
| 
								 | 
							
								software development, maintenance and distribution. Everyone can
							 | 
						||
| 
								 | 
							
								help improve lwIP by use of Savannah's interface, Git and the
							 | 
						||
| 
								 | 
							
								mailing list. A core team of developers will commit changes to the
							 | 
						||
| 
								 | 
							
								Git source tree.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The lwIP TCP/IP stack is maintained in the 'lwip' Git module and
							 | 
						||
| 
								 | 
							
								contributions (such as platform ports) are in the 'contrib' Git module.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								See doc/savannah.txt for details on Git server access for users and
							 | 
						||
| 
								 | 
							
								developers.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The current Git trees are web-browsable:
							 | 
						||
| 
								 | 
							
								  http://git.savannah.gnu.org/cgit/lwip.git
							 | 
						||
| 
								 | 
							
								  http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Submit patches and bugs via the lwIP project page:
							 | 
						||
| 
								 | 
							
								  http://savannah.nongnu.org/projects/lwip/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Continuous integration builds (GCC, clang):
							 | 
						||
| 
								 | 
							
								  https://travis-ci.org/yarrick/lwip-merged
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								DOCUMENTATION
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Self documentation of the source code is regularly extracted from the current
							 | 
						||
| 
								 | 
							
								Git sources and is available from this web page:
							 | 
						||
| 
								 | 
							
								  http://www.nongnu.org/lwip/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								There is now a constantly growing wiki about lwIP at
							 | 
						||
| 
								 | 
							
								  http://lwip.wikia.com/wiki/LwIP_Wiki
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Also, there are mailing lists you can subscribe at
							 | 
						||
| 
								 | 
							
								  http://savannah.nongnu.org/mail/?group=lwip
							 | 
						||
| 
								 | 
							
								plus searchable archives:
							 | 
						||
| 
								 | 
							
								  http://lists.nongnu.org/archive/html/lwip-users/
							 | 
						||
| 
								 | 
							
								  http://lists.nongnu.org/archive/html/lwip-devel/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								lwIP was originally written by Adam Dunkels:
							 | 
						||
| 
								 | 
							
								  http://dunkels.com/adam/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Reading Adam's papers, the files in docs/, browsing the source code
							 | 
						||
| 
								 | 
							
								documentation and browsing the mailing list archives is a good way to
							 | 
						||
| 
								 | 
							
								become familiar with the design of lwIP.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Adam Dunkels <adam@sics.se>
							 | 
						||
| 
								 | 
							
								Leon Woestenberg <leon.woestenberg@gmx.net>
							 |