Re: brcmfmac: problem using WPS with wpa_supplicant on BCM43362
From: Jörg Krause <hidden>
Date: 2017-02-27 17:04:04
Hi Arend, On Fri, 2017-02-24 at 13:15 +0100, Arend Van Spriel wrote:
On 24-2-2017 11:26, Jörg Krause wrote:quoted
Hi Arend, On Fri, 2017-02-24 at 10:58 +0100, Arend Van Spriel wrote:quoted
On 24-2-2017 10:43, Jörg Krause wrote:quoted
Hi Arend, On Fri, 2017-02-24 at 09:16 +0100, Arend Van Spriel wrote:quoted
On 23-2-2017 21:21, Jörg Krause wrote:quoted
Hi, I am using Linux Kernel v4.9.9 and wpa_supplicant 2.6. When running 'wpa_cli wps_pin any', the following messages are printed: """quoted
wps_pin any[ 4011.779108] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -30 [ 4011.786190] brcmfmac: brcmf_config_ap_mgmt_ie: Set Beacon IE Failed """ .. and nothing happens. The data sheet for the BCM43362 states that the module supports WPS.Hi Jörg, We have never tested WPS with brcmfmac. Most of it is in firmware so it might work. We had some fixes related to setting management IE, but it should be in 4.9. I did not check it (yet).As it turns out, WPS does not work if a network configuration in wpa_supplicant has the flag `mode=2` (access point mode) set: """ ctrl_interface=/var/run/wpa_supplicant update_config=1 network={ ssid="AP" key_mgmt=NONE mode=2 id_str="ap" } """ Setting mode=2 for a network and having ap_scan=1 (default) means if no APs matching to the currently enabled networks are found, a new network (IBSS or AP mode operation) may be initialized (if configured). So, WPS does not work if the interface is operating in AP mode. I wonder, if this is a desired behavior? At least, wpa_supplicant does not complain, but prints "WPS-PBC-ACTIVE", but no messages are following, until "WPS-TIMEOUT".So what do you expect exactly? Are you trying to connect with some other device to this AP interface?Sorry, I got confused. The device operating in AP mode shall be connected to some other AP as a station. Of course, WPS cannot be used to do so as long as the interface is operation in AP mode, as the device should be the WPS enrollee and not the registrar. My bad! Thanks for pointing that out. So, to use WPS for connecting the device to another AP I have to bring the interface into an non-AP mode first. So, I can confirm that using WPS works when the interface is unconfigured. However, if the in the interface is in AP mode and WPS is started the error messages pop up.You mean the message you emailed earlier as below? [ 4011.779108] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -30 [ 4011.786190] brcmfmac: brcmf_config_ap_mgmt_ie: Set Beacon IE Failed You get firmware error -30 which is BCME_NOTFOUND. This can happen in firmware upon deleting an IE. However, it is hard to say what is exactly happening without knowing the message content that goes to firmware. You can enable firmware console logging to see if you get any message regarding this, eg. "wlc_del_ie: IE not in list". Do insmod with debug=0x00100000. if (total_ie_buf_len) { err = brcmf_fil_bsscfg_data_set(ifp, "vndr_ie", iovar_ie_buf, total_ie_buf_len); if (err) brcmf_err("vndr ie set error : %d\n", err); } If this happens in the .start_ap() callback the error is ignored so it should not affect AP operation although beacon may not be setup properly.
I loaded the brcmfmac driver with the debug setting and started wpa_cli wps_pbc while the device operates in AP mode. This is the log after running the command: """ kern.err kernel: [ 73.277473] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -30 kern.err kernel: [ 73.284647] brcmfmac: brcmf_config_ap_mgmt_ie: Set Beacon IE Failed daemon.err wpa_supplicant[176]: Failed to set beacon parameters daemon.notice wpa_supplicant[176]: wlan0: WPS-PBC-ACTIVE kern.debug kernel: [ 73.298749] brcmfmac: CONSOLE: user.notice ACTION_WPA: WPS-PBC-ACTIVE daemon.notice wpa_supplicant[176]: wlan0: WPS-TIMEOUT daemon.err wpa_supplicant[176]: Failed to set beacon parameters kern.err kernel: [ 193.319897] brcmfmac: brcmf_vif_set_mgmt_ie: vndr ie set error : -30 kern.err kernel: [ 193.333464] brcmfmac: brcmf_config_ap_mgmt_ie: Set Beacon IE Failed kern.debug kernel: [ 193.347876] brcmfmac: CONSOLE: wl0: wlc_del_ie: IE not in list user.notice ACTION_WPA: WPS-TIMEOUT """ Note, that the first brcmfmac CONSOLE message is empty, whereas the second one is "wl0: wlc_del_ie: IE not in list". Best regards, Jörg Krause