lwIP
Original author(s) | Adam Dunkels |
---|---|
Developer(s) | lwIP developers group |
Stable release | 2.1.0
/ 26 September 2018 |
Repository | |
Written in | C |
Operating system | multiple |
Platform | embedded systems |
Type | IP stack |
License | Modified BSD license |
Website | savannah |
lwIP (lightweight IP) is a widely used open source TCP/IP stack designed for embedded systems. lwIP was originally developed by Adam Dunkels at the Swedish Institute of Computer Science and is now developed and maintained by a worldwide network of developers.
lwIP is used by many manufacturers of embedded systems. Examples include Altera (in the Nios II operating system), Analog Devices (for the Blackfin DSP chip),[1] Xilinx,[2] Honeywell (for some of their FAA certified avionics systems) and Freescale Semiconductor (Ethernet Streaming SW for Automotive microcontrollers).
The focus of the lwIP TCP/IP implementation is to reduce resource usage while still having a full-scale TCP stack.[3] This makes lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM.
lwIP is used as network stack in ReactOS and Genode[4] and can be used in Minix and GNU Hurd to implement network servers.
lwIP features
Internet layer
- IP (Internet Protocol) 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
- ICMPv6 including MLD for IPv6
Transport layer
- UDP (User Datagram Protocol) including experimental UDP-Lite extensions
- TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit
- Raw sockets (or raw pcbs, depending on the API used)
Application layer
- DNS (Domain Name System)
- SNMP (Simple Network Management Protocol) agent (v1, v2, v3, private MIB support & MIB compiler)
- DHCP (Dynamic Host Configuration Protocol) client
Link layer
- PPP (Point-to-Point Protocol)
- ARP (Address Resolution Protocol) for Ethernet
- Neighbor Discovery Protocol for IPv6
Other
- Specialized raw/native API for enhanced performance (see lwIP functions documentation[5] for details)
- Optional Berkeley-like socket API
- IPv4 Link-local addresses (aka. AutoIP)
- specialized raw API applications included:
See also
References
- ^ "Building Complex VDK/LwIP Applications Using Blackfin Processors ", Kaushal Sanghai, Analog Devices Inc. September 2008
- ^ Siva Velusamy, LightWeight IP (lwIP) Application Examples, Xilinx Inc. June 2009
- ^ (ed.), Yanwen Wu (2010). Software engineering and knowledge engineering : theory and practice. Berlin: Springer. p. 639. ISBN 978-3-642-03717-7.
{{cite book}}
:|last=
has generic name (help) - ^ "Release notes for the Genode OS Framework 9.11".
- ^ lwIP functions documentation
External links
- Adam Dunkels' initial Lwip paper
- lwIP development
- lwIP documentation wiki
- lwIP functions documentation
- lwIP former homepage (obsolete)