Search Linux Wireless

RE: [PATCH] wifi: mac80211: Allow NSS change only up to capability

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

 



> -----Original Message-----
> From: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
> Sent: Friday, October 21, 2022 5:13 PM
> To: Rameshkumar Sundaram (QUIC) <quic_ramess@xxxxxxxxxxx>
> Cc: linux-wireless@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] wifi: mac80211: Allow NSS change only up to capability
> 
> On Tue, 2022-10-18 at 10:13 +0530, Rameshkumar Sundaram wrote:
> > Stations can update bandwidth/NSS change in VHT action frame with
> > action type Operating Mode Notification.
> > (IEEE Std 802.11-2020 - 9.4.1.53 Operating Mode field)
> >
> > For Operating Mode Notification, an RX NSS change to a value greater
> > than AP's maximum NSS should not be allowed.
> > Hence allow NSS change only up to maximum NSS that is negotiated and
> > capped to AP's capability during association.
> 
> That seems reasonable. Might be worth noting in a comment in the code
> which AP has such bugs though, just so we know it later.
> 
These are found during fuzz testing by forcefully sending VHT Op. mode notif. frames from STA with
Random rx_nss values. We accepted all the values.

> >  	if (link_sta->pub->rx_nss != nss) {
> > -		link_sta->pub->rx_nss = nss;
> > -		sta_opmode.rx_nss = nss;
> > -		changed |= IEEE80211_RC_NSS_CHANGED;
> > -		sta_opmode.changed |= STA_OPMODE_N_SS_CHANGED;
> > +		cur_nss = link_sta->pub->rx_nss;
> > +		link_sta->pub->rx_nss = 0;
> > +		ieee80211_sta_set_rx_nss(link_sta);
> > +		/* Do not allow an nss change to rx_nss greater than
> max_nss
> > +		 * negotiated and capped to APs capability during
> association.
> > +		 */
> > +		if (nss <= link_sta->pub->rx_nss) {
> > +			link_sta->pub->rx_nss = nss;
> 
> That, however, doesn't seem right. It means that you can only ever reduce
> the RX NSS, not switch it around within the originally negotiated range.
> 
Not sure if I understood you comment.
We reset Sta's rx_nss and make a call to ieee80211_sta_set_rx_nss() which will set the same to max nss negotiated, so this
Will allow any nss change within negotiated range, isn’t it ?

> johannes




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux