tree: bef7bc5b7c59a85d75946e80214ddae8bf90274a [search]
  1. .agents/
  2. drivers/
  3. lib/
  4. testing/
  5. tests/
  6. tools/
  7. wlancfg/
  8. wlandevicemonitor/
  9. wlanix/
  10. AGENTS.md
  11. BUILD.bazel
  12. BUILD.gn
  13. FIDL.md
  14. METADATA.textproto
  15. OWNERS
  16. README.md
  17. TESTING.json5
src/connectivity/wlan/README.md

Fuchsia WLAN Stack

Fuchsia's wireless networking stack provides an IEEE Std 802.11 compliant implementation supporting both FullMAC and SoftMAC hardware architectures. The stack is structured into modular layers that communicate through asynchronous FIDL protocols.

Architecture & Layers

The WLAN stack consists of four primary layers:

  1. Policy Layer: Manages client connections, access points, network selection, auto-connect logic, and persistent configurations.

    • wlancfg: Standard Fuchsia WLAN policy service implementing fuchsia.wlan.policy.
    • wlanix: Android-compatible WiFi HAL service implementing fuchsia.wlan.wlanix for Starnix.
    • Note: Products select either wlancfg or wlanix based on system architecture. Both interact with wlandevicemonitor.
  2. Device Management Layer:

    • wlandevicemonitor: Discovers and monitors WLAN physical devices (PHYs), coordinates interface lifecycles (CreateIface, DestroyIface), and vends fuchsia.wlan.sme/GenericSme channels to the active policy component.
  3. Core / Stack Libraries:

    • lib/sme: Station Management Entity (SME) managing client connection states, scanning schedules, security handshakes, and roaming.
    • lib/mlme: MAC Sublayer Management Entity (MLME) providing SoftMAC 802.11 state machines (lib/mlme/rust) and FullMAC translation (lib/mlme/fullmac).
    • lib/: Modular shared libraries spanning IEEE 802.11 protocols, cryptographic primitives (SAE/OWE in fcg-crypto), frame parsing, and FFI transport.
  4. Driver Layer:

    • drivers/: Platform and vendor driver implementations.
      • Platform Drivers: wlanif (FullMAC driver platform bridge) and wlansoftmac (SoftMAC driver hosting MLME state machines with a C++/Rust FFI bridge).
      • Vendor Drivers: Hardware drivers for Broadcom, Intel, and other chipsets implementing fuchsia.wlan.phy and either fuchsia.wlan.fullmac or fuchsia.wlan.softmac.

Protocol & API Boundaries

FIDL.md documents inter-layer communication contracts and stability levels. Refer to that document for layer boundary classifications and the domain error handling strategy.

Testing

For test suites, simulated hardware testing, and on-device tests, see tests/README.md.

Developer & Agent Guidance

For instructions on adding features through the stack and cross-cutting build and FFI rules, see AGENTS.md.