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().
Showing the changes to include/uapi/linux (1 of 5 files). Show all
Unified · Split
| @@ -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 a | 4336 | * @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 number | 4340 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 4339 | * currently defined | 4341 | * currently defined |
| 4340 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use | 4342 | * @__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 allowed | 4593 | * @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 permitted | 4594 | * @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 | */ |
| 4594 | enum nl80211_reg_rule_flags { | 4599 | enum 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_IR | 4626 | #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR |