Repository navigation
LTE-3100: DFS channel can't be reuse for BH on nop_started - #1541
poornakumar-pk wants to merge 1 commit into
Conversation
Reason for change: It prevents the STA connection attempt when the candidate is invalid Test Procedure: check XLE not use same channel while it is in the nop_started state Risks: Priority: P1 Signed-off-by: poornakumar_mezhiselvam@comcast.com
804984f to
0fa2d4c
Compare
There was a problem hiding this comment.
🟡 Changes recommended
The new validation can reject valid 6 GHz candidates and cause division by zero for certain 80+80 MHz candidates.
2 open issues
What changed in this PR
Backports the LTE-3100 fix from PR #1490 to 8.6_p1b, adding DFS non-occupancy checks before XLE backhaul connection attempts.
Changes:
- Validates cached and scanned candidates against radio capabilities and the runtime channel map before
wifi_hal_connect(). - Rejects unavailable candidates and reschedules the connection state machine.
- Extends DFS checks to 160 MHz operating blocks, including those with non-DFS primary channels.
| File | Description |
|---|---|
| source/utils/wifi_util.c | Extends DFS checks to valid 160 MHz operating blocks. |
| source/core/services/vap_svc_mesh_ext.c | Adds candidate validation and rejection handling before backhaul connections. |
Review effort: Balanced
| candidate_valid = (candidate_channel != 0) && | ||
| (wifi_radio_operationParam_validation(&mgr->hal_cap, candidate_params) == RETURN_OK); |
There was a problem hiding this comment.
Not reachable on rdk-wifi-hal platforms. The 5 GHz capability mask defaults to 20/40/80/160 (move_radio_capability()), so an 80+80 width fails the capability check before the division. #1542 also adds a nchannels == 0 guard. Won't fix.
| } | ||
|
|
||
| candidate_channel = 0; | ||
| convert_freq_to_channel(candidate->external_ap.freq, &candidate_channel); |
| if (candidate_params == NULL) { | ||
| wifi_util_error_print(WIFI_CTRL, "%s:%d: failed to allocate candidate radio parameters\n", | ||
| __func__, __LINE__); | ||
| return; |
There was a problem hiding this comment.
Valid, minor. Fixed on main (#1542 reschedules). Not blocking 8.6.
| if (candidate->external_ap.oper_chan_bw != 0) { | ||
| candidate_params->channelWidth = candidate->external_ap.oper_chan_bw; |
There was a problem hiding this comment.
Not reachable on rdk-wifi-hal platforms. The capability mask defaults to 20/40/80/160, so a 160 MHz parent passes the mask check. The DFS-off rejection this width choice causes doesn't apply to 8.6, because DFS rollout is not planned in 8.6.
mateuszCieslak-GL
left a comment
There was a problem hiding this comment.
Approving for 8.6. This backport has the same gaps as #1540: with DFS disabled on the extender, the gate rejects every parent whose block touches channels 52–144 (for example 44/160), not only channels in NOP, and an allocation failure returns without rescheduling the connection. That shouldn't block 8.6, since DFS isn't enabled on this branch. Please align it with the #1542 follow-up before DFS is enabled here.


Reason for change: It prevents the STA connection attempt when the candidate is invalid
Test Procedure: check XLE not use same channel while it is in the nop_started state
Risks:
Priority: P1
Signed-off-by: poornakumar_mezhiselvam@comcast.com