WORK IN-PROGRESS

HAL Interface for Reference Platforms(Raspberry Pi 4 & Banana Pi 4)

The Hardware Abstraction Layer (HAL) is to abstract the RDK Wi-Fi requirements at a general level to allow platform independent control. This document explores the available HAL components in the rdkb-haif-wifi directory and identifies those relevant to the reference platforms.

Hal Version : 3

WifiHal Diagram:
Reference: https://github.com/rdkcentral/rdkb-halif-wifi/blob/develop/docs/pages/images/WifiHALDiagram.PNG

Components are listed below:

  • hostapd (host access point daemon) is a user space daemon software enabling a network interface card to act as an access point and authentication server.
  • nl80211/cfg80211 - nl80211 is the interface between user space software (iw etc.) and the kernel (cfg80211 and mac80211 kernel modules, and specific drivers)

The directory contains various HAL implementations, categorized as follows:

rdkb-halif-wifi/
├── build_ut.sh
├── CHANGELOG.md
├── configure.ac
├── CONTRIBUTING.md
├── COPYING -> LICENSE
├── LICENSE
├── NOTICE
├── README.md -> ./docs/pages/halSpec.md
├── docs/
│   ├── pages/
│   ├── generate_docs.sh
├── include/
│   ├── wifi_hal.h
│   ├── wifi_hal_ap.h
│   ├── wifi_hal_client_mgt.h
│   ├── wifi_hal_deprecated.h
│   ├── wifi_hal_emu.h
│   ├── wifi_hal_extender.h
│   ├── wifi_hal_generic.h
│   ├── wifi_hal_radio.h
│   ├── wifi_hal_sta.h
│   ├── wifi_hal_telemetry.h

Wireless (WiFi) HALs

  • wifi_hal.h - Core WiFi HAL (Relevant to RPi4)
  • wifi_hal_ap.h - Includes API to create, configure and read configuration, factory-reset and reset of the VAP.
  • wifi_hal_client_mgt.h - Wifi client management specific APIs.
  • wifi_hal_extender.h - Includes API's used by Plume Mesh.

  • wifi_hal_generic.h - Wifi generic API and types definition used across multiples modules. Includes below API's.

  • wifi_hal_radio.h - Includes API to configure and read configuration, factory-reset and reset of the radio.

  • wifi_hal_sta.h - Includes API to create, configure and read configuration the STA VAP.

  • wifi_hal_telemetry.h - Wifi measurement and Telemetry specific APIs.

  • wifi_hal_deprecated.h - APIs to be deprecated.
  • wifi_hal_emu.h - Includes API for Emulator


Wifi Hal serves as the central interface for interacting with different WiFi components like the radio, access point (AP), station (STA), client management, telemetry, and extenders. The APIs defined in wifi_hal.h are meant to be used across multiple modules of the WiFi stack. For example, the wifi_hal_generic.h file may include basic functionality needed by all other modules, while the wifi_hal_radio.h, wifi_hal_ap.h, and other headers provide specific functionality for each part of the WiFi subsystem.


Source code: https://github.com/rdkcentral/rdkb-halif-wifi


  • No labels