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.
The WLAN stack consists of four primary layers:
Policy Layer: Manages client connections, access points, network selection, auto-connect logic, and persistent configurations.
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.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.Driver Layer:
drivers/: Platform and vendor driver implementations.wlanif (FullMAC driver platform bridge) and wlansoftmac (SoftMAC driver hosting MLME state machines with a C++/Rust FFI bridge).fuchsia.wlan.phy and either fuchsia.wlan.fullmac or fuchsia.wlan.softmac.FIDL.md documents inter-layer communication contracts and stability levels. Refer to that document for layer boundary classifications and the domain error handling strategy.
For test suites, simulated hardware testing, and on-device tests, see tests/README.md.
For instructions on adding features through the stack and cross-cutting build and FFI rules, see AGENTS.md.