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

Compare with Current View Page History

« Previous Version 9 Next »

Scope

  • Design and implement and test single wiphy design for Onewifi

Background

By default Banana Pi R4 uses official supported BE14 wifi7 card from Banana Pi. Driver for BE 14 card is designed in such a way that all the wireless radios (2.4G/5G/6g) are mapped under single phy for supporting MLO in Wi-Fi 7. However, current rdk-wifi-hal associated with Onewifi is not supporting this mechanism. 

RDKM In collaboration with comcast will design Single wiphy use case for Onewifi/rdk-wifi-hal/hostap. This page will capture the design changes to achieve this.

Block diagram

Main Assumption:

The radio_interface_mapping_t structure part of wifi_hal_generic.h is used to define the mapping of phy to a particular radio along with the primary interface. Structure declaration is as below:

typedef struct {
    unsigned int phy_index;                  /* Phy Index */
    unsigned int radio_index;               /* Radio Index, 0 - 2.4G, 1 - 5G, 2 - 6G */
    char radio_name[16];                     /* Readable radio name */
    wifi_interface_name_t interface_name;  / Primary interface associated with the radio */
}__attribute__((packed)) radio_interface_mapping_t;

We will use this structure to map the multiple radio to the same phy.  

For e.g. in case of the current implementation, the elements of the structure for a 3 radio will be as below (indicating different phy index for different radio): 

{ 0, 0, "radio1", "wlan0"},

{ 1, 1,  "radio2", "wlan1"},

{ 2, 2, "radio3", "wlan2"},

In case of single phy, the elements of this structure for a 3 radio will have the same phy mapped to different radio index indicated in green.

{ 0, 0, "radio1", "wlan0"},

{ 0, 1,  "radio2", "wlan1"},

{ 0, 2, "radio3", "wlan2"},

Low Level Design Changes

This section will provide details on the changes in different modules to support Single wiphy usecase.

 rdk-wifi-hal

    • wiphy_dump_handler

      In wiphy_dump_handler, the global object g_wifi_hal's (an instance of wifi_hal_priv_t) is populated with the radio info associated with each phy.

      Here there is a function get_rdk_radio_index which takes in phy_index and provides a single radio_index as output. 

Proposed change: Introduce a new function get_rdk_radio_indices replacing get_rdk_radio_index, which provides an array of rdk_radio_indices associated



References



  • No labels