lwIP Wiki



lwIP, a light-weight TCP/IP stack[]

This documentation describes the design and implementation of a small TCP/IP stack called lwIP that is small enough to be used in minimal systems. lwIP is designed to be completely modular. The core stack is an IP implementation, on top of which the user can choose to also add TCP, UDP, DHCP, and many other protocols, including various features of each of these protocols (for example, IP fragmentation and reassembly). More features comes at the cost of increased code size and complexity, and this is fully tunable to the user's needs.

Further, lwIP is designed to operate with or without an OS, and with or without support for threads. It works on 8-bit microprocessors and 32-bit microprocessors, and supports both little- and big-endian systems.

lwIP directory structure[]

The following list is a brief overview of the file and directory structure for lwIP:

lwip/src/api - the Netconn API, Socket API, and the tcpip thread
lwip/src/core - core code: DHCP, TCP, UDP, and support code (memory, netif, etc)
lwip/src/core/ipv4 - IPv4, ICMPv4
lwip/src/core/ipv6 - IPv6, ICMPv6
lwip/src/core/snmp - SNMP
lwip/src/include - all headers and includes
lwip/src/netif - ARP and sample Ethernet driver
lwip/src/netif/ppp - PPP

To get the code for lwIP, see the main Savannah project page.