-
Notifications
You must be signed in to change notification settings - Fork 7.4k
drivers: wifi: siwx91x: Fix/connect bugfixes #90049
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
drivers: wifi: siwx91x: Fix/connect bugfixes #90049
Conversation
- changed the BSSID value in siwx91x_status from STA MAC address to MAC address of connected AP Signed-off-by: Nitin Pandey <nitin.pandey@silabs.com>
- Extracting MFP from security mode instead of join feature bitmap Signed-off-by: Nitin Pandey <nitin.pandey@silabs.com>
- Setting default value of passive scan dwell time of 400ms as SDK doesn't configure default value. Signed-off-by: Nitin Pandey <nitin.pandey@silabs.com>
|
@@ -736,6 +737,9 @@ siwx91x_configure_scan_dwell_time(sl_wifi_scan_type_t scan_type, uint16_t dwell_ | |||
dwell_time_active); | |||
break; | |||
case SL_WIFI_SCAN_TYPE_PASSIVE: | |||
if (!dwell_time_passive) { | |||
dwell_time_passive = SIWX91X_DEFAULT_PASSIVE_SCAN_DWELL_TIME; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you need to also apply a fix to dwell_time_active
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, a default dwell time is only needed for passive scan because the firmware enforces a minimum value (5ms), and we set it to 400ms to avoid limit check failures. For active scan, there is no such minimum enforced by the firmware, so we don't need to apply a similar fix to dwell_time_active.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, when dwell_time_active == 0
, what is the actual scan delay?
BTW, why would we use a different default value than Wiseconnect? I assume Wiseconnect has the same requirement than Zephyr, right? So, either 5ms is fine and we should not introduce yet another value, either 5ms is wrong and it must be fixed in HAL + Wiseconnect.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a distinction in how Active and Passive scan timeouts are handled in the firmware:
- For Active scans, if the Wiseconnect passes a value of zero, the firmware automatically uses the default timeout of 100ms.
- For Passive scans, if the Wiseconnect passes zero, the firmware checks if the value is within the valid range [5ms, 1000ms]. If it receives zero, it returns an error to the SDK indicating invalid input.
In both scenarios, WiSeConnect simply forwards the value provided by the user without making any changes.
To address this issue, we have two options:
- We can have Zephyr reject the scan command if the user enters zero or leaves the dwell time unspecified.
- Alternatively, if we want to permit this, we can set the timeout for Passive scans to 400ms by default in Zephyr, while for Active scans, no change is necessary since the firmware already handles it.
What do you suggest ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can set the timeout for Passive scans to 400ms by default in Zephyr, while for Active scans
While adding this feature it was a deliberate decision not to have any default in the Zephyr Wi-Fi management, as it relies purely on the drivers, the standard doesn't define ranges (neither in the MIB nor in the primitives, primitives just have min and max parameters with no ranges)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I comment explaining the default active scan time is 100ms. Would be nice.
Ok Sure |
Resolved these three bugs in this PR:
Passive scan is failing if user doesn't provide any dwell time because SDK is not sending 400 ms to firmware according to spec.
BSSID values got changed after connection, Before connection its showing BSSID of AP and after connection its showing BSSID of STA connected.
Status is showing DISABLE after connection in WPA3 – SDK is not updating global variable of join feature bit map.