Skip to content

drivers: wifi: siwx91x: Fix SLAAC other configuration issues #91465

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

Merged
merged 2 commits into from
Jun 13, 2025

Conversation

jerome-pouiller
Copy link
Contributor

The interface was properly set "dormant" on disconnect. However on startup, it arrived in the system with "awake" status. Hence, some configuration frames were sent before the interface was connected. Then, when the interface was marked awake after the connection, the frames were not sent again since the operational mode did not changed.

Therefore, Router Solicitations were not send, the Router Advertisements were not received and the IPv6 address was not set.

The interface was properly set "dormant" on disconnect. However on startup,
it arrived in the system with "awake" status. Hence, some configuration
frames were sent before the interface was connected. Then, when the
interface was marked awake after the connection, the frames were not sent
again since the operational mode did not changed.

Therefore, Router Solicitations were not send, the Router Advertisements
were not received and the IPv6 address was not set.

Signed-off-by: Jérôme Pouiller <[email protected]>
Copy link
Contributor

@ArunmaniAlagarsamy2710 ArunmaniAlagarsamy2710 left a comment

Choose a reason for hiding this comment

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

I noticed that net_if_dormant_on() and net_if_dormant_off() is added only for STA mode. Just wondering, do we also need to consider handling dormant state for AP mode, or is it not applicable in that case?

jhedberg
jhedberg previously approved these changes Jun 12, 2025
asmellby
asmellby previously approved these changes Jun 12, 2025
It seems there is no functional impact, but it makes sense to also update
the state of the interface when AP is started/stopped.

Signed-off-by: Jérôme Pouiller <[email protected]>
@jerome-pouiller jerome-pouiller dismissed stale reviews from asmellby and jhedberg via 359dd3f June 12, 2025 11:55
@github-actions github-actions bot requested review from jukkar and Kludentwo June 12, 2025 11:56
@jerome-pouiller
Copy link
Contributor Author

v2:

  • also update the state when AP is started/stopped
  • also found a small issue while reporting the AP status

@@ -854,6 +854,7 @@ static int siwx91x_ap_enable(const struct device *dev, struct wifi_connect_req_p
if (IS_ENABLED(CONFIG_WIFI_SILABS_SIWX91X_NET_STACK_NATIVE)) {
net_if_dormant_off(sidev->iface);
}
wifi_mgmt_raise_ap_enable_result_event(sidev->iface, WIFI_STATUS_AP_SUCCESS);
Copy link
Contributor

Choose a reason for hiding this comment

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

I suggest we skip raising the event here, as siwx91x_wifi_module_stats_event_handler already handles the AP success event

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Indeed, I was surprised to find a such issue.

Copy link

@dkalowsk dkalowsk merged commit f6f6196 into zephyrproject-rtos:main Jun 13, 2025
27 checks passed
@jerome-pouiller jerome-pouiller deleted the fix-slaac branch June 24, 2025 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants