> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Wi-Fi architecture

The Wi-Fi software architecture comprises the following components.

**Table : Wi-Fi software components**

| **Component** | **Description**                                                                                                                                                                                                                                                                                       |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| User space    | • Facilitates Wi-Fi parameter configuration and setup.<br /><br />	• 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.<br /><br />	• Initializes the firmware and downloads Board Data Files (BDF) required to bring up the WLAN RF.<br /><br />	• Manages the control path and data path required for the 802.11 protocol. |
| Firmware      | • A software component embedded in the Wi-Fi hardware device.<br /><br />	• Manages low-level communication with the hardware.<br /><br />	• Handles 802.11 protocol-based tasks like scanning for networks, establishing connections, and transmitting data over Wi-Fi hardware.                     |

## **ath11k driver software architecture**

The following figure shows the high-level Wi-Fi software architecture with ath11k driver:

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Technologies/Wi-Fi/media/qli-wi-fi/ath11k-driver.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=a9c362f402d17a4dc4ccb7d92921eb97" alt="Figure : Wi-Fi software architecture with ath11k driver" width="462" height="614" data-path="Technologies/Wi-Fi/media/qli-wi-fi/ath11k-driver.png" />

  <p className="text-sm text-gray-700">
    Figure : Wi-Fi software architecture with ath11k driver
  </p>
</div>

The software architecture of the ath11k driver can be referenced for ath10k/ath12k. The current interface used by WCN3980 is SNOC.

### **User space components**

The user space contains the following key components:

**Table : User space components**

| **Component**                      | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| wpa\_supplicant                    | • Manages secure connections to Wi-Fi networks.<br /><br />	• Supports various security protocols, including WPA3, WPA2, and legacy ones.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Host access point daemon (hostapd) | • Enables a network interface card to function as an access point and authentication server.<br /><br />	• Transforms your device into a wireless hotspot.<br /><br />	• Provides Wi-Fi connectivity and handles authentication to ensure that devices connected to the network are authorized.<br /><br />	• Supports various authentication methods, including WPA, WPA2, WPA3, and Extensible Authentication Protocol (EAP).<br /><br />	• Functions as a remote authentication dial-in user service (RADIUS) client for communication with a RADIUS server.<br /><br />	• Includes an integrated EAP server for certain EAP methods. |

### **Kernel space components**

The kernel space contains the following key components:

**Table : Kernel space components**

| **Component** | **Description**                                                                                                                                                                                                                                                 |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| cfg80211      | • Manages the configuration of wireless devices.<br /><br />	• Interfaces with mac80211, which uses the hardware-specific lower level ath10k, ath11k and ath12k driver.                                                                                         |
| Network stack | • A network stack provided by the OS.<br /><br />	• 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.<br /><br />	• Handles the registration and configuration of the network subsystem through cfg80211. cfg80211 implements this configuration through nl80211 and wireless extensions (WEXT). |

### **ath11k/ath12k driver components**

The ath10k/ath11k/ath12k driver contains the following key components:

| **Component**                      | **Description**                                                                                                                                                                                                                                                                                                  |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MAC interface                      | • Acts as an interface between mac80211 and lower layers of ath10k/ath11k/ath12k driver.<br /><br />	• Interfaces with mac80211 through ath10k\_ops/ath11k\_ops/ath12k\_ops\_wifi7.<br /><br />	• Sends data and management frames to the data path.<br /><br />	• 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.<br /><br />	• 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 (Hexagon) on the SoC.<br /><br />	• Typically, the WMI interface is used for control path transactions, and HTT is used for data path transactions.                            |
| HTT/HAL                            | • Abstracts hardware data structures and implements the recipe for direct MMIO-based register access and memory access.<br /><br />	• Depends on the hardware or chip.<br /><br />	• 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.<br /><br />	• 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.                                                                                                                                               |
| SNOC                               | •  Primary interconnect fabric within a SOC (WCN3980 only).                                                                                                                                                                                                                                                      |

### **Firmware components**

The WLAN firmware runs on a dedicated processor (Q6). The WLAN firmware binary contains the following key components:

* Various 802.11 protocols and the statemachine 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.

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Technologies/Wi-Fi/media/qli-wi-fi/firmware-components.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=4e0534e05550bda48ca52f754e4947c7" alt="Figure : Firmware components" width="1100" height="1385" data-path="Technologies/Wi-Fi/media/qli-wi-fi/firmware-components.png" />

  <p className="text-sm text-gray-700">
    Figure : Firmware components
  </p>
</div>

The following table provides the list of firmware components and their description.

**Table : Firmware components**

| **Component**                          | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Host-firmware interface                | • Wireless Module Interface (WMI) – Control plane API definitions between host and firmware​<br /><br />	• Host Target Interface (HTT) – Data plane API definitions between host and firmware                                                                                                                                                                                                                                   |
| Protocol                               | • Implements various 802.11 standards protocols and state machines, offloads, host command, scan algorithms and event handling                                                                                                                                                                                                                                                                                                  |
| Performance algorithm and MAC services | • Performance algorithm implements performance related software algorithms like rate adaptation, transmit scheduler, Multi-User (MU) scheduler, MU grouping, Resource Unit (RU) allocator, Air Time Fairness (ATF)​ and hardware IP specific: Tx and Rx Data path, MAC control path sequences<br /><br />	• MAC register programming and descriptor setup/completion, coexistence hardware recipes, chip power hardware recipes |
| HAL PHY                                | Common software infrastructure for PHY/RFA hardware and HAL-PHY interface to firmware. ​                                                                                                                                                                                                                                                                                                                                        |
| PHY/RF software                        | • PHY/RFA hardware component access interface implementation modules containing hardware programming sequences/recipes specific to a given PHY/RFA and platform hardware IP​                                                                                                                                                                                                                                                    |
| System software                        | • Implements all platform specific SoC related services                                                                                                                                                                                                                                                                                                                                                                         |
