Skip to content

RDKCOM-5544: RDKBWIFI-322 Wifi 6/7 Radio capabilities - AP Capabiliti…#1231

Open
tinaelizabeth84 wants to merge 1 commit into
rdkcentral:mainfrom
tinaelizabeth84:RDKCOM-5544
Open

RDKCOM-5544: RDKBWIFI-322 Wifi 6/7 Radio capabilities - AP Capabiliti…#1231
tinaelizabeth84 wants to merge 1 commit into
rdkcentral:mainfrom
tinaelizabeth84:RDKCOM-5544

Conversation

@tinaelizabeth84

@tinaelizabeth84 tinaelizabeth84 commented Jun 25, 2026

Copy link
Copy Markdown

…es (#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.

Signed-off-by:sriraaman-c sriraaman33@gmail.com

…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>
Copilot AI review requested due to automatic review settings June 25, 2026 17:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 PhyIndex and RadioIndex (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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants