You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

https://etwiki.sys.comcast.net/display/CE/%5bShared%5d+WiFi

https://etwiki.sys.comcast.net/display/APPS/WIFI+Manager+API


RDK Wi-Fi Sub-system overview

In this section we will get an overview on the kind of Wifi support offered by RDK, how WPA supplicant is playing an important role on managing Wifi Driver, event notification and communication to different applications

In RDK we support integrated Wi-Fi chips as well as USB based Wi-Fi adapters. Implementation differences between on board Wi-Fi & USB Wi-Fi adapter are abstracted from Upper layers i.e. application doesn’t know what kind of Wi-Fi device or connection they are accessing. 

RDK Wifi uses wpa_supplicant wireless daemon for connection management with the Wi-Fi driver. wpa_supplicant is designed to be a "daemon" that runs in the background and acts as the backend component controlling the wireless connection. wpa_supplicant also offers a control and monitoring interface to handle different wireless commands. Wi-Fi subsystem uses generic drivers such as NL80211 brings in wide range of vendor equipment's under coverage.

RDK Wi-Fi stack extensively uses commonly available Linux wireless utilities which brings most of the USB based and on-chip wireless equipment under our coverage. It provides support for diagnostics and connection management from remote and native applications. It uses IARM, which is a Linux D-BUS based communication protocol for managing Wi-Fi event notification and communication across different applications.

WiFi is a new features that is added in RDK video community devices. Recently Wi-Fi features is added to a Hardware Development (Raspberry Pi) video platform. As of now feature wise almost covered the client and access point related things, and we are continuing to work on remote management and diagnostics functionalities to be included into the Wi-Fi code.

Where does Raspberry-Pi Wi-Fi stand?

1.Basic Feature wise R-PI Wi-Fi is almost at the same level as that of other RDK platforms.

Main difference that we can derive are:

In RPI: 

  • Raspberry-Pi is light weight and the abstraction layers are mainly written around common linux utilities.
  • In R-PI we have a partial set of TR-181 APIs implemented which is needed for basic debugging.

In Other RDK Platform:

  • In case of Other commercial RDK platforms, some proprietary code is used along with generic wireless code.
  • Network manager can facilitate  on-boarding process through a service called as lostfound.
  • Also more OEM/SoC calls are used to expose more private features.

Wi-Fi Architecture

In this section, we will  get the details on the architecture, layers, and how different RDK components interact with the wifi driver to enable Core wifi functionality.


Application:
      In top of the eco-system we have wide range of application which requires wireless network access. This may be a cloud based UI application, a diagnostics webpage or a console application such as test automation kit which will be required to verify readiness of a new RDK box with respect to different component features. This can be a HTML based webpage or a native console application requesting Wi-Fi functionalities.


Service manager:
      Service manager is the contact point between external applications and native RDK. It is present in RDK as a library which when plugged in to a browser such as WPE or Qt enhances its capability to make communication from web applications to native RDK components through Java script. This exposes Java Script as well as native APIs, have decision making ability to route the request to appropriate RDK component.


IARM Message Bus:
     RDK provides a common message and event notification mechanism known as IARM which passes the calls from upper layer i.e. service manager to actual network manager. A D-Bus based event and messaging mechanism propagates requests from application layer to lower layers. Sends event notification from Lower (network or HAL) layer to application layer.


Wi-Fi Network Manager:
      Wi-Fi network manager is a daemon which handles network states and network interfaces. It handles Wireless initialization and management. This maintains the Wi-Fi state machine, initializes Wi-Fi subsystem & manages connection & disconnection events.


Wi-Fi generic HAL:
      Provides a set of APIs as per RDK specification for connection, management & diagnostic related activities. Abstracts implementation details and SoC dependencies from network management layer.
Linux wireless utility:
     Tools such as wpa_supplicant or net-link library which provides support for most of the common Wi-Fi chips.
Driver & Firmware:
     Provided by SoC/OEM manufacturer.

Wi-Fi Service Manager

Wi-Fi Network Manager

Wi-Fi Integration requirement

Code Walk-through

Wi-Fi HAL APIs

Debugging and Log analysis

  • No labels