OneWifi is the RDK-B component responsible for WiFi management, providing control of WiFi parameters, statistics, telemetry, client steering, and optimization across both Gateway and Extender devices. This component is the central WiFi management system for RDK platforms, handling operations across multiple radios, Virtual Access Points (VAPs), and specialized applications. OneWifi bridges high-level configuration interfaces (TR-181 and JSON-based WebConfig) with underlying hardware via the Hardware Abstraction Layer (HAL).
OneWifi manages radio configuration, VAP management, client association handling, DFS channel management, security configuration, and WiFi 6E/7 support. It implements TR-181 data model parameters for WiFi management and integrates with WebPA for cloud-based configuration and monitoring. OneWifi orchestrates all WiFi-related functionality, coordinating between configuration sources, internal database, control engine, and hardware abstraction layer. VAPs are categorized by service type prefixes including private_ssid, iot_ssid, hotspot, and mesh_backhaul to distinguish different service purposes.
The component supports mesh WiFi (EasyMesh Multi-AP protocol), WiFi optimization (client steering), performance measurement (Blaster), motion detection (CSI analytics), channel availability checking (CAC), and statistics collection through a modular application framework. For mesh networking, the system supports both Gateway and Extender device roles with automatic backhaul selection using ranking algorithms based on SNR and Channel Utilization.
graph LR
subgraph "External Systems"
RemoteMgmt["Remote Management"]
LocalUI["Local Web UI"]
CloudSvc["Cloud Services"]
end
subgraph "RDK-B Platform"
subgraph "Remote Management Agents"
ProtocolAgents["Protocol Agents<br>(TR-069, WebPA)"]
end
PandM["PandM"]
PSM["CCSP PSM"]
OneWifi["OneWifi Component"]
OtherComponents["Other RDK-B Components"]
subgraph "Platform Layer"
HAL["WiFi HAL"]
Hostapd["hostapd/wpa_supplicant"]
Linux["Linux System"]
end
end
RemoteMgmt -->|TR-069/WebPA| ProtocolAgents
LocalUI -->|HTTP/HTTPS| ProtocolAgents
CloudSvc -->|WebConfig JSON| OneWifi
ProtocolAgents -->|RBus| OneWifi
OneWifi -->|RBus| PandM
OneWifi -->|RBus| PSM
OneWifi -->|RBus| OtherComponents
OneWifi <-->|HAL APIs| HAL
HAL <-->|nl80211| Hostapd
Hostapd <-->|Driver Interface| Linux
OneWifi <-->|System Events| Linux
classDef external fill:#fff3e0,stroke:#ef6c00,stroke-width:2px;
classDef onewifi fill:#e3f2fd,stroke:#1976d2,stroke-width:3px;
classDef rdkbComponent fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px;
classDef system fill:#fce4ec,stroke:#c2185b,stroke-width:2px;
class RemoteMgmt,LocalUI,CloudSvc external;
class OneWifi onewifi;
class ProtocolAgents,PandM,PSM,OtherComponents rdkbComponent;
class HAL,Hostapd,Linux system;
Key Features & Responsibilities:
OneWifi follows a layered, event-driven architecture designed to provide centralized WiFi management while maintaining separation between configuration interfaces, control logic, persistent storage, and hardware abstraction. The design emphasizes modularity, scalability, and real-time responsiveness to both configuration changes and hardware events. The architecture separates concerns between external configuration sources (TR-181 DML and WebConfig), the central WiFi manager, control engine, database layer, and hardware abstraction layer through well-defined interfaces.
The component operates as a central orchestrator coordinating between multiple subsystems. The WiFi Manager (wifi_mgr_t) maintains global state including radio configurations, VAP mappings, hardware capabilities, and handles for database and control engine instances. The Control Engine (wifi_ctrl_t) processes events from an internal queue including database updates, HAL indications, timeout events, and application requests. The database layer uses OVSDB-based persistent storage with in-memory caching for performance. Configuration changes flow through validation, normalization, and apply pipelines to maintain consistency between external interfaces, internal state, and hardware configuration.
The northbound interface uses TR-181 compliant access through RBus messaging for integration with other RDK-B components and external management systems. WebConfig integration handles cloud-based configuration through JSON subdocuments with schema validation. The southbound interface abstracts hardware interactions through WiFi HAL APIs supporting multiple vendor platforms. Data persistence is achieved through OVSDB database integration with PSM for non-volatile storage across reboots. The application framework allows specialized applications to register for events and extend WiFi functionality without modifying core logic. When CONFIG_IEEE80211BE is enabled, OneWifi supports WiFi 7 (802.11be) Multi-Link Operation (MLO) and Multi-Link Device (MLD) management. The MLO architecture tracks Multi-Link Device identifiers using UNDEFINED_MLD_ID and MLD_UNIT_COUNT constants, implements Wi-Fi Alliance data model extensions in wfa_dml_cb.c for APMLD (Access Point Multi-Link Device) and STAMLD (Station Multi-Link Device) identity tracking, and supports simultaneous operation across 2.4GHz, 5GHz, and 6GHz bands with coordinated channel selection and DFS handling. The OVSDB schema includes versioning flag ONEWIFI_DB_VERSION_UPDATE_MLD_FLAG for WiFi 7 MLD support, while hostapd applies over 30 patches for MLO configuration with independent security, QoS, and power management settings per physical link while maintaining unified MLD identity.
graph TD
subgraph ExternalSystems ["External Systems"]
RemoteMgmt["Remote Management Systems"]
CloudServices["Cloud Services"]
end
subgraph OneWifiComponent ["OneWifi"]
subgraph CoreManagement ["WiFi Manager Core"]
WifiMgr["WiFi Manager<br/>wifi_mgr_t"]
CtrlEngine["Control Engine<br/>wifi_ctrl_t"]
end
subgraph ConfigHandlers ["Configuration Handlers"]
DMLHandler["TR-181 DML Handler"]
WebCfgHandler["WebConfig Handler"]
end
subgraph DataLayer ["Database & Persistence"]
DBLayer["Database Layer<br/>wifi_db_t"]
OVSDB["OVSDB Tables"]
end
subgraph AppFramework ["Application Framework"]
Apps["Specialized Applications<br/>(EasyMesh, Stats, Blaster, CSI, CAC)"]
end
end
subgraph RDKBComponents ["RDK-B Components"]
OtherRDKB["Other RDK-B Components"]
PSM["CCSP PSM"]
end
RemoteMgmt --> DMLHandler
CloudServices --> WebCfgHandler
DMLHandler --> WifiMgr
WebCfgHandler --> WifiMgr
WifiMgr --> CtrlEngine
WifiMgr --> DBLayer
WifiMgr --> Apps
DBLayer --> OVSDB
DBLayer <--> PSM
DMLHandler <--> OtherRDKB
Build-Time Flags and Configuration:
Build-time configuration options, DISTRO features, and compiler flags from Yocto recipe files (ccsp-one-wifi.bb, ccsp-one-wifi.bbappend, ccsp-one-wifi-libwebconfig.bb, ccsp-one-wifi-libwebconfig.bbappend).
| Configure Option | DISTRO Feature | Build Flag | Purpose | Default |
|---|---|---|---|---|
ONEWIFI_CAC_APP_SUPPORT=true | cac | -DONEWIFI_CAC_APP_SUPPORT | Enable Connection Admission Control application for DFS channel availability checking | Enabled |
ONEWIFI_DML_SUPPORT_MAKEFILE=true | N/A | -DONEWIFI_DML_SUPPORT | Enable TR-181 Data Model Layer support for RDK-B integration | Enabled |
ONEWIFI_CSI_APP_SUPPORT=true | N/A | -DONEWIFI_CSI_APP_SUPPORT | Enable Channel State Information application for motion detection and analytics | Enabled |
ONEWIFI_MOTION_APP_SUPPORT=true | N/A | -DONEWIFI_MOTION_APP_SUPPORT | Enable motion sensing application using CSI data | Enabled |
ONEWIFI_HARVESTER_APP_SUPPORT=true | N/A | -DONEWIFI_HARVESTER_APP_SUPPORT | Enable data harvester application for telemetry collection | Enabled |
ONEWIFI_ANALYTICS_APP_SUPPORT=true | N/A | -DONEWIFI_ANALYTICS_APP_SUPPORT | Enable WiFi analytics application for performance monitoring | Enabled |
ONEWIFI_LEVL_APP_SUPPORT=true | N/A | -DONEWIFI_LEVL_APP_SUPPORT | Enable LEVL application support | Enabled |
ONEWIFI_WHIX_APP_SUPPORT=true | N/A | -DONEWIFI_WHIX_APP_SUPPORT | Enable WHIX/Ignite client steering and link quality management | Enabled |
ONEWIFI_BLASTER_APP_SUPPORT=true | N/A | -DONEWIFI_BLASTER_APP_SUPPORT | Enable Blaster application for active WiFi performance measurement | Enabled |
ONEWIFI_MEMWRAPTOOL_APP_SUPPORT=true | Memwrap_Tool | -DONEWIFI_MEMWRAPTOOL_APP_SUPPORT | Enable memory wrapper tool for memory profiling and leak detection | Disabled |
ONEWIFI_RDKB_APP_SUPPORT | N/A | -DONEWIFI_RDKB_APP_SUPPORT | Enable RDK-B specific application layer integration | Enabled |
ONEWIFI_DB_SUPPORT | N/A | -DONEWIFI_DB_SUPPORT | Enable OVSDB database layer support | Enabled |
ONEWIFI_RDKB_CCSP_SUPPORT | N/A | -DONEWIFI_RDKB_CCSP_SUPPORT | Enable RDK-B platform integration | Enabled |
ONEWIFI_OVSDB_TABLE_SUPPORT | N/A | -DONEWIFI_OVSDB_TABLE_SUPPORT | Enable OVSDB table management support | Enabled |
ONEWIFI_STA_MGR_APP_SUPPORT=true | sta_manager | -DONEWIFI_STA_MGR_APP_SUPPORT | Enable Station Manager application for client mode operations | Disabled |
FEATURE_OFF_CHANNEL_SCAN_5G=true | offchannel_scan_5g | N/A | Enable off-channel scanning capability for 5GHz band | Disabled |
| N/A | meshwifi | -DENABLE_FEATURE_MESHWIFI | Enable Mesh WiFi capabilities and EasyMesh protocol support | Disabled |
| N/A | wps_support | -DFEATURE_SUPPORT_WPS | Enable WiFi Protected Setup (WPS) functionality | Disabled |
--enable-easyconnect | EasyConnect | N/A | Enable WiFi Easy Connect (DPP) protocol support | Disabled |
| N/A | CONFIG_IEEE80211BE | -DCONFIG_IEEE80211BE | Enable WiFi 7 (802.11be) and MLO/MLD support | Disabled |
--enable-sm-app | sm_app | N/A | Enable Statistics Manager application | Disabled |
| N/A | halVersion3 | -DWIFI_HAL_VERSION_3 | Enable WiFi HAL Version 3 API support | Enabled |
| N/A | always_enable_ax_2g | -DALWAYS_ENABLE_AX_2G | Force enable WiFi 6 (802.11ax) on 2.4GHz band | Disabled |
RDK-B Platform and Integration Requirements:
halVersion3 for WiFi HAL v3 support, systemd for service management, optional features include meshwifi, cac, sta_manager, Memwrap_Tool, wps_support, EasyConnect, CONFIG_IEEE80211BEwebconfig-framework, telemetry, libsyswrapper, libev, rbus, libnl, ccsp-one-wifi-libwebconfig, trower-base64, ccsp-common-library, utopia, libunpriv, jansson, opensync-headers, avro-c, libparodusCcspPandM, CcspPsm, CcspCommonLibrary, CcspCrSsp, optional WiFiCnxCtrl (if cac enabled), WiFiStaManager (if sta_manager enabled)rdk-wifi-halif (WiFi HAL interface definitions), rdk-wifi-hal (HAL implementation), hal-cm, hal-dhcpv4c, hal-ethsw, hal-moca, hal-mso_mgmt, hal-mta, hal-platform, hal-vlanCcspCrSsp.service, CcspPsmSsp.service must be active before OneWifi.service starts; optional wifi-telemetry.target and wifi-telemetry-cron.service for telemetry collectionDevice.WiFi.* namespace for TR-181 parameter access and event notificationsCcspWifi.cfg for component configuration, CcspDmLib.cfg for data model library settings, rdkb-wifi.ovsschema for OVSDB schema, WifiSingleClient.avsc and WifiSingleClientActiveMeasurement.avsc for Avro telemetry schemasThreading Model:
OneWifi implements a multi-threaded architecture with a central event processing loop and specialized worker threads for different operational domains.
wifi_mgr): Handles component initialization, RBus message registration, serves as entry point for external parameter requests, and coordinates overall system lifecyclewifi_ctrl): Processes events from internal queue (wifi_ctrl_t) including configuration changes, HAL events, timeout events, and application requests using condition variable pattern for efficient event processingwifi_db): Manages OVSDB operations, in-memory cache updates, and database synchronization to avoid blocking main control flow with disk/socket I/Owifi_monitor): Collects periodic radio statistics, client statistics, and telemetry data for Avro serialization and reportingeasymesh_agent): Handles Multi-AP protocol operations, mesh topology management, and backhaul steering (if meshwifi enabled)csi_processor): Processes Channel State Information for motion detection and presence sensing analytics (if CSI app enabled)blaster_worker): Executes active WiFi performance measurement tests for throughput testing (if Blaster app enabled)data_harvester): Collects and aggregates telemetry data for periodic reporting (if Harvester app enabled)wifi_analytics): Processes performance metrics and generates analytics reports (if Analytics app enabled)data_cache_lock (pthread_mutex_t): Protects global WiFi data cache access across wifi_mgr, wifi_ctrl, and wifi_monitor threadsqueue_lock (pthread_mutex_t): Protects event queue operations in wifi_ctrl_tcond (pthread_cond_t): Condition variable for event queue signalingwebconfig_data_lock (pthread_mutex_t): Protects webconfig_ovsdb_data cache structureassociated_devices_lock (pthread_mutex_t): Per-VAP locks for client list protectionInitialization to Active State
OneWifi follows a structured initialization sequence ensuring all subsystems are properly initialized before entering active operation mode. The component performs configuration loading, database initialization, HAL capability discovery, RBus registration, and application framework startup in a predetermined order to guarantee system stability.
%%{init: { "sequence": { "useMaxWidth": false } }}%%
sequenceDiagram
autonumber
participant System as System Startup
participant SSP as Service Support<br/>Platform
participant WifiMgr as WiFi Manager<br/>wifi_mgr_t
participant DB as Database Layer<br/>wifi_db_t
participant HAL as WiFi HAL
participant RBus as RBus
participant Ctrl as Control Engine<br/>wifi_ctrl_t
participant Apps as Application<br/>Framework
System->>SSP: systemd starts OneWifi.service
SSP->>SSP: Load CcspWifi.cfg configuration
SSP->>WifiMgr: wifi_mgr_init()
WifiMgr->>DB: wifi_db_init()
DB->>DB: Initialize OVSDB connection
DB->>DB: Load schema rdkb-wifi.ovsschema
DB-->>WifiMgr: Database handle
WifiMgr->>HAL: wifi_hal_init()
HAL->>HAL: Initialize radio hardware
HAL->>HAL: Load capabilities
HAL-->>WifiMgr: Hardware capabilities
WifiMgr->>RBus: rbus_open()
RBus->>RBus: Register Device.WiFi.* namespace
RBus-->>WifiMgr: Bus handle
WifiMgr->>Ctrl: wifi_ctrl_init()
Ctrl->>Ctrl: Create event queue
Ctrl->>Ctrl: Start control thread
Ctrl-->>WifiMgr: Control handle
WifiMgr->>Apps: Initialize application framework
Apps->>Apps: Load enabled applications
Apps->>Apps: Register event callbacks
Apps-->>WifiMgr: Application handles
WifiMgr->>DB: Sync initial configuration from PSM
DB->>DB: Load persistent WiFi configuration
DB-->>WifiMgr: Configuration loaded
WifiMgr->>Ctrl: Apply initial configuration
Ctrl->>HAL: Configure radios and VAPs
HAL-->>Ctrl: Configuration applied
WifiMgr-->>SSP: Initialization complete
SSP-->>System: Service ready notification
System->>System: Component Active State
Runtime State Changes and Context Switching
During normal operation, OneWifi responds to various configuration changes, hardware events, and application requests that may affect its operational state and behavior.
State Change Triggers:
Context Switching Scenarios:
Initialization Call Flow:
%%{init: { "sequence": { "useMaxWidth": false } }}%%
sequenceDiagram
participant Init as Initialization Process
participant Comp as OneWifi Component
participant DB as Database Layer
participant HAL as Hardware Layer
participant Bus as Message Bus
Init->>Comp: Component Start
Comp->>Comp: Load Configuration
Comp->>DB: Initialize Database
DB-->>Comp: Database Ready
Comp->>HAL: Initialize HAL
HAL-->>Comp: HAL Ready
Comp->>Bus: Register Parameters
Bus-->>Comp: Registration Complete
Comp->>Comp: Start Event Processing
Comp->>Init: Initialization Complete (Active State)
Request Processing Call Flow:
TR-181 parameter set operation (e.g., changing WiFi radio channel):
%%{init: { "sequence": { "useMaxWidth": false } }}%%
sequenceDiagram
participant Client as TR-181 Client<br/>(WebPA/DM)
participant RBus as RBus
participant DML as DML Handler
participant WifiMgr as WiFi Manager<br/>wifi_mgr_t
participant DB as Database Layer<br/>wifi_db_t
participant Ctrl as Control Engine<br/>wifi_ctrl_t
participant HAL as WiFi HAL
Client->>RBus: Set Device.WiFi.Radio.1.Channel=36
RBus->>DML: Parameter set callback
DML->>DML: Validate parameter value
DML->>WifiMgr: Update radio configuration
WifiMgr->>DB: Store configuration to OVSDB
DB->>DB: Update table_Wifi_Radio_Config
DB->>Ctrl: Queue configuration change event
Ctrl->>Ctrl: Process event from queue
Ctrl->>HAL: wifi_setRadioChannel(36)
HAL->>HAL: Apply channel change to hardware
HAL-->>Ctrl: Channel changed
Ctrl->>DB: Update operational state
DB-->>WifiMgr: State synchronized
WifiMgr-->>DML: Configuration applied
DML-->>RBus: Success response
RBus-->>Client: Parameter set complete
WebConfig Subdocument Processing Call Flow:
WebConfig JSON subdocument reception from cloud:
%%{init: { "sequence": { "useMaxWidth": false } }}%%
sequenceDiagram
participant Cloud as Cloud Service
participant WebCfg as WebConfig<br/>Framework
participant Decoder as WiFi Decoder
participant WifiMgr as WiFi Manager
participant DB as Database Layer
participant Ctrl as Control Engine
participant HAL as WiFi HAL
Cloud->>WebCfg: POST WiFi subdocument (JSON)
WebCfg->>Decoder: wifi_webconfig_decode()
Decoder->>Decoder: Parse JSON schema
Decoder->>Decoder: Validate configuration
Decoder->>Decoder: Convert to native structures
Decoder->>WifiMgr: Apply configuration
WifiMgr->>DB: Update OVSDB tables
DB->>DB: Batch update multiple tables
DB->>Ctrl: Queue configuration events
Ctrl->>Ctrl: Process configuration pipeline
Ctrl->>HAL: Apply radio/VAP changes
HAL-->>Ctrl: Configuration applied
Ctrl-->>WifiMgr: Apply complete
WifiMgr-->>Decoder: Success
Decoder-->>WebCfg: Configuration accepted
WebCfg-->>Cloud: 200 OK
OneWifi implements TR-181 data model support for WiFi management. The component implements the Device.WiFi object hierarchy including Radio, SSID, AccessPoint, EndPoint, and associated statistics objects. The implementation supports both standard parameters and RDK-specific extensions for Mesh WiFi, CSI analytics, and client steering.
Device.
└── WiFi.
├── RadioNumberOfEntries (unsignedInt, R)
├── SSIDNumberOfEntries (unsignedInt, R)
├── AccessPointNumberOfEntries (unsignedInt, R)
├── EndPointNumberOfEntries (unsignedInt, R)
├── Radio.{i}.
│ ├── Enable (boolean, R/W)
│ ├── Status (string, R)
│ ├── Name (string, R)
│ ├── OperatingFrequencyBand (string, R/W)
│ ├── Channel (unsignedInt, R/W)
│ ├── AutoChannelEnable (boolean, R/W)
│ ├── OperatingChannelBandwidth (string, R/W)
│ ├── TransmitPower (int, R/W)
│ ├── X_RDK_MLD_ID (unsignedInt, R)
│ └── Stats.
├── SSID.{i}.
│ ├── Enable (boolean, R/W)
│ ├── Status (string, R)
│ ├── Name (string, R/W)
│ ├── SSID (string, R/W)
│ ├── BSSID (string, R)
│ └── Stats.
├── AccessPoint.{i}.
│ ├── Enable (boolean, R/W)
│ ├── Status (string, R)
│ ├── SSIDReference (string, R/W)
│ ├── Security.
│ │ ├── ModesSupported (string, R)
│ │ ├── ModeEnabled (string, R/W)
│ │ ├── KeyPassphrase (string, R/W)
│ │ └── RadiusServerIPAddr (string, R/W)
│ ├── WPS.
│ ├── AssociatedDevice.{i}.
│ │ ├── MACAddress (string, R)
│ │ ├── X_RDK_MLD_ID (unsignedInt, R)
│ │ ├── X_RDK_MLD_Addr (string, R)
│ │ └── LastDataDownlinkRate (unsignedInt, R)
│ └── Stats.
├── EndPoint.{i}.
│ ├── Enable (boolean, R/W)
│ ├── Status (string, R)
│ ├── Profile.{i}.
│ └── Stats.
├── MultiLinkDevice.{i}.
│ ├── MLDAddress (string, R)
│ ├── MLDNumberOfLinks (unsignedInt, R)
│ ├── Link.{i}.
│ │ ├── RadioReference (string, R)
│ │ ├── LinkStatus (string, R)
│ │ ├── LinkID (unsignedInt, R)
│ │ └── Stats.
│ └── Stats.
└── X_RDK_Extensions.
├── CSI.{i}.
├── Harvester.
├── Analytics.
└── Steering.
Device.
└── X_RDKCENTRAL-COM_WiFi.
├── MacFilterList (string, R/W)
└── Config (string, R/W)
OneWifi implements TR-181 parameter support for the Device.WiFi.* object hierarchy with standard TR-181 objects and RDK-specific extensions.
Implementation Details:
OneWifi is organized into specialized modules responsible for different aspects of WiFi management including configuration handling, control logic, database management, hardware abstraction, and application services.
| Module/Class | Description |
|---|---|
| WiFi Manager Core | Central management entity maintaining global state, coordinating between subsystems, managing wifi_mgr_t structure |
| Control Engine | Event-driven processing engine handling configuration changes, HAL events, timeout events through event queue architecture with scheduler for deferred tasks |
| Database Layer | OVSDB-based persistence layer with in-memory caching, schema management, and PSM synchronization |
| DML/TR-181 Handler | Implementation of Device.WiFi.* TR-181 data model with RBus integration for external parameter access |
| WebConfig System | JSON-based configuration decoder/encoder supporting cloud-based configuration and bulk updates with subdocument handlers for private, radio, mesh, dml, and blaster configurations |
| Statistics Monitor | Periodic collection of radio statistics, client statistics, and telemetry reporting with Avro serialization |
| EasyMesh Application | Multi-AP protocol implementation for WiFi mesh networking including topology management and backhaul steering (requires meshwifi DISTRO feature) |
| Mesh VAP Service | Mesh-specific VAP service operations managing mesh_backhaul VAP type with backhaul candidate selection using ranking algorithms based on SNR and Channel Utilization |
| Blaster Application | Active WiFi performance measurement tool for throughput testing and quality assessment |
| CSI Analytics | Channel State Information processing for motion detection and presence sensing applications |
| CAC Application | Connection Admission Control and DFS channel availability checking for radar detection compliance (requires cac DISTRO feature) |
| Client Steering (WHIX) | Link quality monitoring and intelligent client steering for optimal AP association |
| Station Manager | Client mode (STA) connection management for Extender and repeater devices with station interface health monitoring (requires sta_manager DISTRO feature) |
| Service Support Platform | Process lifecycle management, message bus initialization, configuration loading, component entry point |
OneWifi interacts with external RDK-B components, system services, and hardware layers to provide WiFi management functionality.
| Target Component/Layer | Interaction Purpose | Key APIs/Endpoints |
|---|---|---|
| RBus | TR-181 parameter access, event notifications, inter-component communication | rbus_open(), rbus_regDataElements(), rbus_get(), rbus_set(), rbus_publishEvent() |
| CcspPsm | Persistent configuration storage across reboots | PSM_Get(), PSM_Set(), PSM_Del() via wifi_db layer |
| WiFi HAL | Hardware control and configuration | wifi_init(), wifi_setRadioChannel(), wifi_createAp(), wifi_setApSecurity(), event callbacks |
| Telemetry | Statistics and event reporting | t2_event_s(), t2_event_d() for marker-based telemetry |
| WebConfig Framework | Cloud-based configuration reception | wifi_webconfig_decode(), wifi_webconfig_encode(), blob management |
| Parodus/WebPA | Cloud connectivity and management | Message passing through WebConfig subdocuments |
| CcspPandM | Device management coordination | Via RBus for system-level parameters |
| hostapd/wpa_supplicant | Low-level WiFi protocol handling | Via libhostap and HAL layer |
| OVSDB | Local database for configuration caching | Table operations via wifi_db layer |
Key Interaction Flows:
OneWifi implements multiple performance optimization strategies to minimize latency, reduce resource consumption, and maximize WiFi throughput across different operational scenarios.
OVSDB Cache Layer:
DML Cache:
Condition Variable Pattern:
Event Batching:
Transaction Batching:
Schema Versioning:
Capability Caching:
Asynchronous HAL Operations:
Channel Selection:
Client Association:
Lock Granularity:
Resource Pooling: