[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