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
4335 * otherwise completely disabled.4335 * otherwise completely disabled.
4336 * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a4336 * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a
4337 * very low power (VLP) AP, despite being NO_IR.4337 * 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.
4338 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number4340 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
4339 * currently defined4341 * currently defined
4340 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use4342 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4379,6 +4381,7 @@ enum nl80211_frequency_attr { · 38 unmodified lines
4379 NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,4381 NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
4380 NL80211_FREQUENCY_ATTR_CAN_MONITOR,4382 NL80211_FREQUENCY_ATTR_CAN_MONITOR,
4381 NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,4383 NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
4384 NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
4382 4385
4383 /* keep last */4386 /* keep last */
4384 __NL80211_FREQUENCY_ATTR_AFTER_LAST,4387 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4590,31 +4593,34 @@ enum nl80211_sched_scan_match_attr { · 205 unmodified lines
4590 * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed4593 * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed
4591 * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted4594 * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted
4592 * despite NO_IR configuration.4595 * despite NO_IR configuration.
4596 * @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth,
4597 * despite NO_IR configuration.
4593 */4598 */
4594enum nl80211_reg_rule_flags {4599enum nl80211_reg_rule_flags {
4595 NL80211_RRF_NO_OFDM = 1<<0,4600 NL80211_RRF_NO_OFDM = 1 << 0,
4596 NL80211_RRF_NO_CCK = 1<<1,4601 NL80211_RRF_NO_CCK = 1 << 1,
4597 NL80211_RRF_NO_INDOOR = 1<<2,4602 NL80211_RRF_NO_INDOOR = 1 << 2,
4598 NL80211_RRF_NO_OUTDOOR = 1<<3,4603 NL80211_RRF_NO_OUTDOOR = 1 << 3,
4599 NL80211_RRF_DFS = 1<<4,4604 NL80211_RRF_DFS = 1 << 4,
4600 NL80211_RRF_PTP_ONLY = 1<<5,4605 NL80211_RRF_PTP_ONLY = 1 << 5,
4601 NL80211_RRF_PTMP_ONLY = 1<<6,4606 NL80211_RRF_PTMP_ONLY = 1 << 6,
4602 NL80211_RRF_NO_IR = 1<<7,4607 NL80211_RRF_NO_IR = 1 << 7,
4603 __NL80211_RRF_NO_IBSS = 1<<8,4608 __NL80211_RRF_NO_IBSS = 1 << 8,
4604 NL80211_RRF_AUTO_BW = 1<<11,4609 NL80211_RRF_AUTO_BW = 1 << 11,
4605 NL80211_RRF_IR_CONCURRENT = 1<<12,4610 NL80211_RRF_IR_CONCURRENT = 1 << 12,
4606 NL80211_RRF_NO_HT40MINUS = 1<<13,4611 NL80211_RRF_NO_HT40MINUS = 1 << 13,
4607 NL80211_RRF_NO_HT40PLUS = 1<<14,4612 NL80211_RRF_NO_HT40PLUS = 1 << 14,
4608 NL80211_RRF_NO_80MHZ = 1<<15,4613 NL80211_RRF_NO_80MHZ = 1 << 15,
4609 NL80211_RRF_NO_160MHZ = 1<<16,4614 NL80211_RRF_NO_160MHZ = 1 << 16,
4610 NL80211_RRF_NO_HE = 1<<17,4615 NL80211_RRF_NO_HE = 1 << 17,
4611 NL80211_RRF_NO_320MHZ = 1<<18,4616 NL80211_RRF_NO_320MHZ = 1 << 18,
4612 NL80211_RRF_NO_EHT = 1<<19,4617 NL80211_RRF_NO_EHT = 1 << 19,
4613 NL80211_RRF_PSD = 1<<20,4618 NL80211_RRF_PSD = 1 << 20,
4614 NL80211_RRF_DFS_CONCURRENT = 1<<21,4619 NL80211_RRF_DFS_CONCURRENT = 1 << 21,
4615 NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22,4620 NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22,
4616 NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23,4621 NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23,
4617 NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24,4622 NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24,
4623 NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25,
4618};4624};
4619 4625
4620#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR4626#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR