Add custom regulatory that marks DFS channels as DFS_CONCURRENT.
Unified · Split
| @@ -190,10 +190,25 @@ static const struct ieee80211_regdomain hwsim_world_regdom_custom_03 = { · 189 unmodified lines | |||
| 190 | } | 190 | } |
| 191 | }; | 191 | }; |
| 192 | 192 | ||
| 193 | static const struct ieee80211_regdomain hwsim_world_regdom_custom_04 = { | ||
| 194 | .n_reg_rules = 6, | ||
| 195 | .alpha2 = "99", | ||
| 196 | .reg_rules = { | ||
| 197 | REG_RULE(2412 - 10, 2462 + 10, 40, 0, 20, 0), | ||
| 198 | REG_RULE(2484 - 10, 2484 + 10, 40, 0, 20, 0), | ||
| 199 | REG_RULE(5150 - 10, 5240 + 10, 80, 0, 30, 0), | ||
| 200 | REG_RULE(5260 - 10, 5320 + 10, 80, 0, 30, | ||
| 201 | NL80211_RRF_DFS_CONCURRENT | NL80211_RRF_DFS), | ||
| 202 | REG_RULE(5745 - 10, 5825 + 10, 80, 0, 30, 0), | ||
| 203 | REG_RULE(5855 - 10, 5925 + 10, 80, 0, 33, 0), | ||
| 204 | } | ||
| 205 | }; | ||
| 206 | |||
| 193 | static const struct ieee80211_regdomain *hwsim_world_regdom_custom[] = { | 207 | static const struct ieee80211_regdomain *hwsim_world_regdom_custom[] = { |
| 194 | &hwsim_world_regdom_custom_01, | 208 | &hwsim_world_regdom_custom_01, |
| 195 | &hwsim_world_regdom_custom_02, | 209 | &hwsim_world_regdom_custom_02, |
| 196 | &hwsim_world_regdom_custom_03, | 210 | &hwsim_world_regdom_custom_03, |
| 211 | &hwsim_world_regdom_custom_04, | ||
| 197 | }; | 212 | }; |
| 198 | 213 | ||
| 199 | struct hwsim_vif_priv { | 214 | struct hwsim_vif_priv { |
| @@ -5294,6 +5309,10 @@ static int mac80211_hwsim_new_radio(struct genl_info *info, · 5094 unmodified lines | |||
| 5294 | schedule_timeout_interruptible(1); | 5309 | schedule_timeout_interruptible(1); |
| 5295 | } | 5310 | } |
| 5296 | 5311 | ||
| 5312 | /* TODO: Add param */ | ||
| 5313 | wiphy_ext_feature_set(hw->wiphy, | ||
| 5314 | NL80211_EXT_FEATURE_DFS_CONCURRENT); | ||
| 5315 | |||
| 5297 | if (param->no_vif) | 5316 | if (param->no_vif) |
| 5298 | ieee80211_hw_set(hw, NO_AUTO_VIF); | 5317 | ieee80211_hw_set(hw, NO_AUTO_VIF); |
| 5299 | 5318 | ||