On Fri, Apr 24, 2020 at 03:45:39PM -0700, Rajkumar Manoharan wrote: > Do not account VHT IEs for total beacon length and also add 6 GHz checks > in Wide band VHT channel switch, VHT Tx power and Vendor VHT IE > construction. It would be correct to remove the IEs that are specific to VHT, but that list of elements does not look correct. "Wide band VHT channel switch" is called "Wide Bandwidth Channel Switch subelement" and it is included in the "Channel Switch Wrapper element". It is not VHT specific in the current standard baseline. Can you please clarify why it would not be allowed on the 6 GHz band? "VHT Tx power IE" is called "Transmit Power Envelope element" in the current standard baseline, i.e., it is not specific to VHT. Can you please clarify why it would not be allowed on the 6 GHz band? Furthermore, it does not look like these changes are really needed since the cases covered here are all for invalid configuration cases: > diff --git a/src/ap/beacon.c b/src/ap/beacon.c > @@ -452,7 +452,8 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd, > - if (hapd->conf->vendor_vht) { > + if (hapd->conf->vendor_vht && > + !is_6ghz_op_class(hapd->iconf->op_class)) { > buflen += 5 + 2 + sizeof(struct ieee80211_vht_capabilities) + > 2 + sizeof(struct ieee80211_vht_operation); Why would this be needed? vendor_vht=1 is used only on the 2.4 GHz band and it would not be valid to set it when operating on 6 GHz. > @@ -558,8 +559,7 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd, > #ifdef CONFIG_IEEE80211AC > - if (hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac && > - !is_6ghz_op_class(hapd->iconf->op_class)) { > + if (hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac) { > pos = hostapd_eid_vht_capabilities(hapd, pos, 0); > pos = hostapd_eid_vht_operation(hapd, pos); > pos = hostapd_eid_txpower_envelope(hapd, pos); Why would this be needed? ieee80211ac=1 is used only on the 5 GHz band (not including 6 GHz) and it would not be valid to set it when operating on 6 GHz. > @@ -1156,7 +1156,8 @@ int ieee802_11_build_ap_params(struct hostapd_data *hapd, > #ifdef CONFIG_IEEE80211AC > - if (hapd->conf->vendor_vht) { > + if (hapd->conf->vendor_vht && > + !is_6ghz_op_class(hapd->iconf->op_class)) { > tail_len += 5 + 2 + sizeof(struct ieee80211_vht_capabilities) + > 2 + sizeof(struct ieee80211_vht_operation); Why would this be needed? vendor_vht=1 is used only on the 2.4 GHz band and it would not be valid to set it when operating on 6 GHz. > diff --git a/src/ap/ieee802_11_vht.c b/src/ap/ieee802_11_vht.c > @@ -176,6 +176,9 @@ u8 * hostapd_eid_wb_chsw_wrapper(struct hostapd_data *hapd, u8 *eid) > + if (is_6ghz_op_class(hapd->iconf->op_class)) > + return eid; This function is called only if ieee80211ac=1 configuration is used. Why would that be used if operating on 6 GHz? > @@ -234,6 +237,9 @@ u8 * hostapd_eid_txpower_envelope(struct hostapd_data *hapd, u8 *eid) > + if (is_6ghz_op_class(hapd->iconf->op_class)) > + return eid; This function is called only if ieee80211ac=1 configuration is used. Why would that be used if operating on 6 GHz? > @@ -428,6 +434,9 @@ u8 * hostapd_eid_vendor_vht(struct hostapd_data *hapd, u8 *eid) > + if (is_6ghz_op_class(hapd->iconf->op_class)) > + return eid; This function is called only if vendor_vht=1 configuration is used. Why would that be used if operating on 6 GHz? -- Jouni Malinen PGP id EFC895FA _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap