Skip to content
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

wpa_supplicant gets restarted when changing configs #249

Open
bmurphy23 opened this issue Aug 28, 2024 · 1 comment
Open

wpa_supplicant gets restarted when changing configs #249

bmurphy23 opened this issue Aug 28, 2024 · 1 comment

Comments

@bmurphy23
Copy link

Each VintageNetWiFi config has the WPASupplicant module listed as a child spec, meaning the underlying wpa_supplicant process gets started and killed as a part of that config's life cycle. However, killing wpa_supplicant has some implications, notably removing any interfaces it cares about. In the case of reconfiguring VintageNetWiFi, this is a superfluous step that potentially causes problems due to the interface being removed at the kernel level for a moment. I think there may also be a race in the Interface state machine that can accidentally trigger a 30-second retry due to wpa_supplicant getting killed when reconfiguring.

I'm thinking that WPASupplicant could be managed at the Interface level as some kind of lifetime-supervised process, instead of at the per-config level. The config's up_cmds could include issuing a RECONFIGURE command over the command interface to make wpa_supplicant pick up and apply the new config. For systems that update their config multiple times at runtime, this ensures that wpa_supplicant is a long-lived process that's not directly tied to a specific configuration.

@fhunleth
Copy link
Member

This is by design and important to guarantee that WiFi is set up deterministically.

What attribute are you trying to change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants