lwIP Wiki
Advertisement

The raw API (sometimes called native API) is an event-driven API designed to be used without an operating system that implements zero-copy send and receive. This API is also used by the core stack for interaction between the various protocols. It is the only API available when running lwIP without an operating system.

Multithreading issues

When running in a multithreaded environment, raw API functions may only be called from the core thread (aka. the tcpip-thread) since raw API functions are not protected from concurrent access (aside from pbuf- and memory management functions).

Raw API applications may never block since all packet processing (input and output) as well as timer processing (TCP mainly) is done in a single execution context.

Modules

The raw API provides access to

  • network layer protocol (IPv4/IPv6)
  • transport layer protocols
    • UDP
    • TCP/IP
    • RAW IP
    • ICMP
    • IGMP
  • application layer protocols
    • DHCP
    • AUTOIP
    • SNMP
  • network interface management functions
  • memory and packet buffer management functions (both dedicated pools and a heap)
  • the operating system abstraction layer

@todo: create sub-chapters for each module!

Advertisement