Hostap-Patch causes strange behavior in scan results

Vincent vincent at systemli.org
Tue Jul 25 10:46:01 PDT 2017


Thaaaaaanks for your answer! :)

On 25.07.2017 18:55, Dan Williams wrote:
> On Tue, 2017-07-25 at 18:07 +0200, Vincent wrote:
>> Hi,
>> I wrote a patch to give me feedback about ht and vht capabilities in
>> probe requests. (LEDE)
>>
>> https://github.com/berlin-open-wireless-lab/patches-pending/blob/mast
>> er/patches/hostap_patches/601-probe-mgmt.patch
>>
>> I'm just adding
>>
>> +			struct ieee80211_ht_capabilities ht_capab;
>> +			struct ieee80211_vht_capabilities vht_capab;
> 
> That's the problem.  This struct describes the over-the-air probe
> response (or the beacon, can't tell which you added these to) from the
> AP.  The only fixed fields are the ones at the start of the struct
> (timestamp, beacon_int, capab_info).  The rest are information elements
> that can be given in any order by the AP.

Ahhhh ok. ^^

> Which includes the HT/VHT fields that you're trying to add as fixed
> fields. They can appear anywhere in the rest of the frame, but you're
> assuming they are appearing right after the capability info.  Which
> they don't, as you've found out :)
> 
> You'll need to parse the actual probe response variable info (pointed
> to by the 'variable' member) as information elements and find the
> HT/VHT IEs and then parse those.  Or something.

Ok! :)
I was confused that the probe_req entry was deleted and is now a beacon...
So I will just do something like this in handle_probe_req(...):

if (ieee802_11_parse_elems(mgmt->u.beacon.variable,
	len - (mgmt->u.beacon.variable - data), &elems, 0) ==  ParseFailed)

And then everything I need should be contained in elems?

Or wait. This is already done in this function with

if (ieee802_11_parse_elems(ie, ie_len, &elems, 0) == ParseFailed) {
	wpa_printf(MSG_DEBUG, "Could not parse ProbeReq from "
MACSTR,MAC2STR(mgmt->sa));
return;
}

So elems should already contain the ht/vht fields.
So I will try to give ieee802_11_elems to the ubus function. :D

> But what are you actually trying to do?  If the AP is sending the
> HT/VHT IEs, they will already appear in the probe response frame, so
> whatever is parsing that ieee80211_mgmt struct that you've pasted into
> your mail either isn't finding those IEs, or doesn't have code to parse
> them.

I'm trying to do build some decentralized wireless controller.
I would like to know if a client supports ht and vht. This information
is already contained in the probe request.
So I can calculate if another ap is "better for the client".

I described it here:
https://forum.lede-project.org/t/hostapd-ht-and-vht-flags-in-get-clients/5128

Thanks a lot!
I will instantly try to build a new patch! :D



More information about the Hostap mailing list