# nxp/wifi_nxp architecture

> Architecture diagram of the GitHub repository nxp/wifi_nxp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nxp/wifi_nxp
- Repository: https://github.com/nxp/wifi_nxp

## Overview

This is NXP’s embedded Wi-Fi middleware for MCUXpresso SDK: applications configure and manage wireless connectivity through WLAN APIs, which coordinate scanning and association with the Wi-Fi driver; the driver exchanges commands, events, and packets with device firmware over a transport, while the network port exposes interfaces to the TCP/IP stack. Other product branches provide supplicant integration, uAP, DHCP/DNS, shell control, diagnostics, and Wi-Fi Alliance testing. The README gives only a high-level overview, so the graph includes capabilities supported by the tree but omits uncertain internal wiring.

Main entry points: [`wifidriver/mlan_glue.c`](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/mlan_glue.c) (MLAN glue), [`wlcmgr/wlan.c`](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wlcmgr/wlan.c) (WLAN manager), [`wifidriver/wifi.c`](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wifi.c) (Wi-Fi API), [`incl/wlcmgr/wlan.h`](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/incl/wlcmgr/wlan.h) (WLAN API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_management["Wi-Fi management"]
  node_wlan["WLAN manager<br/>[wlan.c]"]
  node_wlan_api["WLAN API<br/>[wlan.h]"]
end

subgraph group_driver["Driver and transport"]
  node_wifi["Wi-Fi API<br/>[wifi.c]"]
  node_glue["MLAN glue<br/>[mlan_glue.c]"]
  node_mlan["MLAN driver<br/>[mlan_api.c]"]
  node_sdio["SDIO transport<br/>[wifi-sdio.c]"]
  node_fw_download["Firmware download<br/>[firmware_dnld.c]"]
  node_firmware["Wi-Fi firmware<br/>[wlan_bt_fw.h]"]
end

subgraph group_network["Network services"]
  node_net_port["Network port<br/>[net.c]"]
  node_netif["Wi-Fi netif<br/>[wifi_netif.c]"]
  node_dhcp_dns["DHCP and DNS<br/>[dhcp-server.c]"]
end

subgraph group_interfaces["Application interfaces"]
  node_supplicant["Supplicant adapter<br/>[rtos_wpa_supp_if.c]"]
  node_shell["Wi-Fi shell<br/>[wifi_shell.c]"]
  node_sigma["Sigma agent<br/>[sigma_agent.c]"]
end

subgraph group_support["Middleware support"]
  node_network_tools["Network tools<br/>[iperf.c]"]
  node_wls["Wireless location<br/>[wls_api.c]"]
  node_osa["OS abstraction<br/>[osa.c]"]
  node_crypto["Wi-Fi crypto<br/>[wmcrypto.c]"]
end

node_app(("Application"))
node_tcpip["TCP/IP stack"]
node_host["Host platform"]

node_app -->|"calls"| node_wlan_api
node_wlan_api -->|"dispatches"| node_wlan
node_wlan -->|"requests Wi-Fi"| node_wifi
node_wifi -->|"dispatches commands"| node_glue
node_glue -->|"calls"| node_mlan
node_mlan -->|"returns events"| node_glue
node_glue -->|"transfers frames"| node_sdio
node_sdio -->|"exchanges data"| node_firmware
node_fw_download -->|"downloads firmware"| node_sdio
node_wlan -.->|"integrates security"| node_supplicant
node_supplicant -->|"calls Wi-Fi APIs"| node_wifi
node_net_port -->|"configures interfaces"| node_netif
node_net_port -->|"forwards packets"| node_tcpip
node_net_port -->|"passes received packets"| node_glue
node_dhcp_dns -->|"provides services"| node_tcpip
node_shell -->|"invokes commands"| node_wlan_api
node_sigma -.->|"controls WLAN"| node_wlan_api
node_network_tools -->|"uses networking"| node_tcpip
node_host -->|"provides OS services"| node_osa
node_wlan -->|"uses synchronization"| node_osa
node_wifi -.->|"uses cryptography"| node_crypto

click node_wlan "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wlcmgr/wlan.c"
click node_wlan_api "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/incl/wlcmgr/wlan.h"
click node_wifi "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wifi.c"
click node_glue "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/mlan_glue.c"
click node_mlan "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/mlan_api.c"
click node_sdio "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wifi-sdio.c"
click node_fw_download "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/firmware_dnld/firmware_dnld.c"
click node_firmware "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifi_bt_firmware/wlan_bt_fw.h"
click node_supplicant "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wpa_supp_if/rtos_wpa_supp_if.c"
click node_net_port "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/port/net/net.c"
click node_netif "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/port/net/wifi_netif.c"
click node_dhcp_dns "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/dhcpd/dhcp-server.c"
click node_shell "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/cli/wifi_shell.c"
click node_sigma "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/sigma_agent/sigma_agent.c"
click node_network_tools "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/nw_utils/iperf.c"
click node_wls "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wls/wls_api.c"
click node_osa "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/port/osa/osa.c"
click node_crypto "https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wmcrypto/wmcrypto.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_wlan,node_wlan_api toneBlue
class node_wifi,node_glue,node_mlan,node_sdio,node_fw_download,node_firmware toneAmber
class node_net_port,node_netif,node_dhcp_dns toneMint
class node_supplicant,node_shell,node_sigma toneRose
class node_network_tools,node_wls,node_osa,node_crypto,node_app,node_tcpip,node_host toneIndigo
```

## Components

### Wi-Fi management

- [WLAN manager](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wlcmgr/wlan.c): `wlcmgr/wlan.c`
- [WLAN API](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/incl/wlcmgr/wlan.h): `incl/wlcmgr/wlan.h`

### Driver and transport

- [Wi-Fi API](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wifi.c): `wifidriver/wifi.c`
- [MLAN glue](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/mlan_glue.c): `wifidriver/mlan_glue.c`
- [MLAN driver](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/mlan_api.c): `wifidriver/mlan_api.c`
- [SDIO transport](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wifi-sdio.c): `wifidriver/wifi-sdio.c`
- [Firmware download](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/firmware_dnld/firmware_dnld.c): `firmware_dnld/firmware_dnld.c`
- [Wi-Fi firmware](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifi_bt_firmware/wlan_bt_fw.h): `wifi_bt_firmware/wlan_bt_fw.h`

### Network services

- [Network port](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/port/net/net.c): `port/net/net.c`
- [Wi-Fi netif](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/port/net/wifi_netif.c): `port/net/wifi_netif.c`
- [DHCP and DNS](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/dhcpd/dhcp-server.c): `dhcpd/dhcp-server.c`

### Application interfaces

- [Supplicant adapter](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wifidriver/wpa_supp_if/rtos_wpa_supp_if.c): `wifidriver/wpa_supp_if/rtos_wpa_supp_if.c`
- [Wi-Fi shell](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/cli/wifi_shell.c): `cli/wifi_shell.c`
- [Sigma agent](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/sigma_agent/sigma_agent.c): `sigma_agent/sigma_agent.c`

### Middleware support

- [Network tools](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/nw_utils/iperf.c): `nw_utils/iperf.c`
- [Wireless location](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wls/wls_api.c): `wls/wls_api.c`
- [OS abstraction](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/port/osa/osa.c): `port/osa/osa.c`
- [Wi-Fi crypto](https://github.com/nxp/wifi_nxp/blob/release/25.06.00/wmcrypto/wmcrypto.c): `wmcrypto/wmcrypto.c`

### Other components

- **Application**
- **TCP/IP stack**
- **Host platform**

## Connections

- Application → WLAN API: calls
- WLAN API → WLAN manager: dispatches
- WLAN manager → Wi-Fi API: requests Wi-Fi
- Wi-Fi API → MLAN glue: dispatches commands
- MLAN glue → MLAN driver: calls
- MLAN driver → MLAN glue: returns events
- MLAN glue → SDIO transport: transfers frames
- SDIO transport → Wi-Fi firmware: exchanges data
- Firmware download → SDIO transport: downloads firmware
- WLAN manager → Supplicant adapter: integrates security
- Supplicant adapter → Wi-Fi API: calls Wi-Fi APIs
- Network port → Wi-Fi netif: configures interfaces
- Network port → TCP/IP stack: forwards packets
- Network port → MLAN glue: passes received packets
- DHCP and DNS → TCP/IP stack: provides services
- Wi-Fi shell → WLAN API: invokes commands
- Sigma agent → WLAN API: controls WLAN
- Network tools → TCP/IP stack: uses networking
- Host platform → OS abstraction: provides OS services
- WLAN manager → OS abstraction: uses synchronization
- Wi-Fi API → Wi-Fi crypto: uses cryptography
