> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.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. |

## **ath1xk driver software architecture**

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

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Wi-Fi/media/qli-wi-fi/ath1xk-driver.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=db4eae34a77a2e824c78a4aa0531043e" alt="Figure : Wi-Fi software architecture with ath1xk driver" width="591" height="841" data-path="archives/2.1/Technologies/Wi-Fi/media/qli-wi-fi/ath1xk-driver.png" />

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

### **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). |

### **ath10k/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 (WCN3988 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-staging/blZpKs_b9On5nj-y/archives/2.1/Technologies/Wi-Fi/media/qli-wi-fi/firmware-components.png?fit=max&auto=format&n=blZpKs_b9On5nj-y&q=85&s=d5ef4cecaee672ac2c664ee4fa866c83" alt="Figure : Firmware components" width="1100" height="1385" data-path="archives/2.1/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 |
