Search Linux Wireless

Re: [PATCH v4 1/3] nl80211: Extended ROC support for 40-80 MHz bandwidth

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

 



On Mon, 2022-03-21 at 15:46 +0530, P Praneesh wrote:
> Replace struct ieee80211_channel with struct cfg80211_chan_def in
> remain on channel apis, because the channel width information is
> needed to handle centre frequency of 80MHz, and it is available
> in cfg80211_chan_def. Also, add SUPPORTS_EXT_REMAIN_ON_CHAN feature
> flag check before driver ops call.

Couple of more things ...

   1. Please split this into cfg80211 / mac80211, many of the changes
      are related to mac80211, but also many related to cfg80211 only
      (all the fullmac drivers), so I think it'd be nicer to have it as
      two separate patches.
      
   2. You're not exposing _any_ such capability to userspace, so when
      userspace requests a wider channel but not supported, it's
      silently ignored for all the cfg80211 drivers. OTOH, for mac80211
      drivers, you reject a wider channel. This can move up to cfg80211.
      
   3. Why limit (per the commit message, not sure about the code) to 40
      and 80 MHz, rather than allowing any bandwidth? Maybe somebody
      would want to use even smaller bandwidth (5/10)? Perhaps drivers
      should expose a bitmap of permitted bandwidths (rather than a
      single flag indicating support)?
      
   4. At least in the brcmfmac, mwifiex and wilc1000 cases, not only do
      you ignore the bandwidth, but you even pretend in
      ready_on_channel() that you used it ... that seems even worse than
      just ignoring. Also, in some of those cases you send it as higher
      BW in the ready event, but lower BW in the expired event ...
      
   5. (I don't want to know what happens in that staging driver ...)


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