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: Tuesday, December 27, 2022 9: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-12-27 at 08:04 +0000, Rameshkumar Sundaram (QUIC) wrote:
> > >
> > > > +		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
> 
> I don't see where it's being reset?
> 
> The way I'm reading this, you check nss<=rx_nss and then set rx_nss=nss.
> I didn't see any code that sets rx_nss higher, but maybe I missed it?
> 
+		cur_nss = link_sta->pub->rx_nss;
+		link_sta->pub->rx_nss = 0;
+		ieee80211_sta_set_rx_nss(link_sta);
Here we take copy of current rx_nss of STA (that sent the VHT Op. mode notif frame to AP), reset it and call
ieee80211_sta_set_rx_nss() which will set link_sta->pub->rx_nss to Max nss that was capped and 
stored for this STA during association.
Hence Below check will allow an nss change until max_nss at any point.
+		if (nss <= link_sta->pub->rx_nss) {
+			link_sta->pub->rx_nss = nss;

> So if say rx_nss is 4, and nss is 2, then we set rx_nss to 2. But now if the AP
> wants to switch back to 4, nss will be 4, rx_nss will be 2, and the change is
> ignored, no?
> 
> 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