Interpreting information elements from beacons and probe responses.

Jouni Malinen j at
Sun Feb 5 04:04:34 EST 2012

On Sat, Feb 04, 2012 at 08:24:44PM +0100, Adam Mikuta wrote:
> 1. We have AP configured as open. wpa_supplicant is getting bss_info_handler:
> bss[NL80211_BSS_CAPABILITY] - without WEP support flag
> bss[NL80211_BSS_BEACON_IES] - without WPA Information Element
> bss[NL80211_BSS_INFORMATION_ELEMENTS] - without WPA Information Element
> Everything is clear.
> 2. Now AP is reconfigured to WPA and restarted.

Are you saying that the AP is using the same BSSID and the same SSID,
but completely different security configuration?

> Driver gets new beacon with WPA Information Element and WEP support
> flag. wpa_supplicant gets bss_info_handler:
> bss[NL80211_BSS_CAPABILITY] - with WEP support flag
> bss[NL80211_BSS_BEACON_IES] - with WPA Information Element
> Driver didn't get probe response yet, so IEs are not updated:
> bss[NL80211_BSS_INFORMATION_ELEMENTS] - without WPA Information Element

Why did the AP not get Probe Response frame now, but has received it

> 3. Is this the correct behavior? Or maybe driver should wait for probe
> response before sending message to supplicant?

Which message are you talking about? wpa_supplicant would request a scan
before fetching the scan results and that scan would likely receive a
Probe Response frame if such was received previously.

> 4. If this behavior is correct... How supplicant should interpret
> information which he got?

This sequence does not sound very likely to happen in real life. Do you
have a normal use case where you can see this?

> As I can see in wpa_supplicant_ctrl_iface_scan_result function it will
> check if we have the WEP support flag (we have it). And also check
> with wpa_bss_get_ie if we have WPA Information Element. The function
> wpa_bss_get_ie checks only information elements from probe response.
> So we don't have it. Network is recognized as WEP.

That sounds like a reasonable thing to do in this case. The IEs from
Probe Response frames are preferred over the ones used in Beacon frames
to support multi-SSID scenarios where there may be different parameters
in use. I don't see any reason to change this unless you can show a
common use case where this can cause real issues.

Jouni Malinen                                            PGP id EFC895FA

More information about the HostAP mailing list