[PATCH] Add support for HE PHY type in neighbor reports

Pablo MG pmartin-gomez at freebox.fr
Mon Jan 19 03:52:49 PST 2026


Hello,

Le 17/01/2026 à 12:31, Trevor North a écrit :
> Add support for HE PHY type in neighbor reports as defined in
> IEEE Std 802.11-2024 dot11PHYType.
>
> To the best of my understanding this is the intended behaviour and I
> have observed no adverse effects with the clients I have available in my
> environment. I must caveat however that I am far from a subject matter
> expert and most of my clients are modern.
This is a part of the standard I'm interested in and as far as I 
understand it, the PHY Type field is more intended for non HT/VHT/HE/EHT 
STAs; for HT/VHT/HE/EHT STAs you have the bits in the BSSID Information 
field. But I don't think there is harm in updating the PHY Type to the 
newest PHY type supported.
> diff --git a/wpa_supplicant/rrm.c b/wpa_supplicant/rrm.c
> index 74f190e34..dabbf8cfa 100644
> --- a/wpa_supplicant/rrm.c
> +++ b/wpa_supplicant/rrm.c
> @@ -805,8 +805,10 @@ int wpas_get_op_chan_phy(int freq, const u8 *ies, size_t ies_len,
If you are going to update this function to support HE, you should also 
update it to support (correctly) 6 GHz operation. If the current 
frequency is in the 6 GHz band, both `ht_oper` and `vht_oper` are NULL, 
and `sec_chan` and `vht` have their default so 
`ieee80211_freq_to_channel_ext` is going to return the wrong `op_class` 
(correct band but wrong bandwidth).
>   		return -1;
>   	}
>   
> +	int he = get_ie_ext(ies, ies_len, WLAN_EID_EXT_HE_OPERATION) != NULL;
> +
>   	*phy_type = ieee80211_get_phy_type(freq, ht_oper != NULL,
> -					   vht_oper != NULL);
> +					   vht_oper != NULL, he);
>   	if (*phy_type == PHY_TYPE_UNSPECIFIED) {
>   		wpa_printf(MSG_DEBUG, "Cannot determine phy type");
>   		return -1;
> diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c
> index a09f47620..07b59b198 100644
> --- a/wpa_supplicant/wnm_sta.c
> +++ b/wpa_supplicant/wnm_sta.c
> @@ -926,8 +926,10 @@ static int wnm_nei_rep_add_bss(struct wpa_supplicant *wpa_s,
Same issue than with `wpas_get_op_chan_phy`
>   		return -2;
>   	}
>   
> +	int he = wpa_bss_get_ie_ext(bss, WLAN_EID_EXT_HE_OPERATION) != NULL;
> +
>   	phy_type = ieee80211_get_phy_type(bss->freq, (ht_oper != NULL),
> -					  (vht_oper != NULL));
> +					  (vht_oper != NULL), he);
>   	if (phy_type == PHY_TYPE_UNSPECIFIED) {
>   		wpa_printf(MSG_DEBUG,
>   			   "WNM: Cannot determine BSS phy type for Neighbor Report");

Best regards,

Pablo MG




More information about the Hostap mailing list