esp-hal icon indicating copy to clipboard operation
esp-hal copied to clipboard

802.11r support?

Open sivakov512 opened this issue 1 year ago • 5 comments

Hi! After few hours I found that my esp32c3 can't connect to wifi ap if 802.11r enabled. Looks like it's possible to enable (doc), but please consult me how? Can't find any info about it

sivakov512 avatar May 11 '24 15:05 sivakov512

One thing you could try is to change apply_sta_config in src\wifi\mod.rs to set ft_enable

You could just make the unsafe block look like this:

    unsafe {
        cfg.sta.ssid[0..(config.ssid.len())].copy_from_slice(config.ssid.as_bytes());
        cfg.sta.password[0..(config.password.len())].copy_from_slice(config.password.as_bytes());

        cfg.sta.set_ft_enabled(1); // added

        esp_wifi_result!(esp_wifi_set_config(wifi_interface_t_WIFI_IF_STA, &mut cfg))
    }

Probably it will not be enough and we would need to change how the supplicant is compiled. Unfortunately, I don't have access to an 802.11r capable AP to assist more with this

bjoernQ avatar May 14 '24 07:05 bjoernQ

Probably it will not be enough and we would need to change how the supplicant is compiled.

is it hard? If not so then can you explain? I can try and test it within my network

sivakov512 avatar May 14 '24 09:05 sivakov512

Not too hard I guess

There is https://github.com/esp-rs/esp-wireless-drivers-3rdparty - you should use esp-idf of the same version ideally ( https://github.com/esp-rs/esp-wireless-drivers-3rdparty/blob/master/version )

In the sdkconfig.defaults (per chip, e.g. https://github.com/esp-rs/esp-wireless-drivers-3rdparty/blob/master/patch/esp32c3/sdkconfig.defaults ) you need to add CONFIG_ESP_WIFI_11R_SUPPORT=y and run the makefile (with the esp-idf installation activated)

In the end you should have a different libwpasupplicant.a for each chip - everything else should be the same. Just copy over the supplicant to esp-wifi-sys

bjoernQ avatar May 14 '24 09:05 bjoernQ

Ok, I will try. After that I can just make PR with new blobs, right? Is changes you show earlier also required?

sivakov512 avatar May 14 '24 09:05 sivakov512

Ok, I will try. After that I can just make PR with new blobs, right? Is changes you show earlier also required?

Yes, the changes to the code are also required but we should have that configurable somehow. Ideally via https://docs.rs/esp-wifi/0.5.1/esp_wifi/wifi/struct.ClientConfiguration.html

bjoernQ avatar May 14 '24 09:05 bjoernQ

Closing this for now. I don't have a setup to test / work on this. Feel free to submit a PR

bjoernQ avatar Jul 15 '24 08:07 bjoernQ