Message ID | 20200326135737.26351-1-shay.bar@celeno.com |
---|---|
State | Changes Requested |
Headers | show |
Series | Add Extended NSS BW Support | expand |
On Thu, 2020-03-26 at 15:57 +0200, Shay Bar wrote: > Based on IEEE P802.11-REVmdTM/D3.0, October 2019 > section 9.4.2.157.2 VHT Capabilities Information field Hmm. How's this useful if you cannot set CF2 etc.? johannes
Hi Johannes, It's useful in case you need to be able to support 160Mhz BW but only at 1/2 NSS (the 2nd row in Table 9-272 of "IEEE P802.11-REVmdTM/D3.0, October 2019") In this case, you need to set bit30 (Extended NSS BW Support) of VHT Capabilities Information field. -----Original Message----- From: Johannes Berg <johannes@sipsolutions.net> Sent: Thursday, 26 March 2020 16:27 To: Shay Bar <Shay.Bar@celeno.com>; hostap@lists.infradead.org Cc: Eliav Farber <Eliav.Farber@celeno.com> Subject: Re: [PATCH] Add Extended NSS BW Support External Email On Thu, 2020-03-26 at 15:57 +0200, Shay Bar wrote: > Based on IEEE P802.11-REVmdTM/D3.0, October 2019 > section 9.4.2.157.2 VHT Capabilities Information field Hmm. How's this useful if you cannot set CF2 etc.? johannes ---------- This email has been scanned for spam and viruses by Proofpoint Essentials. Visit the following link to report this email as spam: https://eu1.proofpointessentials.com/index01.php?mod_id=11&mod_option=logitem&mail_id=1585232810-kfA4zDF1zYZC&r_address=shay.bar%40celeno.com&report=1
Hi Shay, > It's useful in case you need to be able to support 160Mhz BW but only at 1/2 NSS > (the 2nd row in Table 9-272 of "IEEE P802.11-REVmdTM/D3.0, October 2019") It'd help to write the table caption too - in this case I found the exact same document and it's "Setting of the Supported Channel Width Set subfield and Extended NSS BW Support subfield at a STA transmitting the VHT Capabilities Information Field" ... OK what a mouthful :) Anyway, you're making my point ;-) If you look at the second row, you'll note that in this case you have to put the "Location of 160 MHz channel center frequency if BSS bandwidth is 160 MHz" into CCFS2 (see second-to-last column), so having just this bit isn't enough. Also, we should then have the ability to also set the "Extended NSS BW Support" field to 2/3, not just 1, and probably then automatically encode everything according to this table, i.e. setting CCFS2 etc. In fact, I'd argue we need to be able to have the *driver* advertise this NSS restriction (1/2, 3/4) in the VHT capabilities in nl80211, and then hostapd build everything according to this table automatically? johannes > In this case, you need to set bit30 (Extended NSS BW Support) of VHT Capabilities Information field. > > -----Original Message----- > From: Johannes Berg <johannes@sipsolutions.net> > Sent: Thursday, 26 March 2020 16:27 > To: Shay Bar <Shay.Bar@celeno.com>; hostap@lists.infradead.org > Cc: Eliav Farber <Eliav.Farber@celeno.com> > Subject: Re: [PATCH] Add Extended NSS BW Support > > External Email > > > On Thu, 2020-03-26 at 15:57 +0200, Shay Bar wrote: > > Based on IEEE P802.11-REVmdTM/D3.0, October 2019 > > section 9.4.2.157.2 VHT Capabilities Information field > > Hmm. How's this useful if you cannot set CF2 etc.? > > johannes > > > ---------- > > This email has been scanned for spam and viruses by Proofpoint Essentials. Visit the following link to report this email as spam: > https://eu1.proofpointessentials.com/index01.php?mod_id=11&mod_option=logitem&mail_id=1585232810-kfA4zDF1zYZC&r_address=shay.bar%40celeno.com&report=1 > > ________________________________ > The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any retransmission, dissemination, copying or other use of, or taking of any action in reliance upon this information is prohibited. If you received this in error, please contact the sender and delete the material from any computer. Nothing contained herein shall be deemed as a representation, warranty or a commitment by Celeno. No warranties are expressed or implied, including, but not limited to, any implied warranties of non-infringement, merchantability and fitness for a particular purpose. > ________________________________ >
>If you look at the second row, you'll note that in this case you have to >put the "Location of 160 MHz channel center frequency if BSS bandwidth >is 160 MHz" into CCFS2 (see second-to-last column), so having just this >bit isn't enough. Right, it's not enough, also need to ieee80211_hw_set(hw, SUPPORTS_VHT_EXT_NSS_BW) in driver. ieee80211_chandef_vht_oper() will than set the correct width/center freq. >In fact, I'd argue we need to be able to have the *driver* advertise >this NSS restriction (1/2, 3/4) in the VHT capabilities in nl80211, and >then hostapd build everything according to this table automatically? In order to include this VHT capability in beacons/assoc req, it must be set to hostapd conf file same as other capabilities, such as MAX_MPDU_LENGTH_* for example. What is the alterative ? >Also, we should then have the ability to also set the "Extended NSS BW >Support" field to 2/3, not just 1, and probably then automatically >encode everything according to this table, i.e. setting CCFS2 etc. Agree, if you approve it should be set to hostapd, I will send a new patch to set each bit separately.
diff --git a/hostapd/config_file.c b/hostapd/config_file.c index bdae3be79..72eaaa03e 100644 --- a/hostapd/config_file.c +++ b/hostapd/config_file.c @@ -1287,6 +1287,8 @@ static int hostapd_config_vht_capab(struct hostapd_config *conf, conf->vht_capab |= VHT_CAP_RX_ANTENNA_PATTERN; if (os_strstr(capab, "[TX-ANTENNA-PATTERN]")) conf->vht_capab |= VHT_CAP_TX_ANTENNA_PATTERN; + if (os_strstr(capab, "[EXT-NSS-BW]")) + conf->vht_capab |= VHT_CAP_EXT_NSS_BW; return 0; } #endif /* CONFIG_IEEE80211AC */ diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h index 7c51574b5..63f388949 100644 --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h @@ -1280,6 +1280,7 @@ struct ieee80211_ampe_ie { #define VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB ((u32) BIT(26) | BIT(27)) #define VHT_CAP_RX_ANTENNA_PATTERN ((u32) BIT(28)) #define VHT_CAP_TX_ANTENNA_PATTERN ((u32) BIT(29)) +#define VHT_CAP_EXT_NSS_BW ((u32) BIT(30)) #define VHT_OPMODE_CHANNEL_WIDTH_MASK ((u8) BIT(0) | BIT(1)) #define VHT_OPMODE_CHANNEL_RxNSS_MASK ((u8) BIT(4) | BIT(5) | \