Versions Compared

Key

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

...

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 function get_rdk_radio_indices replacing get_rdk_radio_index, which provides an array of rdk_radio_index associated with a particular phy_index. The array will be based on the defined radio_interface_mapping elements.

Use this array to populate the g_wifi_hal.radio_info.

    • get_radio_by_phy_index

This function takes input as phy_index and returns a single radio_info structure. In case of single phy, since there would be multiple radio_info associated with the same phy_index returning a single radio_info structure is incorrect. 

Proposed Change:

All the usage instances of this function was checked. We can remove the usage of this function and fully deprecate it with the below changes:

      • Interface_info_handler: get_radio_by_phy_index is used to get the radio_info instance in which the interface is updated into the hash_map. The right radio_info instance can be passed as an argument to this function in the nl80211_send_and_recv call where the interface_info_handler is passed as callback function pointer. 

The right radio info is then passed as arg to this function and can be accessed without calling get_radio_by_phy_index.

      • wiphy_get_info_handler: This function is passed as callback handler to nl80211_send_and_recv as part of nl80211_init_radio_info. This is called for each radio_info in the g_wifi_hal structure.
        • Pass radio_info as argument to the function nl80211_send_and_recv similar change as that of interface_info_handler.
        • In wiphy_

...

        • get_info_handler, based on the band associated with radio_info process the right band in the nested bands sent with attribute NL80211_ATTR_WIPHY_BANDS. In nl80211, band mapping is defined as per enum nl80211_band.
      • remove_station_from_other_interfaces: Change interface_info structure to have rdk_index associated with this interface. Obtain the right radio_info structure using the function get_radio_by_rdk_index instead of get_radio_by_phy_index.
      • phy_info_handler: This function is passed as callback handler to nl80211_send_and_recv in update_channel_flags which does not use radio_info structure. In the phy_info_handler, based on the band obtained the channel flags has to be updated to the right radio_info structure.
      • wifi_hal_purgeScanResult: get_radio_by_phy_index was used to obtain the interface for purging the scan result. Simplify this by using get_interface_by_vap_index and remove the usage of get_radio_by_phy_index.
      • platform_get_radio_phytemperature: In broadcom platform.c file, get_radio_by_phy_index is called in this function. Instead of this function, obtain the appropriate radio_info pointer by calling get_radio_by_rdk_index.

Onewifi

    • Needs to check further whether there is any direct usage of phy_index instead of rdk_radio_index. Study in progress.

hostap 

    • No changes required in hostap patches.

References

...