Search Linux Wireless

Re: [PATCH 02/10] cfg80211: validate 6 GHz chandef

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

 



On 2020-04-29 07:26, Johannes Berg wrote:
On Fri, 2020-04-24 at 15:41 -0700, Rajkumar Manoharan wrote:

+static inline bool
+cfg80211_chandef_is_6ghz(const struct cfg80211_chan_def *chandef)
+{
+ return (chandef->center_freq1 > 5940 && chandef->center_freq1 < 7105);
+}

Seems like this

+++ b/net/wireless/chan.c
@@ -19,6 +19,29 @@ static bool cfg80211_valid_60g_freq(u32 freq)
 	return freq >= 58320 && freq <= 70200;
 }

+static bool cfg80211_is_6ghz_freq(u32 freq)
+{
+	return (freq > 5940 && freq < 7105);
+}

should use this, by also exposing it, or something.

Sure. Export this and remove the above one.

+static enum nl80211_chan_width cfg80211_chan_to_bw_6ghz(u8 idx)
+{
+	/* channels: 1, 5, 9, 13... */
+	if ((idx & 0x3) == 0x1)
+		return NL80211_CHAN_WIDTH_20;
+	/* channels 3, 11, 19... */
+	if ((idx & 0x7) == 0x3)
+		return NL80211_CHAN_WIDTH_40;
+	/* channels 7, 23, 39.. */
+	if ((idx & 0xf) == 0x7)
+		return NL80211_CHAN_WIDTH_80;
+	/* channels 15, 47, 79...*/
+	if ((idx & 0x1f) == 0xf)
+		return NL80211_CHAN_WIDTH_160;
+
+	return NL80211_CHAN_WIDTH_20;
+}

We haven't really done that for anything else - is that really
necessary?

Hmm.. to check whether give center_freq1 chan_idx is allowed to operate in given bandwidth. Similar to center_idx_to_bw_6ghz of hostapd, this API is used to chandef bw.

[...]
@@ -213,6 +255,10 @@ bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef)
 	    !cfg80211_edmg_chandef_valid(chandef))
 		return false;

+	if (cfg80211_chandef_is_6ghz(chandef) &&
+	    !cfg80211_6ghz_chandef_valid(chandef))
+		return false;

You only get there if it was in range ...

Not sure about this whole patch, it seems a bit pointless?


Don't we have to check chandef bw? If not, I will drop the change.

-Rajkumar



[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