Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

draw.io Diagram
diagramNameComparision.drawio
revision1

Main difference that we can derive are:

...

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.

Gliffy Diagramdrawio
diagramNamewifi architecture.drawio
revision
macroId17bf0a81-a69d-4393-9b3d-f71308ab1a36
nameWi-Fi_Architecture
pagePin1


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.

...

Let us see in what types of network topology one wireless enabled RDK box can operate. We can see two use cases here,
In first case we will see a straight forward network where we will have an IP headend for TV channels, VOD,  etc.

draw.io Diagram
diagramNameWifi1.drawio
revision1
Image Removed

  • In the above picture, the data will be received by a RDK Broadband device which will be our entry point to the home network. This will act as a video gateway and an internet router also. The network connectivity from RDK broadband device to IP headend will be through a high speed network such as fiber optics, etc.
  • From the RDK broadband device, all clients in a home network will receive internet and video data through the wireless network. The RDK broadband device will be the access point and video devices such as Raspberry Pi will act as wifi clients.

In second use case, we wanted to show how a legacy network can be extended to operate with wifi enable devices,
In the figure, we use a RDK Video gateway to receive data from Cable media and relay to a RDK broadband device through MoCA network. In this network topology,

draw.io Diagram
diagramNamemoca2.drawio
revision1
Image Removed

RDK client devices will be able to access the QAM channel from channel from the Video gateway and internet through the broadband device. Video and internet data will be received by the Broadband Device and sent to Wireless clients.

...

  • It dynamically detect the Network interfaces, send notifications to subscribers
  • Supports diagnostics both local and cloud based applications
  • Setup and update the network routes based on priorities, wifi connection status, availability, etc
  • It also Listen to home networking updates to determine the routes for which communication to be established in outside world
  • It provide Modular approach to add/remove new network interface types and also provide support for configuring routing rules

Refer to netsrvmgr for more detail such as APIs, Events and Error codes.

...

In the below sequence diagram, we will see how an HTML application will interact with Wifi manager through Service manager. We can see that for each functionality we have an uniform API name across different component, which enable simplicity in development and the set off APIs can be mapped easily. For example, If we take one API that is getConnectionType(), which we can use to get the active interface type which may be Wifi or LAN interface.

draw.io Diagram
diagramNamesequence.drawio
revision1
Image Removed

In first place, we will have Java Script functions registered with Service manager. Then Service manager will have an internal implementation for that API with error handling and managing result.
When the call is propagated, to the actual handler daemon (Wifi manager) through message bus, it will be translated to a IARM RPC call. 

...

Here we will walkthrough the different RDK component involved in the process and starting from Application which is the imitator, ending with Wi-Fi HAL which is the provider of the functionality. We will also see the messaging formats in which the RDK components communicate. 


draw.io Diagram
diagramNamewifi2.drawio
revision1
Image Removed

Initiating the connection: Here application may need to enable the WiFi if required. In which case he has call the initialization routine and network manager will handle the further operation

...

  • First we need to have the OEM or SOC provider driver and firmware available with us so that we can integrate with our platform.
  • There are Generic linux wireless packages need to be integrated with the platform.
  • Most importantly, all the compatibility issues regarding Wifi driver and platform need to be addressed before hand, so that there is no issues regarding performance or connection glitches.
  • We will need build support files for integration.
  • A new HAL has to be written for the platform.

draw.io Diagram
diagramNamewifi3.drawio
revision1
Image Removed

RDK Wifi Specification mentions, all communication from network manager to the Wifi Driver has to be through WPA supplicant. So the basic requirement is to add WPA supplicant and its related packages such as netlink library and wireless tools. When all the dependency are added to the platform, we have to write a Wi-Fi HAL customized in our platform. Then we have to add the Wifi support in build framework via adding appropriate packages in image recipe as well as machine configuration file.

...

 To know more about SoC/Application level APIs details use in RDK, refer the link  WIFI API Documentation