RDKB-66065: RFC MLO Enable - #1315
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds a mechanism to notify telemetry (via bus-set TR-181 report parameters) whenever the device’s effective MLO/RFC enable state changes, with retry handling to tolerate transient bus failures.
Changes:
- Track last-known MLO RFC enable state and notification retry/pending status in
wifi_ctrl_t. - Compute whether MLO is effectively enabled by scanning VAP MLD configuration and schedule bus updates (with retries) at boot and after relevant webconfig updates.
- Introduce TR-181 parameter name macros for the two telemetry/report paths being updated.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| source/core/wifi_ctrl.h | Adds fields to track last MLO RFC state and notification retry/pending bookkeeping. |
| source/core/wifi_ctrl.c | Implements MLO RFC state evaluation and bus notification scheduling/retry logic; triggers on boot and after MLD group updates. |
| include/wifi_base.h | Adds TR-181 parameter string macros used for telemetry notifications. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
f4dc807 to
cc56574
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
Suppressed comments (1)
source/core/wifi_ctrl.c:3393
update_rfc_mlo_enable()treats any VAP withmld_id < MLD_UNIT_COUNTas “MLO enabled”, but elsewhere (e.g.,update_mld_groups) MLO can be disabled by settingmld_enable = falsewhile leavingmld_idin-range. This can cause false positives (reporting MLO enabled when it’s actually disabled). Gate onmld_enable(and typically skip disabled VAPs) and ignoreUNDEFINED_MLD_ID.
if (isVapSTAMesh(vap->vap_index)) {
continue;
}
if (vap->u.bss_info.mld_info.common_info.mld_id < MLD_UNIT_COUNT) {
mlo_rfc_enable = true;
break;
cc56574 to
04a6348
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (3)
source/core/wifi_ctrl.c:48
set_bus_bool_param()is only used within this translation unit, but it’s declared/defined with external linkage. That increases the chance of duplicate-symbol collisions across the codebase. Consider making itstatic(and updating both the forward declaration and the definition) or moving the definition above its first use to avoid the prototype entirely.
int set_bus_bool_param(bus_handle_t *handle, const char *paramNames, bool data_value);
source/core/wifi_ctrl.c:3384
vapcannot be NULL here because it’s the address of an element invap_array. This check is dead code and can mask real out-of-bounds issues by implying NULL is possible.
wifi_vap_info_t *vap = &wifi_mgr->radio_config[i].vaps.vap_map.vap_array[j];
if (vap == NULL) {
continue;
}
source/core/wifi_ctrl.c:3361
- The doc comment has a grammatical error (“IF there was a RFC status differs…”). Clarifying this improves readability for future maintainers.
* Update the MLO RFC enable status based on the current VAP configurations.
* This function checks all radios and their VAPs to determine if any VAP has a
* valid MLD ID and updates the corresponding MLO RFC enable status IF there was
* a RFC status differs from previously recorded.
Reason for change: Send notification to telemetry whenever MLO is completely disabled on device. Test Procedure: Enable/disable MLO, check if appropriate messages are being sent. Risks: Low Priority: P1 Co-authored-by: Brayan Milczarek <brayan.milczarek@comcast.com> Signed-off-by: Brayan Milczarek <brayan_milczarek@comcast.com>
04a6348 to
d56ef4e
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (1)
source/core/wifi_ctrl.c:3390
update_rfc_mlo_enable()treats anymld_id < MLD_UNIT_COUNTas “MLO enabled”. Elsewhere the codebase consistently gates MLD-related behavior onmld_enableandmld_id != UNDEFINED_MLD_ID(e.g.,source/webconfig/wifi_ovsdb_translator.c:2845and:3072). Aligning this check avoids incorrectly reporting MLO enabled ifmld_idis ever left at a default/inconsistent value whilemld_enableis false.
if (vap->u.bss_info.mld_info.common_info.mld_id < MLD_UNIT_COUNT) {
mlo_rfc_enable = true;
break;
}
Reason for change: Send notification to telemetry whenever MLO is completely disabled on device.
Test Procedure: Enable/disable MLO, check if appropriate messages are being sent.
Risks: Low
Priority: P1