wpa_supplicant: Retry when WLAN_STATUS_AUTH_TIMEOUT seen on association attempt#42826
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a targeted retry path for Linux wpa_supplicant association attempts that fail with WLAN_STATUS_AUTH_TIMEOUT, improving resilience during stress/commissioning scenarios.
Changes:
- Track association state and a retry budget in
ConnectivityManagerImpl. - On
disconnectedafter an association start, retrySelectNetworkwhenassoc_status_code == WLAN_STATUS_AUTH_TIMEOUT. - Add additional detail logging around
wpa_supplicantstate transitions.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
src/platform/Linux/ConnectivityManagerImpl.h |
Adds member state for association retries. |
src/platform/Linux/ConnectivityManagerImpl.cpp |
Implements retry logic and initializes retry budget during connect. |
There was a problem hiding this comment.
Code Review
The pull request introduces a retry mechanism for WLAN association timeouts, which is a valuable improvement for connection reliability. The changes include adding a constant for maximum retries, logging additional details during state changes and disconnections, and implementing the retry logic. The overall approach is sound, addressing a transient issue observed during stress testing. One area for improvement is ensuring robust error handling if a retry attempt itself fails to initiate, to prevent the system from entering an inconsistent state.
|
PR #42826: Size comparison from 7df724a to aec6453 Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
|
PR #42826: Size comparison from 7df724a to f766f75 Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
…on attempt Signed-off-by: Maciej Grela <m.grela@samsung.com>
Signed-off-by: Maciej Grela <m.grela@samsung.com>
f766f75 to
b845b19
Compare
|
PR #42826: Size comparison from ce1208d to b845b19 Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
…erface properties handler Signed-off-by: Maciej Grela <m.grela@samsung.com>
|
PR #42826: Size comparison from ce1208d to 527d7bb Full report (27 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32)
|
Signed-off-by: Maciej Grela <m.grela@samsung.com>
|
PR #42826: Size comparison from ce1208d to ac4c94c Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
|
PR #42826: Size comparison from 4a1dff7 to d58ccea Full report (35 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
Summary
During stress testing we discovered that the Linux platform code does not recover properly when the initial SelectNetwork dbus call to wpa_supplicant is not successful. We found this to occassionally happen due to
WLAN_STATUS_AUTH_TIMEOUTerrors. When this happens the following messages are being logged bywpa_supplicant:I have implemented a retry mechanism in the Linux platform
ConnectivityManagerwhich triggers specifically in the case of this error (assuming it's a transient problem). We tested this change in our lab and confirmed it improves the commissioning reliability.Testing
Automated stress testing using the
matter-qaframework.Readability checklist
The checklist below will help the reviewer finish PR review in time and keep the
code readable:
descriptive
“When in Rome…”
rule (coding style)
See: Pull Request Guidelines