# Architecture
Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/wlan_sw_overview.html](https://docs.qualcomm.com/doc/80-70015-14/topic/wlan_sw_overview.html)
The high-level architecture of Wi-Fi software comprises the following components:
| Component | Description |
| --- | --- |
| User space |
- Facilitates Wi-Fi parameter configuration and setup.
- Supports factory testing and debugging.
|
| Kernel space | Facilitates communication between the driver and the application
layers. |
| Driver |
- Facilitates communication between the operating system (OS) and
the wireless network hardware.
- Initializes the firmware and downloading Board Data Files (BDF)
required to bring up the WLAN RF.
- Manages the control path and data path required for the 802.11
protocol.
|
| Firmware |
- A software component embedded in the Wi-Fi hardware device.
- Manages low-level communication with the hardware.
- Handles 802.11 protocol-based tasks like scanning for networks,
establishing connections, and transmitting data over Wi-Fi
hardware.
|
## ath11k driver software architecture
Source: [https://docs.qualcomm.com/doc/80-70015-14/topic/wlan_sw_overview.html](https://docs.qualcomm.com/doc/80-70015-14/topic/wlan_sw_overview.html)
The following figure shows the high-level Wi-Fi software architecture with ath11k
driver:

### User space components
The user space contains the following key components:
| Component | Description |
| --- | --- |
| wpa\_supplicant |
- Manages secure connections to Wi-Fi networks.
- Supports various security protocols, including WPA3, WPA2,
and legacy ones.
|
| Host access point daemon (hostapd) |
- Enables a network interface card to function as both an
access point and an authentication server.
- Transforms your device into a wireless hotspot.
- Provides Wi-Fi connectivity and handles authentication to
ensure that devices connected to the network are
authorized.
- Supports various authentication methods, including WPA,
WPA2, WPA3, and Extensible Authentication Protocol (EAP).
- Functions as a remote authentication dial-in user service
(RADIUS) client for communication with a RADIUS server.
- Includes an integrated EAP server for certain EAP
methods.
|
### Kernel space components
The kernel space contains the following key components:
| Component | Description |
| --- | --- |
| cfg80211 |
- Manages the configuration of wireless devices.
- Interfaces with mac80211, which uses the hardware-specific
lower level ath11k driver.
|
| Network stack |
- A network stack provided by the OS.
- Supports functions to manage the driver and handle various
TCP/IP protocols as data flows to the driver.
|
| mac80211 |
- Implements open-source WLAN protocols as part of the Linux
kernel.
- Handles the registration and configuration of the network
subsystem through cfg80211. cfg80211 implements this
configuration through nl80211 and wireless extensions
(WEXT).
|
### ath11k driver components
The ath11k driver contains the following key components:
| Component | Description |
| --- | --- |
| MAC interface |
- Acts as an interface between mac80211 and lower layers of
ath11k driver.
- Interfaces with mac80211 through ath11k_ops.
- Sends data and management frames to the data path.
- Sends configuration commands to the WMI path.
|
| Control path | Performs operations such as scan, authentication, and
association. |
| Data path |
- Manages the data traffic transmitted and received by
WLAN.
- Supports various features to ensure optimal
performance.
|
| Host software-firmware interface | Includes WMI, HTT, and HAL. |
| WMI/HTT |
- Implements high-level protocols between the host driver and
firmware running on WLAN Qualcomm Hexagon™ Digital Signal
Processor (Q6) on the SoC.
- Typically, the WMI interface is used for control path
transactions, and HTT is used for data path transactions.
|
| HAL |
- Abstracts hardware data structures and implements the recipe
for direct MMIO-based register access and memory
access.
- Depends on the hardware or chip.
- Interfaces between data path driver and WLAN hardware in a
highly optimized packet path implementation.
|
| Host interface for bus abstraction |
- Provides host-target bus abstraction services.
- Abstracts the peripheral control interface express
(PCIe).
|
| PCIe | A hardware interface in the driver. |
| Copy engine (CE) |
- Implements hardware pipe, standard ring interface (SRNG),
based communication channel between the host driver and
firmware running on the CE interface over PCIe.
|
### Firmware components
Firmware runs on a dedicated processor (Q6). It enables the following
functionality:
- Various 802.11 protocols and the state machine of software modules
- Performance-related software algorithms like rate adaptation, coexistence, MIMO,
and OFDMA
- Core MAC hardware programming recipes
- Uniform MAC/PHY service interface to upper layers
- Core PHY and RF hardware programming recipes. For example, RF calibration, BDF,
and RADAR.
Last Published: Oct 14, 2024
[Previous Topic
Features](https://docs.qualcomm.com/bundle/publicresource/80-70015-14/topics/wi_fi_features.md) [Next Topic
Software](https://docs.qualcomm.com/bundle/publicresource/80-70015-14/topics/Check_WLAN_host_and_SS_platform_driver_source_codes.md)