History

wifi: cfg80211: allow IR in 20 MHz configurations

Some regulatory bodies doesn't allow IR (initiate radioation) on a specific subband, but allows it for channels with a bandwidth of 20 MHz. Add a channel flag that indicates that, and consider it in cfg80211_reg_check_beaconing. While on it, fix the kernel doc of enum nl80211_reg_rule_flags and change it to use BIT().

Anjaneyulu committed 1 year ago

Commit cf4bd161 parent 96d43115 files · +46 −25Browse files

Showing the changes to include/uapi/linux (1 of 5 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+29−23
@@ -4335,6 +4335,8 @@ enum nl80211_wmm_rule { · 4334 unmodified lines
43354335 * otherwise completely disabled.
43364336 * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a
43374337 * very low power (VLP) AP, despite being NO_IR.
4338+ * @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in
4339+ * 20 MHz bandwidth, despite being NO_IR.
43384340 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
43394341 * currently defined
43404342 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4379,6 +4381,7 @@ enum nl80211_frequency_attr { · 38 unmodified lines
43794381 NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
43804382 NL80211_FREQUENCY_ATTR_CAN_MONITOR,
43814383 NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
4384+ NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
43824385
43834386 /* keep last */
43844387 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4590,31 +4593,34 @@ enum nl80211_sched_scan_match_attr { · 205 unmodified lines
45904593 * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed
45914594 * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted
45924595 * despite NO_IR configuration.
4596+ * @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth,
4597+ * despite NO_IR configuration.
45934598 */
45944599 enum nl80211_reg_rule_flags {
4595− NL80211_RRF_NO_OFDM = 1<<0,
4596− NL80211_RRF_NO_CCK = 1<<1,
4597− NL80211_RRF_NO_INDOOR = 1<<2,
4598− NL80211_RRF_NO_OUTDOOR = 1<<3,
4599− NL80211_RRF_DFS = 1<<4,
4600− NL80211_RRF_PTP_ONLY = 1<<5,
4601− NL80211_RRF_PTMP_ONLY = 1<<6,
4602− NL80211_RRF_NO_IR = 1<<7,
4603− __NL80211_RRF_NO_IBSS = 1<<8,
4604− NL80211_RRF_AUTO_BW = 1<<11,
4605− NL80211_RRF_IR_CONCURRENT = 1<<12,
4606− NL80211_RRF_NO_HT40MINUS = 1<<13,
4607− NL80211_RRF_NO_HT40PLUS = 1<<14,
4608− NL80211_RRF_NO_80MHZ = 1<<15,
4609− NL80211_RRF_NO_160MHZ = 1<<16,
4610− NL80211_RRF_NO_HE = 1<<17,
4611− NL80211_RRF_NO_320MHZ = 1<<18,
4612− NL80211_RRF_NO_EHT = 1<<19,
4613− NL80211_RRF_PSD = 1<<20,
4614− NL80211_RRF_DFS_CONCURRENT = 1<<21,
4615− NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22,
4616− NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23,
4617− NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24,
4600+ NL80211_RRF_NO_OFDM = 1 << 0,
4601+ NL80211_RRF_NO_CCK = 1 << 1,
4602+ NL80211_RRF_NO_INDOOR = 1 << 2,
4603+ NL80211_RRF_NO_OUTDOOR = 1 << 3,
4604+ NL80211_RRF_DFS = 1 << 4,
4605+ NL80211_RRF_PTP_ONLY = 1 << 5,
4606+ NL80211_RRF_PTMP_ONLY = 1 << 6,
4607+ NL80211_RRF_NO_IR = 1 << 7,
4608+ __NL80211_RRF_NO_IBSS = 1 << 8,
4609+ NL80211_RRF_AUTO_BW = 1 << 11,
4610+ NL80211_RRF_IR_CONCURRENT = 1 << 12,
4611+ NL80211_RRF_NO_HT40MINUS = 1 << 13,
4612+ NL80211_RRF_NO_HT40PLUS = 1 << 14,
4613+ NL80211_RRF_NO_80MHZ = 1 << 15,
4614+ NL80211_RRF_NO_160MHZ = 1 << 16,
4615+ NL80211_RRF_NO_HE = 1 << 17,
4616+ NL80211_RRF_NO_320MHZ = 1 << 18,
4617+ NL80211_RRF_NO_EHT = 1 << 19,
4618+ NL80211_RRF_PSD = 1 << 20,
4619+ NL80211_RRF_DFS_CONCURRENT = 1 << 21,
4620+ NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22,
4621+ NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23,
4622+ NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24,
4623+ NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25,
46184624 };
46194625
46204626 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR