| AUI Tab Group | ||
|---|---|---|
| ||
Overview of OneWifi's Architecture and Design Evolution OneWifi was created developed to resolve address the architectural problems and issues encountered during Wi-Fi features challenges faced during the development and field deployment of its predecessor, CcspWifiAgent. The earlier previous Wi-Fi stack was utilized an overlay of multiple Wi-Fi processes, as seen in depicted on the left side of the above Figure 1. below diagram. In this architecture, the CcspWifiAgent and Wireless Manager processes being acted as independent configuration components of for Wi-Fi parameters, posed which led to significant synchronization issues in synchronizing the between states and data. A dedicated process, the Mesh Agent, was the synchronizer entity. In case of anything detrimental happening to used to synchronize these components. However, if any adverse events impacted the Mesh Agent, the two synchronization between the processes would often become misaligned. In addition to these synchronization challenges be frequently out of sync. Along with that, the Stats Manager and Band Steering Manager being the other two entities of introduced further complexity to the Wi-Fi stack, the interfaces to and from . The numerous interfaces between the Wi-Fi driver and baseband were manyfold and thus caused the baseband also led to reentrancy issues. Apart from the Beyond synchronization and reentrancy issues, there were other serious problems related to persistent storage, huge amount of vendor proprietary code and poor debugging, triaging toolings.concerns, the previous architecture also faced other significant challenges, including:
These challenges necessitated the development of OneWifi to streamline the architecture, improve reliability, and enhance maintainability. OneWifi Architecture OverviewThe following sections outline the key components of the OneWifi architecture, as depicted in below diagram Wi-Fi DriverThe Wi-Fi driver, depictedshown in [1] of Figure 2: OneWifi Internal Architecturethe above diagram, is provided by the SoC vendor as part of SDK and interactsthe Software Development Kit (SDK). It primarily interfaces with the baseband hardware primarily forto perform lower MAC functionalities such as(Medium Access Control) functionalities, including:
Wi-Fi HAL (Hardware Abstraction Layer)The Wi-Fi HAL Layer, depictedrepresented in [2] of Figure 2: OneWifi Internal Architecture, implements abstraction functionalities for upper layer software entities to execute SoCthe above diagram, provides an abstraction layer that enables upper-layer software components to perform SoC-independent function calls. Most of the implementation of this layer is architected with OpenSource software likeThis layer is largely built using open-source software such as HostAp and cfg80211/netlink80211 libraries. If the vendor providedvendor’s driver is cfg80211 compliant, the existing HAL implementation should workwill seamlessly toprovide allthe required abstraction functionalities to upper-layer components. In caseIf the driver is not compliant, the vendor needs tomust implement the specified HAL functions specifiedas defined in HAL Specifications 3.0. Wi-Fi Core ControllerThe Wi-Fi Core Controller, depictedshown in [3] of Figure 2: OneWifi Internal Architecture, is the heart and soul of OneWifi stack. This entity is responsible for interacting withthe above diagram, acts as the central component of the OneWifi stack. It interfaces with the Wi-Fi driver viathrough the HAL abstraction layer as far as the control plane and stats plane is concerned. The layerfor both control and statistics planes. The Core Controller serializes all configuration and statsstatistics-related queries to the driver, ensuring aserialized driveraccess and thuspreventing multiplereentrancy relatedissues. Services FrameworkThe Services frameworkFramework, depictedillustrated in [4] of Figure 2: OneWifi Internal Architecturethe above diagram, provides abilitythe capability to create, configure, and modifymanage Wi-Fi Virtual Access Point Services(VAP) services, also known as Wi-Fi Networks)networks. The types of network services that can be created are listed below.include:
Wi-FiAppsApplications FrameworkThe Wi-Fi Applications frameworkFramework, depictedshown in [5] of Figure 2: OneWifi Internal Architecture, is a registrar ofthe above diagram, serves as a registry for Wi-Fi applications that can register with requirements of events, stats, periodicity of stats etc. The framework facilitates easy access toapplications. It allows applications to register their requirements, such as event notifications, statistics, and periodicity of data collection. This framework provides access to:
OneWifi Applications FrameworkThe high-level architecture of the technology is depicted in Figure 3:OneWifi Applications Framework is illustrated in above diagram. Applications can register with the framework, specifying capabilitytheir capabilities, and startbegin receiving events and statistics from the core components of the OneWifi stack and thereby algorithms in application can take appropriate course of actions. A wide of variety type of applications. This integration allows the applications' algorithms to take real-time actions based on the incoming data. A variety of application types are currently supported and tested, some of the categories areincluding:
Applications can either be an integral part of the OneWifi process or can be executing as a process running in the CPE external to OneWifi in which caserun as external processes on the CPE (Customer Premises Equipment). In the latter case, the framework creates a virtual adapter that facilitates seamless data communication between the OneWifi stack and the application. In case, the Wi-Fi application executes as a process outside OneWifi process, as the above Figure 4: External Apps and OneWifi Communication depicts, RBUS facilitatesFor applications running as external processes, as depicted in above diagram, RBUS handles all categories of data exchanges between the OneWifi stack and the external application. Data Model ManagerThe Data model managerModel Manager, depicted in [6] of Figure 2: OneWifi Internal Architecture is an abstraction ofshown in first diagram, abstracts various Wi-Fi data model specifications such as, including TR-181 or, WFA MultiAP Data Elements or, and BBF Data modelsModels. This module also abstractsmanages the database technology used by OneWifi for persistent storage purposes. Data Model AbstractionTwoOneWifi supports two main data model specifications are supported by OneWifi.:
Database AbstractionOneWifi needs to storeTo manage persistent storage of configuration, RFC, and someother operational parameters persistently. To achieve that, OneWifi usesutilizes a database abstraction layer that. This layer hides the intricaciescomplexities of use ofusing different relational database. This abstraction layer candatabases, allowing OneWifi to work with any database likevarious database technologies, such as MySQL, OVS or Postgress that might be the deployed database technology of customer, or PostgreSQL. OneWifi uses the OVS database as its primary persistent storage mechanism. Platform ManagerThe Platform managerManager, depicted in [6] of Figure 2: OneWifi Internal Architecturefirst diagram, abstracts platform-specific intricacies and differences, enabling OneWifi to operate on various platforms. BUS AbstractionThe Bus abstraction enables OneWifi runAbstraction layer allows OneWifi to operate on multiple bus technologies. CurrentThe supported bus technologies areinclude:
DBUSEnable macro definition namely
UBUSEnable macro definition namely
OS AbstractionAbstractingThe OS specific functionalitiesAbstraction layer allows OneWifi to run onacross multiple Operating Systemsoperating systems. Currently supported Operating Systems areoperating systems include:
The OneWifi process is multi-threaded . A color-coded model of the different threads is depicted in Figure 5: Threads in OneWifi. The different threads communicate with each other via, as depicted in below diagram. The various threads communicate with one another through a priority-enabled events queue to manage their interactions. Core ThreadThe main thread isprimary thread, referred to as the Core threadThread (color-coded in green) that, is responsible for interacting with lower-layer entities (drivers etc.), such as the drivers. This thread serializes all interactions with the driver, whether the interaction isthey occur in the control plane or the statsstatistics plane. This thread is also responsible for publishing statsAdditionally, the Core Thread is tasked with publishing statistical data to Wi-Fi applications at the required periodicity required, as specified by the applications. Stats Orchestration ThreadThe stats orchestration threadStats Orchestration Thread (color-coded in yellow) is responsible for orchestrating stats and events requirements acrosshandles the orchestration of statistics and event requirements for all registered Wi-Fi applications. The threadIt maintains a stats cache that, which is periodically updated by the Core thread. The thread is responsible for organizing stats data in buckets as required by registered Wi-FiThread, and organizes the stats data into specific buckets according to the needs of the registered applications. Data Model ThreadThe data model threadData Model Thread (color-coded in pink) is responsible for maintaining a data model cache that, which is updated by the Core threadThread whenever a change inoperational data occurschanges. The cache is also updated as and when some stats changein response to any changes in statistics. This thread isimplements the handler implementation offunctions for the data model's SET and GET functionsoperations. HAL Events ThreadThe HAL events threadEvents Thread (color-coded in sky blue) is a dormant thread that is woken up wheneverremains dormant until an event occurs,or amanagement frame is received. The thread is responsible for submittingUpon activation, this thread submits the event or frame to the Core threadThread for further processing. Operating Modes & Data Model |