hostapd AX Client Association Issue w/ 6GHz 320MHz AP

Aditya Kumar Singh quic_adisi at quicinc.com
Fri Aug 16 00:51:50 PDT 2024


On 8/16/24 10:02, Alex Gavin wrote:
> To Whom It May Concern:
> 
> When testing a mt7996-based 6GHz 320MHz AP on a custom 6.10.3+ kernel
> and recent upstream hostapd (commit 70b8f64), AX clients will not associate.
> However, BE clients will associate. Separately, all AX and BE clients will associate
> when the AP is configured to 160MHz. In all cases, the clients are configured to
> the 6GHz BSSID.
> 
> The following is a selection from the configuration file when configuring the AP
> for 320MHz operation:
> 
>      ieee80211be=1
>      channel=37
>      op_class=137
>      he_oper_centr_freq_seg0_idx=31

This seem wrong? HE does not support 320 bandwidth and hence the idx 
should be w.r.t to 160 which should be 47.

>      eht_oper_centr_freq_seg0_idx=31

This is fine.

>      he_6ghz_reg_pwr_type=0
> 
> With this configuration, the 'Channel Width' in the 'Control' field is set to
> '0' (20 MHz). This is located in the '6GHz Operation Information' section of
> the 'HE Operation' IE. Beacons from other 320MHz-configured APs (e.g. ASUS RT-BE96U,
> Netgear RS700S) show the 'Channel Width' field set to '3' (160MHz or 80+80MHz).
> 
> Digging into the beacon creation code for this IE, 'center_idx_to_bw_6ghz()' returns '4'
> for 320MHz operation. This overflows the two bit 'Channel Width' field, setting
> 'Channel Width' field to 0 (also setting the 'Duplicate Beacon' field to '1').
> 
> With the following hacked changes, I am able to associate AX clients again:
> 
> diff --git a/src/ap/ieee802_11_he.c b/src/ap/ieee802_11_he.c
> index a2deda6c4..8b00abad1 100644
> --- a/src/ap/ieee802_11_he.c
> +++ b/src/ap/ieee802_11_he.c
> @@ -252,7 +252,7 @@ u8 * hostapd_eid_he_operation(struct hostapd_data *hapd, u8 *eid)
>                   *      bits 3-5: Regulatory Info
>                   */
>                  /* Channel Width */
> -               if (seg1)
> +               if (seg1 || oper_chwidth == CONF_OPER_CHWIDTH_320MHZ)
>                          control = 3;
>                  else
>                          control = center_idx_to_bw_6ghz(seg0);

So here it will go to center_idx_to_bw_6ghz with value 47 which should 
return 3 which is what is expected.

> 
> Can someone double check this partial configuration? I'm happy to provide the full config
> if needed. If the config is correct, I am happy to submit this as a proper patch with any
> needed modifications.
> 
> Best,

-- 
Aditya




More information about the Hostap mailing list