RDKCOM-5544: RDKBWIFI-322 Wifi 6/7 Radio capabilities - AP Capabiliti…#1231
Open
tinaelizabeth84 wants to merge 1 commit into
Open
RDKCOM-5544: RDKBWIFI-322 Wifi 6/7 Radio capabilities - AP Capabiliti…#1231tinaelizabeth84 wants to merge 1 commit into
tinaelizabeth84 wants to merge 1 commit into
Conversation
…es (rdkcentral#934) * Changes for Wifi Radio Capability data to be populated in OneWifi Reason for change: The OneWifi/Easymesh needs Radio Capabilities data which is missing. Hence implemented the method to pull the caps from Driver(Hostap) to OneWifi. Co-authored-by: sriraaman-c <sriraaman33@gmail.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds WiFi 6 (HE) / WiFi 7 (EHT) radio capability propagation into OneWifi webconfig and translates those capabilities into EasyMesh capability structures, enabling EasyMesh consumers to access radio capability data that was previously missing.
Changes:
- Updates RadioCap encoding/decoding to carry both
PhyIndexandRadioIndex(RDK radio index) and to serialize/parse HE/EHT capability fields. - Adds an EasyMesh translation helper for WiFi6/WiFi7 capability mapping and wires in a new external-proto callback (
get_radio_cap). - Introduces 802.11ax HE PHY/MAC bit-position defines used during capability translation.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| source/webconfig/wifi_encoder.c | Encodes radiocap with PhyIndex + RadioIndex and emits WiFi6/WiFi7 capability payloads. |
| source/webconfig/wifi_decoder.c | Decodes the new indices and parses WiFi6/WiFi7 capability payloads from radiocap JSON. |
| source/webconfig/wifi_easymesh_translator.c | Translates OneWifi radiocap capabilities into EasyMesh capability structures; adds new external-proto init param. |
| include/wifi_base.h | Adds HE PHY/MAC capability bit-position macros used by the translator. |
| include/webconfig_external_proto_easymesh.h | Extends the external EasyMesh proto interface with get_radio_cap. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+2356
to
+2378
| cJSON *he_phy_cap_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < HE_MAX_PHY_CAPAB_SIZE; j++) { | ||
| cJSON_AddItemToArray(he_phy_cap_array, cJSON_CreateNumber(wifi_prop->radiocap[i].he_phy_cap[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "HEPHYCap", he_phy_cap_array); | ||
|
|
||
| cJSON *he_mac_cap_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < HE_MAX_MAC_CAPAB_SIZE; j++) { | ||
| cJSON_AddItemToArray(he_mac_cap_array, cJSON_CreateNumber(wifi_prop->radiocap[i].he_mac_cap[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "HEMACCap", he_mac_cap_array); | ||
|
|
||
| cJSON *he_mcs_nss_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < HE_MAX_MCS_CAPAB_SIZE; j++) { | ||
| cJSON_AddItemToArray(he_mcs_nss_array, cJSON_CreateNumber(wifi_prop->radiocap[i].he_mcs_nss_set[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "HEMCSNSSSet", he_mcs_nss_array); | ||
|
|
||
| cJSON *he_ppet_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < HE_MAX_PPET_CAPAB_SIZE; j++) { | ||
| cJSON_AddItemToArray(he_ppet_array, cJSON_CreateNumber(wifi_prop->radiocap[i].he_ppet[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "HEPPET", he_ppet_array); |
Comment on lines
+2389
to
+2405
| cJSON *eht_phy_cap_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < EHT_PHY_CAPAB_LEN; j++) { | ||
| cJSON_AddItemToArray(eht_phy_cap_array, cJSON_CreateNumber(wifi_prop->radiocap[i].eht_phy_cap[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "EHTPHYCap", eht_phy_cap_array); | ||
|
|
||
| cJSON *eht_mcs_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < EHT_MCS_NSS_CAPAB_LEN; j++) { | ||
| cJSON_AddItemToArray(eht_mcs_array, cJSON_CreateNumber(wifi_prop->radiocap[i].eht_mcs[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "EHTMCS", eht_mcs_array); | ||
|
|
||
| cJSON *eht_ppet_array = cJSON_CreateArray(); | ||
| for (int j = 0; j < EHT_PPE_THRESH_CAPAB_LEN; j++) { | ||
| cJSON_AddItemToArray(eht_ppet_array, cJSON_CreateNumber(wifi_prop->radiocap[i].eht_ppet[j])); | ||
| } | ||
| cJSON_AddItemToObject(object, "EHTPPET", eht_ppet_array); |
Comment on lines
+626
to
+630
| em_radio_cap_info_t *radio_cap = proto->get_radio_cap(proto->data_model, wifi_prop->radiocap[index].rdk_radio_index); | ||
| if (radio_cap == NULL) { | ||
| wifi_util_error_print(WIFI_WEBCONFIG, "%s:%d: radio_cap not found\n", __func__, __LINE__); | ||
| return webconfig_error_translate_to_easymesh; | ||
| } |
Comment on lines
+405
to
+410
| if (cap_info == NULL) { | ||
| wifi_util_error_print(WIFI_WEBCONFIG, "%s:%d: NULL pointer or get_radio_cap not set\n", __func__, __LINE__); | ||
| return webconfig_error_translate_to_easymesh; | ||
| } | ||
|
|
||
| radio_cap = &wifi_prop->radiocap[radio_index]; |
Comment on lines
+480
to
+482
| unsigned short eht_mac = (unsigned short)radio_cap->eht_mac_cap; | ||
| (void)eht_mac; | ||
|
|
Comment on lines
+4915
to
+4918
| decode_param_bool(object, "WiFi6Supported", value_object); | ||
| if (value_object != NULL) { | ||
| radio_cap->wifi6_supported = (value_object->type & cJSON_True) ? true : false; | ||
| } |
Comment on lines
+4983
to
+4986
| decode_param_bool(object, "WiFi7Supported", value_object); | ||
| if (value_object != NULL) { | ||
| radio_cap->wifi7_supported = (value_object->type & cJSON_True) ? true : false; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…es (#934)
Reason for change: The OneWifi/Easymesh needs Radio Capabilities data which is missing. Hence implemented the method to pull the caps from Driver(Hostap) to OneWifi.
Signed-off-by:sriraaman-c sriraaman33@gmail.com