Module Documentation

Module Documentation

Heads up. This part of the documentation is for people who want to read or change the firmware itself. If you are here to use PacketRF — set it up, run it, get on the air — you can safely skip this whole tree. Start at PacketRF and follow the user-facing pages from there. Nothing on this side is required reading for an operator.

This is the developer-facing index. Each PacketRF module keeps its own short documentation page next to its source, and the documentation pipeline picks those pages up automatically and renders them alongside the Doxygen output from the public headers.

If you are reading this because you want to contribute, the right order is: pick the module relevant to what you are working on, read its page to understand purpose, ownership, and integration points, and then dive into the code. The pages are written to make the code make sense, not to replace it.

Where module pages live

The discovery convention is intentionally simple. A module page can be either of:

  • src/<module>/<name>-module.md
  • src/<module>/<name>-module.dox
  • app/<name>-module.md
  • app/<name>-module.dox

Pages should start with a @page <id> <Title> directive so they appear in the sidebar and can be cross-referenced with @ref and @subpage.

When adding a new module, the rule of thumb for what to write is: purpose (one paragraph), what the module owns and what it deliberately does not own, the integration points with neighbouring modules, and any non-obvious design decisions that would be expensive to rediscover from the code alone.

Current module pages

Application and runtime

  • Application Module — composition root, startup, task wiring, firmware profile selection.

Networking

  • Network Module — lwIP integration, Ethernet-style netifs, PPP, network task orchestration.
  • IPv4 Pool Module — IPv4 pool manager: static and dynamic pools, allocation, source-driven activation.

NPR (radio side)

  • The full NPR module tree under src/npr (runtime, MAC, PHY, frames, IPv4 segmentation, stats) is documented inside the generated API reference. A consolidated NPR module page is on the TODO list.

Management plane

Configuration and persistence

NEPs and protocol-facing documents

Protocol-facing extensions and design records live separately, in the NPR Enhancement Proposal directory. Those are specification-style documents and are reviewed differently from code or implementation notes.