When drivers or regulatory have limitations on 40, 80 or 160 MHz channels, advertise these to userspace via nl80211. Also add a new feature flag to let userspace know this is supported.
Showing the changes to include/uapi/linux (1 of 3 files). Show all
Unified · Split
| @@ -2041,6 +2041,16 @@ enum nl80211_band_attr { · 2040 unmodified lines | ||
| 2041 | 2041 | * (enum nl80211_dfs_state) |
| 2042 | 2042 | * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long |
| 2043 | 2043 | * this channel is in this DFS state. |
| 2044 | + * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this | |
| 2045 | + * channel as the control channel | |
| 2046 | + * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this | |
| 2047 | + * channel as the control channel | |
| 2048 | + * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel | |
| 2049 | + * as the primary or any of the secondary channels isn't possible, | |
| 2050 | + * this includes 80+80 channels | |
| 2051 | + * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel | |
| 2052 | + * using this channel as the primary or any of the secondary channels | |
| 2053 | + * isn't possible | |
| 2044 | 2054 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 2045 | 2055 | * currently defined |
| 2046 | 2056 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -2055,6 +2065,10 @@ enum nl80211_frequency_attr { · 8 unmodified lines | ||
| 2055 | 2065 | NL80211_FREQUENCY_ATTR_MAX_TX_POWER, |
| 2056 | 2066 | NL80211_FREQUENCY_ATTR_DFS_STATE, |
| 2057 | 2067 | NL80211_FREQUENCY_ATTR_DFS_TIME, |
| 2068 | + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS, | |
| 2069 | + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, | |
| 2070 | + NL80211_FREQUENCY_ATTR_NO_80MHZ, | |
| 2071 | + NL80211_FREQUENCY_ATTR_NO_160MHZ, | |
| 2058 | 2072 | |
| 2059 | 2073 | /* keep last */ |
| 2060 | 2074 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -3421,6 +3435,8 @@ enum nl80211_ap_sme_features { · 1360 unmodified lines | ||
| 3421 | 3435 | * Note that even for drivers that support this, the default is to add |
| 3422 | 3436 | * stations in authenticated/associated state, so to add unauthenticated |
| 3423 | 3437 | * stations the authenticated/associated bits have to be set in the mask. |
| 3438 | + * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits | |
| 3439 | + * (HT40, VHT 80/160 MHz) if this flag is set | |
| 3424 | 3440 | */ |
| 3425 | 3441 | enum nl80211_feature_flags { |
| 3426 | 3442 | NL80211_FEATURE_SK_TX_STATUS = 1 << 0, |
| @@ -3437,6 +3453,7 @@ enum nl80211_feature_flags { · 10 unmodified lines | ||
| 3437 | 3453 | NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, |
| 3438 | 3454 | NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, |
| 3439 | 3455 | NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 13, |
| 3456 | + NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14, | |
| 3440 | 3457 | }; |
| 3441 | 3458 | |
| 3442 | 3459 | /** |