| 1 | --- a/nl80211.h |
| 2 | +++ b/nl80211.h |
| 3 | @@ -118,8 +118,9 @@ |
| 4 | * to get a list of all present wiphys. |
| 5 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or |
| 6 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, |
| 7 | - * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, |
| 8 | - * %NL80211_ATTR_WIPHY_CHANNEL_TYPE, %NL80211_ATTR_WIPHY_RETRY_SHORT, |
| 9 | + * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the |
| 10 | + * attributes determining the channel width; this is used for setting |
| 11 | + * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT, |
| 12 | * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, |
| 13 | * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. |
| 14 | * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL |
| 15 | @@ -171,7 +172,7 @@ |
| 16 | * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, |
| 17 | * %NL80211_ATTR_AUTH_TYPE and %NL80211_ATTR_INACTIVITY_TIMEOUT. |
| 18 | * The channel to use can be set on the interface or be given using the |
| 19 | - * %NL80211_ATTR_WIPHY_FREQ and %NL80211_ATTR_WIPHY_CHANNEL_TYPE attrs. |
| 20 | + * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. |
| 21 | * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP |
| 22 | * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface |
| 23 | * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP |
| 24 | @@ -401,8 +402,7 @@ |
| 25 | * a response while being associated to an AP on another channel. |
| 26 | * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus |
| 27 | * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the |
| 28 | - * frequency for the operation and %NL80211_ATTR_WIPHY_CHANNEL_TYPE may be |
| 29 | - * optionally used to specify additional channel parameters. |
| 30 | + * frequency for the operation. |
| 31 | * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds |
| 32 | * to remain on the channel. This command is also used as an event to |
| 33 | * notify when the requested duration starts (it may take a while for the |
| 34 | @@ -440,12 +440,11 @@ |
| 35 | * as an event indicating reception of a frame that was not processed in |
| 36 | * kernel code, but is for us (i.e., which may need to be processed in a |
| 37 | * user space application). %NL80211_ATTR_FRAME is used to specify the |
| 38 | - * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ (and |
| 39 | - * optionally %NL80211_ATTR_WIPHY_CHANNEL_TYPE) is used to indicate on |
| 40 | - * which channel the frame is to be transmitted or was received. If this |
| 41 | - * channel is not the current channel (remain-on-channel or the |
| 42 | - * operational channel) the device will switch to the given channel and |
| 43 | - * transmit the frame, optionally waiting for a response for the time |
| 44 | + * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used |
| 45 | + * to indicate on which channel the frame is to be transmitted or was |
| 46 | + * received. If this channel is not the current channel (remain-on-channel |
| 47 | + * or the operational channel) the device will switch to the given channel |
| 48 | + * and transmit the frame, optionally waiting for a response for the time |
| 49 | * specified using %NL80211_ATTR_DURATION. When called, this operation |
| 50 | * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the |
| 51 | * TX status event pertaining to the TX request. |
| 52 | @@ -473,8 +472,8 @@ |
| 53 | * command is used as an event to indicate the that a trigger level was |
| 54 | * reached. |
| 55 | * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ |
| 56 | - * and %NL80211_ATTR_WIPHY_CHANNEL_TYPE) the given interface (identifed |
| 57 | - * by %NL80211_ATTR_IFINDEX) shall operate on. |
| 58 | + * and the attributes determining channel width) the given interface |
| 59 | + * (identifed by %NL80211_ATTR_IFINDEX) shall operate on. |
| 60 | * In case multiple channels are supported by the device, the mechanism |
| 61 | * with which it switches channels is implementation-defined. |
| 62 | * When a monitor interface is given, it can only switch channel while |
| 63 | @@ -526,6 +525,12 @@ |
| 64 | * of PMKSA caching dandidates. |
| 65 | * |
| 66 | * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). |
| 67 | + * In addition, this can be used as an event to request userspace to take |
| 68 | + * actions on TDLS links (set up a new link or tear down an existing one). |
| 69 | + * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested |
| 70 | + * operation, %NL80211_ATTR_MAC contains the peer MAC address, and |
| 71 | + * %NL80211_ATTR_REASON_CODE the reason code to be used (only with |
| 72 | + * %NL80211_TDLS_TEARDOWN). |
| 73 | * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. |
| 74 | * |
| 75 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
| 76 | @@ -562,8 +567,24 @@ |
| 77 | * |
| 78 | * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels |
| 79 | * independently of the userspace SME, send this event indicating |
| 80 | - * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ with |
| 81 | - * %NL80211_ATTR_WIPHY_CHANNEL_TYPE. |
| 82 | + * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the |
| 83 | + * attributes determining channel width. |
| 84 | + * |
| 85 | + * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by |
| 86 | + * its %NL80211_ATTR_WDEV identifier. It must have been created with |
| 87 | + * %NL80211_CMD_NEW_INTERFACE previously. After it has been started, the |
| 88 | + * P2P Device can be used for P2P operations, e.g. remain-on-channel and |
| 89 | + * public action frame TX. |
| 90 | + * @NL80211_CMD_STOP_P2P_DEVICE: Stop the given P2P Device, identified by |
| 91 | + * its %NL80211_ATTR_WDEV identifier. |
| 92 | + * |
| 93 | + * @NL80211_CMD_CONN_FAILED: connection request to an AP failed; used to |
| 94 | + * notify userspace that AP has rejected the connection request from a |
| 95 | + * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON |
| 96 | + * is used for this. |
| 97 | + * |
| 98 | + * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames |
| 99 | + * for IBSS or MESH vif. |
| 100 | * |
| 101 | * @NL80211_CMD_MAX: highest used command number |
| 102 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 103 | @@ -708,6 +729,13 @@ enum nl80211_commands { |
| 104 | |
| 105 | NL80211_CMD_CH_SWITCH_NOTIFY, |
| 106 | |
| 107 | + NL80211_CMD_START_P2P_DEVICE, |
| 108 | + NL80211_CMD_STOP_P2P_DEVICE, |
| 109 | + |
| 110 | + NL80211_CMD_CONN_FAILED, |
| 111 | + |
| 112 | + NL80211_CMD_SET_MCAST_RATE, |
| 113 | + |
| 114 | /* add new commands above here */ |
| 115 | |
| 116 | /* used to define NL80211_CMD_MAX below */ |
| 117 | @@ -744,14 +772,26 @@ enum nl80211_commands { |
| 118 | * /sys/class/ieee80211/<phyname>/index |
| 119 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) |
| 120 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters |
| 121 | - * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz |
| 122 | + * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, |
| 123 | + * defines the channel together with the (deprecated) |
| 124 | + * %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes |
| 125 | + * %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 |
| 126 | + * and %NL80211_ATTR_CENTER_FREQ2 |
| 127 | + * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values |
| 128 | + * of &enum nl80211_chan_width, describing the channel width. See the |
| 129 | + * documentation of the enum for more information. |
| 130 | + * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the |
| 131 | + * channel, used for anything but 20 MHz bandwidth |
| 132 | + * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the |
| 133 | + * channel, used only for 80+80 MHz bandwidth |
| 134 | * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ |
| 135 | - * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): |
| 136 | + * if HT20 or HT40 are to be used (i.e., HT disabled if not included): |
| 137 | * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including |
| 138 | * this attribute) |
| 139 | * NL80211_CHAN_HT20 = HT20 only |
| 140 | * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel |
| 141 | * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel |
| 142 | + * This attribute is now deprecated. |
| 143 | * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is |
| 144 | * less than or equal to the RTS threshold; allowed range: 1..255; |
| 145 | * dot11ShortRetryLimit; u8 |
| 146 | @@ -1251,6 +1291,25 @@ enum nl80211_commands { |
| 147 | * was used to provide the hint. For the different types of |
| 148 | * allowed user regulatory hints see nl80211_user_reg_hint_type. |
| 149 | * |
| 150 | + * @NL80211_ATTR_CONN_FAILED_REASON: The reason for which AP has rejected |
| 151 | + * the connection request from a station. nl80211_connect_failed_reason |
| 152 | + * enum has different reasons of connection failure. |
| 153 | + * |
| 154 | + * @NL80211_ATTR_SAE_DATA: SAE elements in Authentication frames. This starts |
| 155 | + * with the Authentication transaction sequence number field. |
| 156 | + * |
| 157 | + * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from |
| 158 | + * association request when used with NL80211_CMD_NEW_STATION) |
| 159 | + * |
| 160 | + * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) |
| 161 | + * |
| 162 | + * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with |
| 163 | + * the START_AP and SET_BSS commands |
| 164 | + * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the |
| 165 | + * START_AP and SET_BSS commands. This can have the values 0 or 1; |
| 166 | + * if not given in START_AP 0 is assumed, if not given in SET_BSS |
| 167 | + * no change is made. |
| 168 | + * |
| 169 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 170 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| 171 | */ |
| 172 | @@ -1506,6 +1565,23 @@ enum nl80211_attrs { |
| 173 | |
| 174 | NL80211_ATTR_USER_REG_HINT_TYPE, |
| 175 | |
| 176 | + NL80211_ATTR_CONN_FAILED_REASON, |
| 177 | + |
| 178 | + NL80211_ATTR_SAE_DATA, |
| 179 | + |
| 180 | + NL80211_ATTR_VHT_CAPABILITY, |
| 181 | + |
| 182 | + NL80211_ATTR_SCAN_FLAGS, |
| 183 | + |
| 184 | + NL80211_ATTR_CHANNEL_WIDTH, |
| 185 | + NL80211_ATTR_CENTER_FREQ1, |
| 186 | + NL80211_ATTR_CENTER_FREQ2, |
| 187 | + |
| 188 | + NL80211_ATTR_P2P_CTWINDOW, |
| 189 | + NL80211_ATTR_P2P_OPPPS, |
| 190 | + |
| 191 | + NL80211_ATTR_WIPHY_ANTENNA_GAIN, |
| 192 | + |
| 193 | /* add attributes here, update the policy in nl80211.c */ |
| 194 | |
| 195 | __NL80211_ATTR_AFTER_LAST, |
| 196 | @@ -1549,6 +1625,7 @@ enum nl80211_attrs { |
| 197 | #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 |
| 198 | #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 |
| 199 | #define NL80211_HT_CAPABILITY_LEN 26 |
| 200 | +#define NL80211_VHT_CAPABILITY_LEN 12 |
| 201 | |
| 202 | #define NL80211_MAX_NR_CIPHER_SUITES 5 |
| 203 | #define NL80211_MAX_NR_AKM_SUITES 2 |
| 204 | @@ -1575,6 +1652,10 @@ enum nl80211_attrs { |
| 205 | * @NL80211_IFTYPE_MESH_POINT: mesh point |
| 206 | * @NL80211_IFTYPE_P2P_CLIENT: P2P client |
| 207 | * @NL80211_IFTYPE_P2P_GO: P2P group owner |
| 208 | + * @NL80211_IFTYPE_P2P_DEVICE: P2P device interface type, this is not a netdev |
| 209 | + * and therefore can't be created in the normal ways, use the |
| 210 | + * %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE |
| 211 | + * commands to create and destroy one |
| 212 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
| 213 | * @NUM_NL80211_IFTYPES: number of defined interface types |
| 214 | * |
| 215 | @@ -1593,6 +1674,7 @@ enum nl80211_iftype { |
| 216 | NL80211_IFTYPE_MESH_POINT, |
| 217 | NL80211_IFTYPE_P2P_CLIENT, |
| 218 | NL80211_IFTYPE_P2P_GO, |
| 219 | + NL80211_IFTYPE_P2P_DEVICE, |
| 220 | |
| 221 | /* keep last */ |
| 222 | NUM_NL80211_IFTYPES, |
| 223 | @@ -1664,10 +1746,15 @@ struct nl80211_sta_flag_update { |
| 224 | * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved |
| 225 | * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) |
| 226 | * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) |
| 227 | - * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 Mhz dualchannel bitrate |
| 228 | + * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate |
| 229 | * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval |
| 230 | * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) |
| 231 | * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined |
| 232 | + * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) |
| 233 | + * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) |
| 234 | + * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate |
| 235 | + * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate |
| 236 | + * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate |
| 237 | * @__NL80211_RATE_INFO_AFTER_LAST: internal use |
| 238 | */ |
| 239 | enum nl80211_rate_info { |
| 240 | @@ -1677,6 +1764,11 @@ enum nl80211_rate_info { |
| 241 | NL80211_RATE_INFO_40_MHZ_WIDTH, |
| 242 | NL80211_RATE_INFO_SHORT_GI, |
| 243 | NL80211_RATE_INFO_BITRATE32, |
| 244 | + NL80211_RATE_INFO_VHT_MCS, |
| 245 | + NL80211_RATE_INFO_VHT_NSS, |
| 246 | + NL80211_RATE_INFO_80_MHZ_WIDTH, |
| 247 | + NL80211_RATE_INFO_80P80_MHZ_WIDTH, |
| 248 | + NL80211_RATE_INFO_160_MHZ_WIDTH, |
| 249 | |
| 250 | /* keep last */ |
| 251 | __NL80211_RATE_INFO_AFTER_LAST, |
| 252 | @@ -1744,6 +1836,8 @@ enum nl80211_sta_bss_param { |
| 253 | * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. |
| 254 | * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) |
| 255 | * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) |
| 256 | + * @NL80211_STA_INFO_CHAIN_SIGNAL: per-chain signal strength of last PPDU |
| 257 | + * @NL80211_STA_INFO_CHAIN_SIGNAL_AVG: per-chain signal strength average |
| 258 | * @__NL80211_STA_INFO_AFTER_LAST: internal |
| 259 | * @NL80211_STA_INFO_MAX: highest possible station info attribute |
| 260 | */ |
| 261 | @@ -1768,6 +1862,8 @@ enum nl80211_sta_info { |
| 262 | NL80211_STA_INFO_STA_FLAGS, |
| 263 | NL80211_STA_INFO_BEACON_LOSS, |
| 264 | NL80211_STA_INFO_T_OFFSET, |
| 265 | + NL80211_STA_INFO_CHAIN_SIGNAL, |
| 266 | + NL80211_STA_INFO_CHAIN_SIGNAL_AVG, |
| 267 | |
| 268 | /* keep last */ |
| 269 | __NL80211_STA_INFO_AFTER_LAST, |
| 270 | @@ -2385,6 +2481,15 @@ enum nl80211_ac { |
| 271 | #define NL80211_TXQ_Q_BE NL80211_AC_BE |
| 272 | #define NL80211_TXQ_Q_BK NL80211_AC_BK |
| 273 | |
| 274 | +/** |
| 275 | + * enum nl80211_channel_type - channel type |
| 276 | + * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel |
| 277 | + * @NL80211_CHAN_HT20: 20 MHz HT channel |
| 278 | + * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel |
| 279 | + * below the control channel |
| 280 | + * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel |
| 281 | + * above the control channel |
| 282 | + */ |
| 283 | enum nl80211_channel_type { |
| 284 | NL80211_CHAN_NO_HT, |
| 285 | NL80211_CHAN_HT20, |
| 286 | @@ -2393,6 +2498,32 @@ enum nl80211_channel_type { |
| 287 | }; |
| 288 | |
| 289 | /** |
| 290 | + * enum nl80211_chan_width - channel width definitions |
| 291 | + * |
| 292 | + * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH |
| 293 | + * attribute. |
| 294 | + * |
| 295 | + * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel |
| 296 | + * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel |
| 297 | + * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 |
| 298 | + * attribute must be provided as well |
| 299 | + * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 |
| 300 | + * attribute must be provided as well |
| 301 | + * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 |
| 302 | + * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well |
| 303 | + * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 |
| 304 | + * attribute must be provided as well |
| 305 | + */ |
| 306 | +enum nl80211_chan_width { |
| 307 | + NL80211_CHAN_WIDTH_20_NOHT, |
| 308 | + NL80211_CHAN_WIDTH_20, |
| 309 | + NL80211_CHAN_WIDTH_40, |
| 310 | + NL80211_CHAN_WIDTH_80, |
| 311 | + NL80211_CHAN_WIDTH_80P80, |
| 312 | + NL80211_CHAN_WIDTH_160, |
| 313 | +}; |
| 314 | + |
| 315 | +/** |
| 316 | * enum nl80211_bss - netlink attributes for a BSS |
| 317 | * |
| 318 | * @__NL80211_BSS_INVALID: invalid |
| 319 | @@ -2460,6 +2591,7 @@ enum nl80211_bss_status { |
| 320 | * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) |
| 321 | * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) |
| 322 | * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) |
| 323 | + * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals |
| 324 | * @__NL80211_AUTHTYPE_NUM: internal |
| 325 | * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm |
| 326 | * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by |
| 327 | @@ -2471,6 +2603,7 @@ enum nl80211_auth_type { |
| 328 | NL80211_AUTHTYPE_SHARED_KEY, |
| 329 | NL80211_AUTHTYPE_FT, |
| 330 | NL80211_AUTHTYPE_NETWORK_EAP, |
| 331 | + NL80211_AUTHTYPE_SAE, |
| 332 | |
| 333 | /* keep last */ |
| 334 | __NL80211_AUTHTYPE_NUM, |
| 335 | @@ -2994,12 +3127,40 @@ enum nl80211_ap_sme_features { |
| 336 | * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested |
| 337 | * to work properly to suppport receiving regulatory hints from |
| 338 | * cellular base stations. |
| 339 | + * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: If this is set, an active |
| 340 | + * P2P Device (%NL80211_IFTYPE_P2P_DEVICE) requires its own channel |
| 341 | + * in the interface combinations, even when it's only used for scan |
| 342 | + * and remain-on-channel. This could be due to, for example, the |
| 343 | + * remain-on-channel implementation requiring a channel context. |
| 344 | + * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of |
| 345 | + * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station |
| 346 | + * mode |
| 347 | + * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan |
| 348 | + * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported |
| 349 | + * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif |
| 350 | + * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting |
| 351 | + * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform |
| 352 | + * OBSS scans and generate 20/40 BSS coex reports. This flag is used only |
| 353 | + * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. |
| 354 | + * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window |
| 355 | + * setting |
| 356 | + * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic |
| 357 | + * powersave |
| 358 | */ |
| 359 | enum nl80211_feature_flags { |
| 360 | - NL80211_FEATURE_SK_TX_STATUS = 1 << 0, |
| 361 | - NL80211_FEATURE_HT_IBSS = 1 << 1, |
| 362 | - NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
| 363 | - NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
| 364 | + NL80211_FEATURE_SK_TX_STATUS = 1 << 0, |
| 365 | + NL80211_FEATURE_HT_IBSS = 1 << 1, |
| 366 | + NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, |
| 367 | + NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, |
| 368 | + NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, |
| 369 | + NL80211_FEATURE_SAE = 1 << 5, |
| 370 | + NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, |
| 371 | + NL80211_FEATURE_SCAN_FLUSH = 1 << 7, |
| 372 | + NL80211_FEATURE_AP_SCAN = 1 << 8, |
| 373 | + NL80211_FEATURE_VIF_TXPOWER = 1 << 9, |
| 374 | + NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, |
| 375 | + NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, |
| 376 | + NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, |
| 377 | }; |
| 378 | |
| 379 | /** |
| 380 | @@ -3023,4 +3184,36 @@ enum nl80211_probe_resp_offload_support_ |
| 381 | NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3, |
| 382 | }; |
| 383 | |
| 384 | +/** |
| 385 | + * enum nl80211_connect_failed_reason - connection request failed reasons |
| 386 | + * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be |
| 387 | + * handled by the AP is reached. |
| 388 | + * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Client's MAC is in the AP's blocklist. |
| 389 | + */ |
| 390 | +enum nl80211_connect_failed_reason { |
| 391 | + NL80211_CONN_FAIL_MAX_CLIENTS, |
| 392 | + NL80211_CONN_FAIL_BLOCKED_CLIENT, |
| 393 | +}; |
| 394 | + |
| 395 | +/** |
| 396 | + * enum nl80211_scan_flags - scan request control flags |
| 397 | + * |
| 398 | + * Scan request control flags are used to control the handling |
| 399 | + * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN |
| 400 | + * requests. |
| 401 | + * |
| 402 | + * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority |
| 403 | + * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning |
| 404 | + * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured |
| 405 | + * as AP and the beaconing has already been configured. This attribute is |
| 406 | + * dangerous because will destroy stations performance as a lot of frames |
| 407 | + * will be lost while scanning off-channel, therefore it must be used only |
| 408 | + * when really needed |
| 409 | + */ |
| 410 | +enum nl80211_scan_flags { |
| 411 | + NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, |
| 412 | + NL80211_SCAN_FLAG_FLUSH = 1<<1, |
| 413 | + NL80211_SCAN_FLAG_AP = 1<<2, |
| 414 | +}; |
| 415 | + |
| 416 | #endif /* __LINUX_NL80211_H */ |
| 417 | |