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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux