[PATCH 10/16] PR: Fix 6 GHz channel exclusion in EDCA PASN PR element construction
Peddolla Harshavardhan Reddy
peddolla.reddy at oss.qualcomm.com
Sun Jul 12 23:29:58 PDT 2026
Currently wpas_pr_setup_edca_channels() unconditionally skips 6 GHz
operating classes, preventing 6 GHz channels from being included in
the EDCA (11mc) channel list even when the device supports 6 GHz.
Add an allow_6ghz parameter to wpas_pr_setup_edca_channels() and
pass pr.support_6ghz at the call site, matching the existing pattern
in wpas_pr_setup_ntb_channels(). Also pass pr->cfg->support_6ghz to
pr_copy_channels() in pr_prepare_pasn_pr_elem() for the EDCA path
so that 6 GHz channels are correctly included in the PASN PR element
when the device is 6 GHz capable.
Fixes: 328ab369615e ("PR: Add PR element into PASN Auth1 frame")
Signed-off-by: Peddolla Harshavardhan Reddy <peddolla.reddy at oss.qualcomm.com>
---
src/common/proximity_ranging.c | 3 ++-
wpa_supplicant/pr_supplicant.c | 8 +++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c
index 91c8eae20..7786dcd6e 100644
--- a/src/common/proximity_ranging.c
+++ b/src/common/proximity_ranging.c
@@ -1656,7 +1656,8 @@ static int pr_prepare_pasn_pr_elem(struct pr_data *pr, struct wpabuf *extra_ies,
if (ranging_type & PR_EDCA_BASED_RANGING) {
pr_get_edca_capabilities(pr, &edca_caps);
pr_buf_add_edca_capa_info(buf, &edca_caps);
- pr_copy_channels(&op_channels, &edca_caps.channels, false);
+ pr_copy_channels(&op_channels, &edca_caps.channels,
+ pr->cfg->support_6ghz);
} else if (ranging_type & PR_NTB_OPEN_BASED_RANGING ||
ranging_type & PR_NTB_SECURE_LTF_BASED_RANGING) {
pr_get_ntb_capabilities(pr, &ntb_caps);
diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c
index 5a8aee652..bb070a6e7 100644
--- a/wpa_supplicant/pr_supplicant.c
+++ b/wpa_supplicant/pr_supplicant.c
@@ -230,7 +230,8 @@ static int wpas_pr_op_class_to_chan_params(u8 op_class, u8 op_channel,
static void
wpas_pr_setup_edca_channels(struct wpa_supplicant *wpa_s,
struct pr_channels *chan,
- u32 bw_bitmap, u32 preamble_bitmap)
+ u32 bw_bitmap, u32 preamble_bitmap,
+ bool allow_6ghz)
{
struct hostapd_hw_modes *mode;
int cla = 0, i;
@@ -242,7 +243,7 @@ wpas_pr_setup_edca_channels(struct wpa_supplicant *wpa_s,
mode = get_mode(wpa_s->hw.modes, wpa_s->hw.num_modes, o->mode,
is_6ghz_op_class(o->op_class));
- if (!mode || is_6ghz_op_class(o->op_class) ||
+ if (!mode || (!allow_6ghz && is_6ghz_op_class(o->op_class)) ||
!wpas_pr_edca_is_valid_op_class(bw_bitmap, preamble_bitmap,
o))
continue;
@@ -668,7 +669,8 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s,
wpas_pr_setup_edca_channels(wpa_s, &pr.edca_channels,
capa->pd_bandwidths,
- capa->pd_preambles);
+ capa->pd_preambles,
+ pr.support_6ghz);
pr.ntb_format_and_bw =
wpas_pr_best_ntb_format_bw(capa->pd_bandwidths,
capa->pd_preambles);
--
2.34.1
More information about the Hostap
mailing list