12ee67178SXianjun Jiao #ifndef __LINUX_NL80211_H 22ee67178SXianjun Jiao #define __LINUX_NL80211_H 32ee67178SXianjun Jiao /* 42ee67178SXianjun Jiao * 802.11 netlink interface public header 52ee67178SXianjun Jiao * 6995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2006-2010 Johannes Berg <[email protected]> 7995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2008 Michael Wu <[email protected]> 8995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2008 Luis Carlos Cobo <[email protected]> 9995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2008 Michael Buesch <[email protected]> 10995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2008, 2009 Luis R. Rodriguez <[email protected]> 11995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2008 Jouni Malinen <[email protected]> 12995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2008 Colin McCabe <[email protected]> 13995e5a48SJiao Xianjun * SPDX-FileCopyrightText: 2015-2017 Intel Deutschland GmbH 14995e5a48SJiao Xianjun * SPDX-License-Identifier: ISC 152ee67178SXianjun Jiao * 162ee67178SXianjun Jiao * Permission to use, copy, modify, and/or distribute this software for any 172ee67178SXianjun Jiao * purpose with or without fee is hereby granted, provided that the above 182ee67178SXianjun Jiao * copyright notice and this permission notice appear in all copies. 192ee67178SXianjun Jiao * 202ee67178SXianjun Jiao * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 212ee67178SXianjun Jiao * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 222ee67178SXianjun Jiao * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 232ee67178SXianjun Jiao * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 242ee67178SXianjun Jiao * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 252ee67178SXianjun Jiao * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 262ee67178SXianjun Jiao * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 272ee67178SXianjun Jiao * 282ee67178SXianjun Jiao */ 292ee67178SXianjun Jiao 304ecf49bbSJiao Xianjun /* 314ecf49bbSJiao Xianjun * This header file defines the userspace API to the wireless stack. Please 324ecf49bbSJiao Xianjun * be careful not to break things - i.e. don't move anything around or so 334ecf49bbSJiao Xianjun * unless you can demonstrate that it breaks neither API nor ABI. 344ecf49bbSJiao Xianjun * 354ecf49bbSJiao Xianjun * Additions to the API should be accompanied by actual implementations in 364ecf49bbSJiao Xianjun * an upstream driver, so that example implementations exist in case there 374ecf49bbSJiao Xianjun * are ever concerns about the precise semantics of the API or changes are 384ecf49bbSJiao Xianjun * needed, and to ensure that code for dead (no longer implemented) API 394ecf49bbSJiao Xianjun * can actually be identified and removed. 404ecf49bbSJiao Xianjun * Nonetheless, semantics should also be documented carefully in this file. 414ecf49bbSJiao Xianjun */ 424ecf49bbSJiao Xianjun 432ee67178SXianjun Jiao #include <linux/types.h> 442ee67178SXianjun Jiao 452ee67178SXianjun Jiao #define NL80211_GENL_NAME "nl80211" 462ee67178SXianjun Jiao 474ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_CONFIG "config" 484ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_SCAN "scan" 494ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_REG "regulatory" 504ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_MLME "mlme" 514ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_VENDOR "vendor" 524ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_NAN "nan" 534ecf49bbSJiao Xianjun #define NL80211_MULTICAST_GROUP_TESTMODE "testmode" 544ecf49bbSJiao Xianjun 552ee67178SXianjun Jiao /** 562ee67178SXianjun Jiao * DOC: Station handling 572ee67178SXianjun Jiao * 582ee67178SXianjun Jiao * Stations are added per interface, but a special case exists with VLAN 592ee67178SXianjun Jiao * interfaces. When a station is bound to an AP interface, it may be moved 602ee67178SXianjun Jiao * into a VLAN identified by a VLAN interface index (%NL80211_ATTR_STA_VLAN). 612ee67178SXianjun Jiao * The station is still assumed to belong to the AP interface it was added 622ee67178SXianjun Jiao * to. 632ee67178SXianjun Jiao * 642ee67178SXianjun Jiao * Station handling varies per interface type and depending on the driver's 652ee67178SXianjun Jiao * capabilities. 662ee67178SXianjun Jiao * 672ee67178SXianjun Jiao * For drivers supporting TDLS with external setup (WIPHY_FLAG_SUPPORTS_TDLS 682ee67178SXianjun Jiao * and WIPHY_FLAG_TDLS_EXTERNAL_SETUP), the station lifetime is as follows: 692ee67178SXianjun Jiao * - a setup station entry is added, not yet authorized, without any rate 702ee67178SXianjun Jiao * or capability information, this just exists to avoid race conditions 712ee67178SXianjun Jiao * - when the TDLS setup is done, a single NL80211_CMD_SET_STATION is valid 722ee67178SXianjun Jiao * to add rate and capability information to the station and at the same 732ee67178SXianjun Jiao * time mark it authorized. 742ee67178SXianjun Jiao * - %NL80211_TDLS_ENABLE_LINK is then used 752ee67178SXianjun Jiao * - after this, the only valid operation is to remove it by tearing down 762ee67178SXianjun Jiao * the TDLS link (%NL80211_TDLS_DISABLE_LINK) 772ee67178SXianjun Jiao * 782ee67178SXianjun Jiao * TODO: need more info for other interface types 792ee67178SXianjun Jiao */ 802ee67178SXianjun Jiao 812ee67178SXianjun Jiao /** 822ee67178SXianjun Jiao * DOC: Frame transmission/registration support 832ee67178SXianjun Jiao * 842ee67178SXianjun Jiao * Frame transmission and registration support exists to allow userspace 852ee67178SXianjun Jiao * management entities such as wpa_supplicant react to management frames 862ee67178SXianjun Jiao * that are not being handled by the kernel. This includes, for example, 872ee67178SXianjun Jiao * certain classes of action frames that cannot be handled in the kernel 882ee67178SXianjun Jiao * for various reasons. 892ee67178SXianjun Jiao * 902ee67178SXianjun Jiao * Frame registration is done on a per-interface basis and registrations 912ee67178SXianjun Jiao * cannot be removed other than by closing the socket. It is possible to 922ee67178SXianjun Jiao * specify a registration filter to register, for example, only for a 932ee67178SXianjun Jiao * certain type of action frame. In particular with action frames, those 942ee67178SXianjun Jiao * that userspace registers for will not be returned as unhandled by the 952ee67178SXianjun Jiao * driver, so that the registered application has to take responsibility 962ee67178SXianjun Jiao * for doing that. 972ee67178SXianjun Jiao * 982ee67178SXianjun Jiao * The type of frame that can be registered for is also dependent on the 992ee67178SXianjun Jiao * driver and interface type. The frame types are advertised in wiphy 1002ee67178SXianjun Jiao * attributes so applications know what to expect. 1012ee67178SXianjun Jiao * 1022ee67178SXianjun Jiao * NOTE: When an interface changes type while registrations are active, 1032ee67178SXianjun Jiao * these registrations are ignored until the interface type is 1042ee67178SXianjun Jiao * changed again. This means that changing the interface type can 1052ee67178SXianjun Jiao * lead to a situation that couldn't otherwise be produced, but 1062ee67178SXianjun Jiao * any such registrations will be dormant in the sense that they 1072ee67178SXianjun Jiao * will not be serviced, i.e. they will not receive any frames. 1082ee67178SXianjun Jiao * 1092ee67178SXianjun Jiao * Frame transmission allows userspace to send for example the required 1102ee67178SXianjun Jiao * responses to action frames. It is subject to some sanity checking, 1112ee67178SXianjun Jiao * but many frames can be transmitted. When a frame was transmitted, its 1122ee67178SXianjun Jiao * status is indicated to the sending socket. 1132ee67178SXianjun Jiao * 1142ee67178SXianjun Jiao * For more technical details, see the corresponding command descriptions 1152ee67178SXianjun Jiao * below. 1162ee67178SXianjun Jiao */ 1172ee67178SXianjun Jiao 1182ee67178SXianjun Jiao /** 1192ee67178SXianjun Jiao * DOC: Virtual interface / concurrency capabilities 1202ee67178SXianjun Jiao * 1212ee67178SXianjun Jiao * Some devices are able to operate with virtual MACs, they can have 1222ee67178SXianjun Jiao * more than one virtual interface. The capability handling for this 1232ee67178SXianjun Jiao * is a bit complex though, as there may be a number of restrictions 1242ee67178SXianjun Jiao * on the types of concurrency that are supported. 1252ee67178SXianjun Jiao * 1262ee67178SXianjun Jiao * To start with, each device supports the interface types listed in 1272ee67178SXianjun Jiao * the %NL80211_ATTR_SUPPORTED_IFTYPES attribute, but by listing the 1282ee67178SXianjun Jiao * types there no concurrency is implied. 1292ee67178SXianjun Jiao * 1302ee67178SXianjun Jiao * Once concurrency is desired, more attributes must be observed: 1312ee67178SXianjun Jiao * To start with, since some interface types are purely managed in 1322ee67178SXianjun Jiao * software, like the AP-VLAN type in mac80211 for example, there's 1332ee67178SXianjun Jiao * an additional list of these, they can be added at any time and 1342ee67178SXianjun Jiao * are only restricted by some semantic restrictions (e.g. AP-VLAN 1352ee67178SXianjun Jiao * cannot be added without a corresponding AP interface). This list 1362ee67178SXianjun Jiao * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute. 1372ee67178SXianjun Jiao * 1382ee67178SXianjun Jiao * Further, the list of supported combinations is exported. This is 1392ee67178SXianjun Jiao * in the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute. Basically, 1402ee67178SXianjun Jiao * it exports a list of "groups", and at any point in time the 1412ee67178SXianjun Jiao * interfaces that are currently active must fall into any one of 1422ee67178SXianjun Jiao * the advertised groups. Within each group, there are restrictions 1432ee67178SXianjun Jiao * on the number of interfaces of different types that are supported 1442ee67178SXianjun Jiao * and also the number of different channels, along with potentially 1452ee67178SXianjun Jiao * some other restrictions. See &enum nl80211_if_combination_attrs. 1462ee67178SXianjun Jiao * 1472ee67178SXianjun Jiao * All together, these attributes define the concurrency of virtual 1482ee67178SXianjun Jiao * interfaces that a given device supports. 1492ee67178SXianjun Jiao */ 1502ee67178SXianjun Jiao 1512ee67178SXianjun Jiao /** 1522ee67178SXianjun Jiao * DOC: packet coalesce support 1532ee67178SXianjun Jiao * 1542ee67178SXianjun Jiao * In most cases, host that receives IPv4 and IPv6 multicast/broadcast 1552ee67178SXianjun Jiao * packets does not do anything with these packets. Therefore the 1562ee67178SXianjun Jiao * reception of these unwanted packets causes unnecessary processing 1572ee67178SXianjun Jiao * and power consumption. 1582ee67178SXianjun Jiao * 1592ee67178SXianjun Jiao * Packet coalesce feature helps to reduce number of received interrupts 1602ee67178SXianjun Jiao * to host by buffering these packets in firmware/hardware for some 1612ee67178SXianjun Jiao * predefined time. Received interrupt will be generated when one of the 1622ee67178SXianjun Jiao * following events occur. 1632ee67178SXianjun Jiao * a) Expiration of hardware timer whose expiration time is set to maximum 1642ee67178SXianjun Jiao * coalescing delay of matching coalesce rule. 1652ee67178SXianjun Jiao * b) Coalescing buffer in hardware reaches it's limit. 1662ee67178SXianjun Jiao * c) Packet doesn't match any of the configured coalesce rules. 1672ee67178SXianjun Jiao * 1682ee67178SXianjun Jiao * User needs to configure following parameters for creating a coalesce 1692ee67178SXianjun Jiao * rule. 1702ee67178SXianjun Jiao * a) Maximum coalescing delay 1712ee67178SXianjun Jiao * b) List of packet patterns which needs to be matched 1722ee67178SXianjun Jiao * c) Condition for coalescence. pattern 'match' or 'no match' 1732ee67178SXianjun Jiao * Multiple such rules can be created. 1742ee67178SXianjun Jiao */ 1752ee67178SXianjun Jiao 1762ee67178SXianjun Jiao /** 1774ecf49bbSJiao Xianjun * DOC: WPA/WPA2 EAPOL handshake offload 1784ecf49bbSJiao Xianjun * 1794ecf49bbSJiao Xianjun * By setting @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK flag drivers 1804ecf49bbSJiao Xianjun * can indicate they support offloading EAPOL handshakes for WPA/WPA2 1814ecf49bbSJiao Xianjun * preshared key authentication. In %NL80211_CMD_CONNECT the preshared 1824ecf49bbSJiao Xianjun * key should be specified using %NL80211_ATTR_PMK. Drivers supporting 1834ecf49bbSJiao Xianjun * this offload may reject the %NL80211_CMD_CONNECT when no preshared 1844ecf49bbSJiao Xianjun * key material is provided, for example when that driver does not 1854ecf49bbSJiao Xianjun * support setting the temporal keys through %CMD_NEW_KEY. 1864ecf49bbSJiao Xianjun * 1874ecf49bbSJiao Xianjun * Similarly @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X flag can be 1884ecf49bbSJiao Xianjun * set by drivers indicating offload support of the PTK/GTK EAPOL 1894ecf49bbSJiao Xianjun * handshakes during 802.1X authentication. In order to use the offload 1904ecf49bbSJiao Xianjun * the %NL80211_CMD_CONNECT should have %NL80211_ATTR_WANT_1X_4WAY_HS 1914ecf49bbSJiao Xianjun * attribute flag. Drivers supporting this offload may reject the 1924ecf49bbSJiao Xianjun * %NL80211_CMD_CONNECT when the attribute flag is not present. 1934ecf49bbSJiao Xianjun * 1944ecf49bbSJiao Xianjun * For 802.1X the PMK or PMK-R0 are set by providing %NL80211_ATTR_PMK 1954ecf49bbSJiao Xianjun * using %NL80211_CMD_SET_PMK. For offloaded FT support also 1964ecf49bbSJiao Xianjun * %NL80211_ATTR_PMKR0_NAME must be provided. 1974ecf49bbSJiao Xianjun */ 1984ecf49bbSJiao Xianjun 1994ecf49bbSJiao Xianjun /** 2004ecf49bbSJiao Xianjun * DOC: FILS shared key authentication offload 2014ecf49bbSJiao Xianjun * 2024ecf49bbSJiao Xianjun * FILS shared key authentication offload can be advertized by drivers by 2034ecf49bbSJiao Xianjun * setting @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD flag. The drivers that support 2044ecf49bbSJiao Xianjun * FILS shared key authentication offload should be able to construct the 2054ecf49bbSJiao Xianjun * authentication and association frames for FILS shared key authentication and 2064ecf49bbSJiao Xianjun * eventually do a key derivation as per IEEE 802.11ai. The below additional 2074ecf49bbSJiao Xianjun * parameters should be given to driver in %NL80211_CMD_CONNECT. 2084ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_ERP_USERNAME - used to construct keyname_nai 2094ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_ERP_REALM - used to construct keyname_nai 2104ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used to construct erp message 2114ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_ERP_RRK - used to generate the rIK and rMSK 2124ecf49bbSJiao Xianjun * rIK should be used to generate an authentication tag on the ERP message and 2134ecf49bbSJiao Xianjun * rMSK should be used to derive a PMKSA. 2144ecf49bbSJiao Xianjun * rIK, rMSK should be generated and keyname_nai, sequence number should be used 2154ecf49bbSJiao Xianjun * as specified in IETF RFC 6696. 2164ecf49bbSJiao Xianjun * 2174ecf49bbSJiao Xianjun * When FILS shared key authentication is completed, driver needs to provide the 2184ecf49bbSJiao Xianjun * below additional parameters to userspace. 2194ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_KEK - used for key renewal 2204ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM - used in further EAP-RP exchanges 2214ecf49bbSJiao Xianjun * %NL80211_ATTR_PMKID - used to identify the PMKSA used/generated 2224ecf49bbSJiao Xianjun * %Nl80211_ATTR_PMK - used to update PMKSA cache in userspace 2234ecf49bbSJiao Xianjun * The PMKSA can be maintained in userspace persistently so that it can be used 2244ecf49bbSJiao Xianjun * later after reboots or wifi turn off/on also. 2254ecf49bbSJiao Xianjun * 2264ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertized by a FILS 2274ecf49bbSJiao Xianjun * capable AP supporting PMK caching. It specifies the scope within which the 2284ecf49bbSJiao Xianjun * PMKSAs are cached in an ESS. %NL80211_CMD_SET_PMKSA and 2294ecf49bbSJiao Xianjun * %NL80211_CMD_DEL_PMKSA are enhanced to allow support for PMKSA caching based 2304ecf49bbSJiao Xianjun * on FILS cache identifier. Additionally %NL80211_ATTR_PMK is used with 2314ecf49bbSJiao Xianjun * %NL80211_SET_PMKSA to specify the PMK corresponding to a PMKSA for driver to 2324ecf49bbSJiao Xianjun * use in a FILS shared key connection with PMKSA caching. 2334ecf49bbSJiao Xianjun */ 2344ecf49bbSJiao Xianjun 2354ecf49bbSJiao Xianjun /** 2362ee67178SXianjun Jiao * enum nl80211_commands - supported nl80211 commands 2372ee67178SXianjun Jiao * 2382ee67178SXianjun Jiao * @NL80211_CMD_UNSPEC: unspecified command to catch errors 2392ee67178SXianjun Jiao * 2402ee67178SXianjun Jiao * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request 2412ee67178SXianjun Jiao * to get a list of all present wiphys. 2422ee67178SXianjun Jiao * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or 2432ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, 2442ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ (and the 2452ee67178SXianjun Jiao * attributes determining the channel width; this is used for setting 2462ee67178SXianjun Jiao * monitor mode channel), %NL80211_ATTR_WIPHY_RETRY_SHORT, 2472ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_RETRY_LONG, %NL80211_ATTR_WIPHY_FRAG_THRESHOLD, 2482ee67178SXianjun Jiao * and/or %NL80211_ATTR_WIPHY_RTS_THRESHOLD. 2492ee67178SXianjun Jiao * However, for setting the channel, see %NL80211_CMD_SET_CHANNEL 2502ee67178SXianjun Jiao * instead, the support here is for backward compatibility only. 2512ee67178SXianjun Jiao * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request 2522ee67178SXianjun Jiao * or rename notification. Has attributes %NL80211_ATTR_WIPHY and 2532ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_NAME. 2542ee67178SXianjun Jiao * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes 2552ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME. 2562ee67178SXianjun Jiao * 2572ee67178SXianjun Jiao * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration; 2584ecf49bbSJiao Xianjun * either a dump request for all interfaces or a specific get with a 2594ecf49bbSJiao Xianjun * single %NL80211_ATTR_IFINDEX is supported. 2602ee67178SXianjun Jiao * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires 2612ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE. 2622ee67178SXianjun Jiao * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response 2632ee67178SXianjun Jiao * to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX, 2642ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also 2652ee67178SXianjun Jiao * be sent from userspace to request creation of a new virtual interface, 2662ee67178SXianjun Jiao * then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and 2672ee67178SXianjun Jiao * %NL80211_ATTR_IFNAME. 2682ee67178SXianjun Jiao * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes 2692ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from 2702ee67178SXianjun Jiao * userspace to request deletion of a virtual interface, then requires 2712ee67178SXianjun Jiao * attribute %NL80211_ATTR_IFINDEX. 2722ee67178SXianjun Jiao * 2732ee67178SXianjun Jiao * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified 2742ee67178SXianjun Jiao * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. 2752ee67178SXianjun Jiao * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT, 2762ee67178SXianjun Jiao * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD. 2772ee67178SXianjun Jiao * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA, 2782ee67178SXianjun Jiao * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER, 2792ee67178SXianjun Jiao * and %NL80211_ATTR_KEY_SEQ attributes. 2802ee67178SXianjun Jiao * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX 2812ee67178SXianjun Jiao * or %NL80211_ATTR_MAC. 2822ee67178SXianjun Jiao * 2832ee67178SXianjun Jiao * @NL80211_CMD_GET_BEACON: (not used) 2842ee67178SXianjun Jiao * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface 2852ee67178SXianjun Jiao * using the %NL80211_ATTR_BEACON_HEAD and %NL80211_ATTR_BEACON_TAIL 2862ee67178SXianjun Jiao * attributes. For drivers that generate the beacon and probe responses 2872ee67178SXianjun Jiao * internally, the following attributes must be provided: %NL80211_ATTR_IE, 2882ee67178SXianjun Jiao * %NL80211_ATTR_IE_PROBE_RESP and %NL80211_ATTR_IE_ASSOC_RESP. 2892ee67178SXianjun Jiao * @NL80211_CMD_START_AP: Start AP operation on an AP interface, parameters 2902ee67178SXianjun Jiao * are like for %NL80211_CMD_SET_BEACON, and additionally parameters that 2912ee67178SXianjun Jiao * do not change are used, these include %NL80211_ATTR_BEACON_INTERVAL, 2922ee67178SXianjun Jiao * %NL80211_ATTR_DTIM_PERIOD, %NL80211_ATTR_SSID, 2932ee67178SXianjun Jiao * %NL80211_ATTR_HIDDEN_SSID, %NL80211_ATTR_CIPHERS_PAIRWISE, 2942ee67178SXianjun Jiao * %NL80211_ATTR_CIPHER_GROUP, %NL80211_ATTR_WPA_VERSIONS, 2952ee67178SXianjun Jiao * %NL80211_ATTR_AKM_SUITES, %NL80211_ATTR_PRIVACY, 2962ee67178SXianjun Jiao * %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_INACTIVITY_TIMEOUT, 2972ee67178SXianjun Jiao * %NL80211_ATTR_ACL_POLICY and %NL80211_ATTR_MAC_ADDRS. 2982ee67178SXianjun Jiao * The channel to use can be set on the interface or be given using the 2992ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel width. 3002ee67178SXianjun Jiao * @NL80211_CMD_NEW_BEACON: old alias for %NL80211_CMD_START_AP 3012ee67178SXianjun Jiao * @NL80211_CMD_STOP_AP: Stop AP operation on the given interface 3022ee67178SXianjun Jiao * @NL80211_CMD_DEL_BEACON: old alias for %NL80211_CMD_STOP_AP 3032ee67178SXianjun Jiao * 3042ee67178SXianjun Jiao * @NL80211_CMD_GET_STATION: Get station attributes for station identified by 3052ee67178SXianjun Jiao * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. 3062ee67178SXianjun Jiao * @NL80211_CMD_SET_STATION: Set station attributes for station identified by 3072ee67178SXianjun Jiao * %NL80211_ATTR_MAC on the interface identified by %NL80211_ATTR_IFINDEX. 3082ee67178SXianjun Jiao * @NL80211_CMD_NEW_STATION: Add a station with given attributes to the 3092ee67178SXianjun Jiao * the interface identified by %NL80211_ATTR_IFINDEX. 3102ee67178SXianjun Jiao * @NL80211_CMD_DEL_STATION: Remove a station identified by %NL80211_ATTR_MAC 3112ee67178SXianjun Jiao * or, if no MAC address given, all stations, on the interface identified 3124ecf49bbSJiao Xianjun * by %NL80211_ATTR_IFINDEX. %NL80211_ATTR_MGMT_SUBTYPE and 3134ecf49bbSJiao Xianjun * %NL80211_ATTR_REASON_CODE can optionally be used to specify which type 3144ecf49bbSJiao Xianjun * of disconnection indication should be sent to the station 3154ecf49bbSJiao Xianjun * (Deauthentication or Disassociation frame and reason code for that 3164ecf49bbSJiao Xianjun * frame). 3172ee67178SXianjun Jiao * 3182ee67178SXianjun Jiao * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to 3192ee67178SXianjun Jiao * destination %NL80211_ATTR_MAC on the interface identified by 3202ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX. 3212ee67178SXianjun Jiao * @NL80211_CMD_SET_MPATH: Set mesh path attributes for mesh path to 3222ee67178SXianjun Jiao * destination %NL80211_ATTR_MAC on the interface identified by 3232ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX. 3242ee67178SXianjun Jiao * @NL80211_CMD_NEW_MPATH: Create a new mesh path for the destination given by 3252ee67178SXianjun Jiao * %NL80211_ATTR_MAC via %NL80211_ATTR_MPATH_NEXT_HOP. 3262ee67178SXianjun Jiao * @NL80211_CMD_DEL_MPATH: Delete a mesh path to the destination given by 3272ee67178SXianjun Jiao * %NL80211_ATTR_MAC. 3282ee67178SXianjun Jiao * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the 3292ee67178SXianjun Jiao * the interface identified by %NL80211_ATTR_IFINDEX. 3302ee67178SXianjun Jiao * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC 3312ee67178SXianjun Jiao * or, if no MAC address given, all mesh paths, on the interface identified 3322ee67178SXianjun Jiao * by %NL80211_ATTR_IFINDEX. 3332ee67178SXianjun Jiao * @NL80211_CMD_SET_BSS: Set BSS attributes for BSS identified by 3342ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX. 3352ee67178SXianjun Jiao * 3362ee67178SXianjun Jiao * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set 3374ecf49bbSJiao Xianjun * regulatory domain. If %NL80211_ATTR_WIPHY is specified and the device 3384ecf49bbSJiao Xianjun * has a private regulatory domain, it will be returned. Otherwise, the 3394ecf49bbSJiao Xianjun * global regdomain will be returned. 3404ecf49bbSJiao Xianjun * A device will have a private regulatory domain if it uses the 3414ecf49bbSJiao Xianjun * regulatory_hint() API. Even when a private regdomain is used the channel 3424ecf49bbSJiao Xianjun * information will still be mended according to further hints from 3434ecf49bbSJiao Xianjun * the regulatory core to help with compliance. A dump version of this API 3444ecf49bbSJiao Xianjun * is now available which will returns the global regdomain as well as 3454ecf49bbSJiao Xianjun * all private regdomains of present wiphys (for those that have it). 3464ecf49bbSJiao Xianjun * If a wiphy is self-managed (%NL80211_ATTR_WIPHY_SELF_MANAGED_REG), then 3474ecf49bbSJiao Xianjun * its private regdomain is the only valid one for it. The regulatory 3484ecf49bbSJiao Xianjun * core is not used to help with compliance in this case. 3492ee67178SXianjun Jiao * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command 3502ee67178SXianjun Jiao * after being queried by the kernel. CRDA replies by sending a regulatory 3512ee67178SXianjun Jiao * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our 3522ee67178SXianjun Jiao * current alpha2 if it found a match. It also provides 3532ee67178SXianjun Jiao * NL80211_ATTR_REG_RULE_FLAGS, and a set of regulatory rules. Each 3542ee67178SXianjun Jiao * regulatory rule is a nested set of attributes given by 3552ee67178SXianjun Jiao * %NL80211_ATTR_REG_RULE_FREQ_[START|END] and 3562ee67178SXianjun Jiao * %NL80211_ATTR_FREQ_RANGE_MAX_BW with an attached power rule given by 3572ee67178SXianjun Jiao * %NL80211_ATTR_REG_RULE_POWER_MAX_ANT_GAIN and 3582ee67178SXianjun Jiao * %NL80211_ATTR_REG_RULE_POWER_MAX_EIRP. 3592ee67178SXianjun Jiao * @NL80211_CMD_REQ_SET_REG: ask the wireless core to set the regulatory domain 3602ee67178SXianjun Jiao * to the specified ISO/IEC 3166-1 alpha2 country code. The core will 3612ee67178SXianjun Jiao * store this as a valid request and then query userspace for it. 3622ee67178SXianjun Jiao * 3632ee67178SXianjun Jiao * @NL80211_CMD_GET_MESH_CONFIG: Get mesh networking properties for the 3642ee67178SXianjun Jiao * interface identified by %NL80211_ATTR_IFINDEX 3652ee67178SXianjun Jiao * 3662ee67178SXianjun Jiao * @NL80211_CMD_SET_MESH_CONFIG: Set mesh networking properties for the 3672ee67178SXianjun Jiao * interface identified by %NL80211_ATTR_IFINDEX 3682ee67178SXianjun Jiao * 3692ee67178SXianjun Jiao * @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The 3702ee67178SXianjun Jiao * interface is identified with %NL80211_ATTR_IFINDEX and the management 3712ee67178SXianjun Jiao * frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be 3722ee67178SXianjun Jiao * added to the end of the specified management frame is specified with 3732ee67178SXianjun Jiao * %NL80211_ATTR_IE. If the command succeeds, the requested data will be 3742ee67178SXianjun Jiao * added to all specified management frames generated by 3752ee67178SXianjun Jiao * kernel/firmware/driver. 3762ee67178SXianjun Jiao * Note: This command has been removed and it is only reserved at this 3772ee67178SXianjun Jiao * point to avoid re-using existing command number. The functionality this 3782ee67178SXianjun Jiao * command was planned for has been provided with cleaner design with the 3792ee67178SXianjun Jiao * option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN, 3802ee67178SXianjun Jiao * NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE, 3812ee67178SXianjun Jiao * NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE. 3822ee67178SXianjun Jiao * 3832ee67178SXianjun Jiao * @NL80211_CMD_GET_SCAN: get scan results 3842ee67178SXianjun Jiao * @NL80211_CMD_TRIGGER_SCAN: trigger a new scan with the given parameters 3852ee67178SXianjun Jiao * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the 3864ecf49bbSJiao Xianjun * probe requests at CCK rate or not. %NL80211_ATTR_BSSID can be used to 3874ecf49bbSJiao Xianjun * specify a BSSID to scan for; if not included, the wildcard BSSID will 3884ecf49bbSJiao Xianjun * be used. 3892ee67178SXianjun Jiao * @NL80211_CMD_NEW_SCAN_RESULTS: scan notification (as a reply to 3902ee67178SXianjun Jiao * NL80211_CMD_GET_SCAN and on the "scan" multicast group) 3912ee67178SXianjun Jiao * @NL80211_CMD_SCAN_ABORTED: scan was aborted, for unspecified reasons, 3922ee67178SXianjun Jiao * partial scan results may be available 3932ee67178SXianjun Jiao * 3942ee67178SXianjun Jiao * @NL80211_CMD_START_SCHED_SCAN: start a scheduled scan at certain 3954ecf49bbSJiao Xianjun * intervals and certain number of cycles, as specified by 3964ecf49bbSJiao Xianjun * %NL80211_ATTR_SCHED_SCAN_PLANS. If %NL80211_ATTR_SCHED_SCAN_PLANS is 3974ecf49bbSJiao Xianjun * not specified and only %NL80211_ATTR_SCHED_SCAN_INTERVAL is specified, 3984ecf49bbSJiao Xianjun * scheduled scan will run in an infinite loop with the specified interval. 399*b1dd94e3Sluz paz * These attributes are mutually exclusive, 4004ecf49bbSJiao Xianjun * i.e. NL80211_ATTR_SCHED_SCAN_INTERVAL must not be passed if 4014ecf49bbSJiao Xianjun * NL80211_ATTR_SCHED_SCAN_PLANS is defined. 4024ecf49bbSJiao Xianjun * If for some reason scheduled scan is aborted by the driver, all scan 4034ecf49bbSJiao Xianjun * plans are canceled (including scan plans that did not start yet). 4042ee67178SXianjun Jiao * Like with normal scans, if SSIDs (%NL80211_ATTR_SCAN_SSIDS) 4052ee67178SXianjun Jiao * are passed, they are used in the probe requests. For 4062ee67178SXianjun Jiao * broadcast, a broadcast SSID must be passed (ie. an empty 4072ee67178SXianjun Jiao * string). If no SSID is passed, no probe requests are sent and 4082ee67178SXianjun Jiao * a passive scan is performed. %NL80211_ATTR_SCAN_FREQUENCIES, 4092ee67178SXianjun Jiao * if passed, define which channels should be scanned; if not 4102ee67178SXianjun Jiao * passed, all channels allowed for the current regulatory domain 4112ee67178SXianjun Jiao * are used. Extra IEs can also be passed from the userspace by 4124ecf49bbSJiao Xianjun * using the %NL80211_ATTR_IE attribute. The first cycle of the 4134ecf49bbSJiao Xianjun * scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY 4144ecf49bbSJiao Xianjun * is supplied. If the device supports multiple concurrent scheduled 4154ecf49bbSJiao Xianjun * scans, it will allow such when the caller provides the flag attribute 4164ecf49bbSJiao Xianjun * %NL80211_ATTR_SCHED_SCAN_MULTI to indicate user-space support for it. 4172ee67178SXianjun Jiao * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if 4182ee67178SXianjun Jiao * scheduled scan is not running. The caller may assume that as soon 4192ee67178SXianjun Jiao * as the call returns, it is safe to start a new scheduled scan again. 4202ee67178SXianjun Jiao * @NL80211_CMD_SCHED_SCAN_RESULTS: indicates that there are scheduled scan 4212ee67178SXianjun Jiao * results available. 4222ee67178SXianjun Jiao * @NL80211_CMD_SCHED_SCAN_STOPPED: indicates that the scheduled scan has 4232ee67178SXianjun Jiao * stopped. The driver may issue this event at any time during a 4242ee67178SXianjun Jiao * scheduled scan. One reason for stopping the scan is if the hardware 4252ee67178SXianjun Jiao * does not support starting an association or a normal scan while running 4262ee67178SXianjun Jiao * a scheduled scan. This event is also sent when the 4272ee67178SXianjun Jiao * %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface 4282ee67178SXianjun Jiao * is brought down while a scheduled scan was running. 4292ee67178SXianjun Jiao * 4302ee67178SXianjun Jiao * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation 4312ee67178SXianjun Jiao * or noise level 4322ee67178SXianjun Jiao * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to 4332ee67178SXianjun Jiao * NL80211_CMD_GET_SURVEY and on the "scan" multicast group) 4342ee67178SXianjun Jiao * 4354ecf49bbSJiao Xianjun * @NL80211_CMD_SET_PMKSA: Add a PMKSA cache entry using %NL80211_ATTR_MAC 4364ecf49bbSJiao Xianjun * (for the BSSID), %NL80211_ATTR_PMKID, and optionally %NL80211_ATTR_PMK 4374ecf49bbSJiao Xianjun * (PMK is used for PTKSA derivation in case of FILS shared key offload) or 4384ecf49bbSJiao Xianjun * using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID, 4394ecf49bbSJiao Xianjun * %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS 4404ecf49bbSJiao Xianjun * authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier 4414ecf49bbSJiao Xianjun * advertized by a FILS capable AP identifying the scope of PMKSA in an 4424ecf49bbSJiao Xianjun * ESS. 4432ee67178SXianjun Jiao * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC 4444ecf49bbSJiao Xianjun * (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID, 4454ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS 4464ecf49bbSJiao Xianjun * authentication. 4472ee67178SXianjun Jiao * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries. 4482ee67178SXianjun Jiao * 4492ee67178SXianjun Jiao * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain 4502ee67178SXianjun Jiao * has been changed and provides details of the request information 4512ee67178SXianjun Jiao * that caused the change such as who initiated the regulatory request 4522ee67178SXianjun Jiao * (%NL80211_ATTR_REG_INITIATOR), the wiphy_idx 4532ee67178SXianjun Jiao * (%NL80211_ATTR_REG_ALPHA2) on which the request was made from if 4542ee67178SXianjun Jiao * the initiator was %NL80211_REGDOM_SET_BY_COUNTRY_IE or 4552ee67178SXianjun Jiao * %NL80211_REGDOM_SET_BY_DRIVER, the type of regulatory domain 4562ee67178SXianjun Jiao * set (%NL80211_ATTR_REG_TYPE), if the type of regulatory domain is 4572ee67178SXianjun Jiao * %NL80211_REG_TYPE_COUNTRY the alpha2 to which we have moved on 4582ee67178SXianjun Jiao * to (%NL80211_ATTR_REG_ALPHA2). 4592ee67178SXianjun Jiao * @NL80211_CMD_REG_BEACON_HINT: indicates to userspace that an AP beacon 4602ee67178SXianjun Jiao * has been found while world roaming thus enabling active scan or 4612ee67178SXianjun Jiao * any mode of operation that initiates TX (beacons) on a channel 4622ee67178SXianjun Jiao * where we would not have been able to do either before. As an example 4632ee67178SXianjun Jiao * if you are world roaming (regulatory domain set to world or if your 4642ee67178SXianjun Jiao * driver is using a custom world roaming regulatory domain) and while 4652ee67178SXianjun Jiao * doing a passive scan on the 5 GHz band you find an AP there (if not 4662ee67178SXianjun Jiao * on a DFS channel) you will now be able to actively scan for that AP 4672ee67178SXianjun Jiao * or use AP mode on your card on that same channel. Note that this will 4682ee67178SXianjun Jiao * never be used for channels 1-11 on the 2 GHz band as they are always 4692ee67178SXianjun Jiao * enabled world wide. This beacon hint is only sent if your device had 4702ee67178SXianjun Jiao * either disabled active scanning or beaconing on a channel. We send to 4712ee67178SXianjun Jiao * userspace the wiphy on which we removed a restriction from 4722ee67178SXianjun Jiao * (%NL80211_ATTR_WIPHY) and the channel on which this occurred 4732ee67178SXianjun Jiao * before (%NL80211_ATTR_FREQ_BEFORE) and after (%NL80211_ATTR_FREQ_AFTER) 4742ee67178SXianjun Jiao * the beacon hint was processed. 4752ee67178SXianjun Jiao * 4762ee67178SXianjun Jiao * @NL80211_CMD_AUTHENTICATE: authentication request and notification. 4772ee67178SXianjun Jiao * This command is used both as a command (request to authenticate) and 4782ee67178SXianjun Jiao * as an event on the "mlme" multicast group indicating completion of the 4792ee67178SXianjun Jiao * authentication process. 4802ee67178SXianjun Jiao * When used as a command, %NL80211_ATTR_IFINDEX is used to identify the 4812ee67178SXianjun Jiao * interface. %NL80211_ATTR_MAC is used to specify PeerSTAAddress (and 4822ee67178SXianjun Jiao * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify 4832ee67178SXianjun Jiao * the SSID (mainly for association, but is included in authentication 4842ee67178SXianjun Jiao * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ is used 4852ee67178SXianjun Jiao * to specify the frequence of the channel in MHz. %NL80211_ATTR_AUTH_TYPE 4862ee67178SXianjun Jiao * is used to specify the authentication type. %NL80211_ATTR_IE is used to 4872ee67178SXianjun Jiao * define IEs (VendorSpecificInfo, but also including RSN IE and FT IEs) 4882ee67178SXianjun Jiao * to be added to the frame. 4892ee67178SXianjun Jiao * When used as an event, this reports reception of an Authentication 4902ee67178SXianjun Jiao * frame in station and IBSS modes when the local MLME processed the 4912ee67178SXianjun Jiao * frame, i.e., it was for the local STA and was received in correct 4922ee67178SXianjun Jiao * state. This is similar to MLME-AUTHENTICATE.confirm primitive in the 4932ee67178SXianjun Jiao * MLME SAP interface (kernel providing MLME, userspace SME). The 4942ee67178SXianjun Jiao * included %NL80211_ATTR_FRAME attribute contains the management frame 4952ee67178SXianjun Jiao * (including both the header and frame body, but not FCS). This event is 4962ee67178SXianjun Jiao * also used to indicate if the authentication attempt timed out. In that 4972ee67178SXianjun Jiao * case the %NL80211_ATTR_FRAME attribute is replaced with a 4982ee67178SXianjun Jiao * %NL80211_ATTR_TIMED_OUT flag (and %NL80211_ATTR_MAC to indicate which 4992ee67178SXianjun Jiao * pending authentication timed out). 5002ee67178SXianjun Jiao * @NL80211_CMD_ASSOCIATE: association request and notification; like 5012ee67178SXianjun Jiao * NL80211_CMD_AUTHENTICATE but for Association and Reassociation 5022ee67178SXianjun Jiao * (similar to MLME-ASSOCIATE.request, MLME-REASSOCIATE.request, 5034ecf49bbSJiao Xianjun * MLME-ASSOCIATE.confirm or MLME-REASSOCIATE.confirm primitives). The 5044ecf49bbSJiao Xianjun * %NL80211_ATTR_PREV_BSSID attribute is used to specify whether the 5054ecf49bbSJiao Xianjun * request is for the initial association to an ESS (that attribute not 5064ecf49bbSJiao Xianjun * included) or for reassociation within the ESS (that attribute is 5074ecf49bbSJiao Xianjun * included). 5082ee67178SXianjun Jiao * @NL80211_CMD_DEAUTHENTICATE: deauthentication request and notification; like 5092ee67178SXianjun Jiao * NL80211_CMD_AUTHENTICATE but for Deauthentication frames (similar to 5102ee67178SXianjun Jiao * MLME-DEAUTHENTICATION.request and MLME-DEAUTHENTICATE.indication 5112ee67178SXianjun Jiao * primitives). 5122ee67178SXianjun Jiao * @NL80211_CMD_DISASSOCIATE: disassociation request and notification; like 5132ee67178SXianjun Jiao * NL80211_CMD_AUTHENTICATE but for Disassociation frames (similar to 5142ee67178SXianjun Jiao * MLME-DISASSOCIATE.request and MLME-DISASSOCIATE.indication primitives). 5152ee67178SXianjun Jiao * 5162ee67178SXianjun Jiao * @NL80211_CMD_MICHAEL_MIC_FAILURE: notification of a locally detected Michael 5172ee67178SXianjun Jiao * MIC (part of TKIP) failure; sent on the "mlme" multicast group; the 5182ee67178SXianjun Jiao * event includes %NL80211_ATTR_MAC to describe the source MAC address of 5192ee67178SXianjun Jiao * the frame with invalid MIC, %NL80211_ATTR_KEY_TYPE to show the key 5202ee67178SXianjun Jiao * type, %NL80211_ATTR_KEY_IDX to indicate the key identifier, and 5212ee67178SXianjun Jiao * %NL80211_ATTR_KEY_SEQ to indicate the TSC value of the frame; this 5222ee67178SXianjun Jiao * event matches with MLME-MICHAELMICFAILURE.indication() primitive 5232ee67178SXianjun Jiao * 5242ee67178SXianjun Jiao * @NL80211_CMD_JOIN_IBSS: Join a new IBSS -- given at least an SSID and a 5252ee67178SXianjun Jiao * FREQ attribute (for the initial frequency if no peer can be found) 5262ee67178SXianjun Jiao * and optionally a MAC (as BSSID) and FREQ_FIXED attribute if those 5272ee67178SXianjun Jiao * should be fixed rather than automatically determined. Can only be 5282ee67178SXianjun Jiao * executed on a network interface that is UP, and fixed BSSID/FREQ 5292ee67178SXianjun Jiao * may be rejected. Another optional parameter is the beacon interval, 5302ee67178SXianjun Jiao * given in the %NL80211_ATTR_BEACON_INTERVAL attribute, which if not 5312ee67178SXianjun Jiao * given defaults to 100 TU (102.4ms). 5322ee67178SXianjun Jiao * @NL80211_CMD_LEAVE_IBSS: Leave the IBSS -- no special arguments, the IBSS is 5332ee67178SXianjun Jiao * determined by the network interface. 5342ee67178SXianjun Jiao * 5352ee67178SXianjun Jiao * @NL80211_CMD_TESTMODE: testmode command, takes a wiphy (or ifindex) attribute 5362ee67178SXianjun Jiao * to identify the device, and the TESTDATA blob attribute to pass through 5372ee67178SXianjun Jiao * to the driver. 5382ee67178SXianjun Jiao * 5392ee67178SXianjun Jiao * @NL80211_CMD_CONNECT: connection request and notification; this command 5402ee67178SXianjun Jiao * requests to connect to a specified network but without separating 5412ee67178SXianjun Jiao * auth and assoc steps. For this, you need to specify the SSID in a 5422ee67178SXianjun Jiao * %NL80211_ATTR_SSID attribute, and can optionally specify the association 5432ee67178SXianjun Jiao * IEs in %NL80211_ATTR_IE, %NL80211_ATTR_AUTH_TYPE, %NL80211_ATTR_USE_MFP, 5442ee67178SXianjun Jiao * %NL80211_ATTR_MAC, %NL80211_ATTR_WIPHY_FREQ, %NL80211_ATTR_CONTROL_PORT, 5452ee67178SXianjun Jiao * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, 5462ee67178SXianjun Jiao * %NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, %NL80211_ATTR_MAC_HINT, and 5472ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_FREQ_HINT. 5482ee67178SXianjun Jiao * If included, %NL80211_ATTR_MAC and %NL80211_ATTR_WIPHY_FREQ are 5492ee67178SXianjun Jiao * restrictions on BSS selection, i.e., they effectively prevent roaming 5502ee67178SXianjun Jiao * within the ESS. %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT 5512ee67178SXianjun Jiao * can be included to provide a recommendation of the initial BSS while 5522ee67178SXianjun Jiao * allowing the driver to roam to other BSSes within the ESS and also to 5532ee67178SXianjun Jiao * ignore this recommendation if the indicated BSS is not ideal. Only one 5542ee67178SXianjun Jiao * set of BSSID,frequency parameters is used (i.e., either the enforcing 5552ee67178SXianjun Jiao * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict 5562ee67178SXianjun Jiao * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT). 5574ecf49bbSJiao Xianjun * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within 5584ecf49bbSJiao Xianjun * the ESS in case the device is already associated and an association with 5594ecf49bbSJiao Xianjun * a different BSS is desired. 5602ee67178SXianjun Jiao * Background scan period can optionally be 5612ee67178SXianjun Jiao * specified in %NL80211_ATTR_BG_SCAN_PERIOD, 5622ee67178SXianjun Jiao * if not specified default background scan configuration 5632ee67178SXianjun Jiao * in driver is used and if period value is 0, bg scan will be disabled. 5642ee67178SXianjun Jiao * This attribute is ignored if driver does not support roam scan. 5652ee67178SXianjun Jiao * It is also sent as an event, with the BSSID and response IEs when the 5662ee67178SXianjun Jiao * connection is established or failed to be established. This can be 5674ecf49bbSJiao Xianjun * determined by the %NL80211_ATTR_STATUS_CODE attribute (0 = success, 5684ecf49bbSJiao Xianjun * non-zero = failure). If %NL80211_ATTR_TIMED_OUT is included in the 5694ecf49bbSJiao Xianjun * event, the connection attempt failed due to not being able to initiate 5704ecf49bbSJiao Xianjun * authentication/association or not receiving a response from the AP. 5714ecf49bbSJiao Xianjun * Non-zero %NL80211_ATTR_STATUS_CODE value is indicated in that case as 5724ecf49bbSJiao Xianjun * well to remain backwards compatible. 573*b1dd94e3Sluz paz * @NL80211_CMD_ROAM: notification indicating the card/driver roamed by itself. 5744ecf49bbSJiao Xianjun * When the driver roamed in a network that requires 802.1X authentication, 5754ecf49bbSJiao Xianjun * %NL80211_ATTR_PORT_AUTHORIZED should be set if the 802.1X authentication 5764ecf49bbSJiao Xianjun * was done by the driver or if roaming was done using Fast Transition 5774ecf49bbSJiao Xianjun * protocol (in which case 802.1X authentication is not needed). If 5784ecf49bbSJiao Xianjun * %NL80211_ATTR_PORT_AUTHORIZED is not set, user space is responsible for 5794ecf49bbSJiao Xianjun * the 802.1X authentication. 5802ee67178SXianjun Jiao * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify 5812ee67178SXianjun Jiao * userspace that a connection was dropped by the AP or due to other 5822ee67178SXianjun Jiao * reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and 5832ee67178SXianjun Jiao * %NL80211_ATTR_REASON_CODE attributes are used. 5842ee67178SXianjun Jiao * 5852ee67178SXianjun Jiao * @NL80211_CMD_SET_WIPHY_NETNS: Set a wiphy's netns. Note that all devices 5862ee67178SXianjun Jiao * associated with this wiphy must be down and will follow. 5872ee67178SXianjun Jiao * 5882ee67178SXianjun Jiao * @NL80211_CMD_REMAIN_ON_CHANNEL: Request to remain awake on the specified 5892ee67178SXianjun Jiao * channel for the specified amount of time. This can be used to do 5902ee67178SXianjun Jiao * off-channel operations like transmit a Public Action frame and wait for 5912ee67178SXianjun Jiao * a response while being associated to an AP on another channel. 5922ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX is used to specify which interface (and thus 5932ee67178SXianjun Jiao * radio) is used. %NL80211_ATTR_WIPHY_FREQ is used to specify the 5942ee67178SXianjun Jiao * frequency for the operation. 5952ee67178SXianjun Jiao * %NL80211_ATTR_DURATION is used to specify the duration in milliseconds 5962ee67178SXianjun Jiao * to remain on the channel. This command is also used as an event to 5972ee67178SXianjun Jiao * notify when the requested duration starts (it may take a while for the 5982ee67178SXianjun Jiao * driver to schedule this time due to other concurrent needs for the 5992ee67178SXianjun Jiao * radio). 6002ee67178SXianjun Jiao * When called, this operation returns a cookie (%NL80211_ATTR_COOKIE) 6012ee67178SXianjun Jiao * that will be included with any events pertaining to this request; 6022ee67178SXianjun Jiao * the cookie is also used to cancel the request. 6032ee67178SXianjun Jiao * @NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL: This command can be used to cancel a 6042ee67178SXianjun Jiao * pending remain-on-channel duration if the desired operation has been 6052ee67178SXianjun Jiao * completed prior to expiration of the originally requested duration. 6062ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY or %NL80211_ATTR_IFINDEX is used to specify the 6072ee67178SXianjun Jiao * radio. The %NL80211_ATTR_COOKIE attribute must be given as well to 6082ee67178SXianjun Jiao * uniquely identify the request. 6092ee67178SXianjun Jiao * This command is also used as an event to notify when a requested 6102ee67178SXianjun Jiao * remain-on-channel duration has expired. 6112ee67178SXianjun Jiao * 6122ee67178SXianjun Jiao * @NL80211_CMD_SET_TX_BITRATE_MASK: Set the mask of rates to be used in TX 6132ee67178SXianjun Jiao * rate selection. %NL80211_ATTR_IFINDEX is used to specify the interface 6142ee67178SXianjun Jiao * and @NL80211_ATTR_TX_RATES the set of allowed rates. 6152ee67178SXianjun Jiao * 6162ee67178SXianjun Jiao * @NL80211_CMD_REGISTER_FRAME: Register for receiving certain mgmt frames 6172ee67178SXianjun Jiao * (via @NL80211_CMD_FRAME) for processing in userspace. This command 6182ee67178SXianjun Jiao * requires an interface index, a frame type attribute (optional for 6192ee67178SXianjun Jiao * backward compatibility reasons, if not given assumes action frames) 6202ee67178SXianjun Jiao * and a match attribute containing the first few bytes of the frame 6212ee67178SXianjun Jiao * that should match, e.g. a single byte for only a category match or 6222ee67178SXianjun Jiao * four bytes for vendor frames including the OUI. The registration 6232ee67178SXianjun Jiao * cannot be dropped, but is removed automatically when the netlink 6242ee67178SXianjun Jiao * socket is closed. Multiple registrations can be made. 6252ee67178SXianjun Jiao * @NL80211_CMD_REGISTER_ACTION: Alias for @NL80211_CMD_REGISTER_FRAME for 6262ee67178SXianjun Jiao * backward compatibility 6272ee67178SXianjun Jiao * @NL80211_CMD_FRAME: Management frame TX request and RX notification. This 6282ee67178SXianjun Jiao * command is used both as a request to transmit a management frame and 6292ee67178SXianjun Jiao * as an event indicating reception of a frame that was not processed in 6302ee67178SXianjun Jiao * kernel code, but is for us (i.e., which may need to be processed in a 6312ee67178SXianjun Jiao * user space application). %NL80211_ATTR_FRAME is used to specify the 6322ee67178SXianjun Jiao * frame contents (including header). %NL80211_ATTR_WIPHY_FREQ is used 6332ee67178SXianjun Jiao * to indicate on which channel the frame is to be transmitted or was 6342ee67178SXianjun Jiao * received. If this channel is not the current channel (remain-on-channel 6352ee67178SXianjun Jiao * or the operational channel) the device will switch to the given channel 6362ee67178SXianjun Jiao * and transmit the frame, optionally waiting for a response for the time 6372ee67178SXianjun Jiao * specified using %NL80211_ATTR_DURATION. When called, this operation 6382ee67178SXianjun Jiao * returns a cookie (%NL80211_ATTR_COOKIE) that will be included with the 6392ee67178SXianjun Jiao * TX status event pertaining to the TX request. 6402ee67178SXianjun Jiao * %NL80211_ATTR_TX_NO_CCK_RATE is used to decide whether to send the 6412ee67178SXianjun Jiao * management frames at CCK rate or not in 2GHz band. 6422ee67178SXianjun Jiao * %NL80211_ATTR_CSA_C_OFFSETS_TX is an array of offsets to CSA 6432ee67178SXianjun Jiao * counters which will be updated to the current value. This attribute 6442ee67178SXianjun Jiao * is used during CSA period. 6452ee67178SXianjun Jiao * @NL80211_CMD_FRAME_WAIT_CANCEL: When an off-channel TX was requested, this 6462ee67178SXianjun Jiao * command may be used with the corresponding cookie to cancel the wait 6472ee67178SXianjun Jiao * time if it is known that it is no longer necessary. 6482ee67178SXianjun Jiao * @NL80211_CMD_ACTION: Alias for @NL80211_CMD_FRAME for backward compatibility. 6492ee67178SXianjun Jiao * @NL80211_CMD_FRAME_TX_STATUS: Report TX status of a management frame 6502ee67178SXianjun Jiao * transmitted with %NL80211_CMD_FRAME. %NL80211_ATTR_COOKIE identifies 6512ee67178SXianjun Jiao * the TX command and %NL80211_ATTR_FRAME includes the contents of the 6522ee67178SXianjun Jiao * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged 6532ee67178SXianjun Jiao * the frame. 6542ee67178SXianjun Jiao * @NL80211_CMD_ACTION_TX_STATUS: Alias for @NL80211_CMD_FRAME_TX_STATUS for 6552ee67178SXianjun Jiao * backward compatibility. 6562ee67178SXianjun Jiao * 6572ee67178SXianjun Jiao * @NL80211_CMD_SET_POWER_SAVE: Set powersave, using %NL80211_ATTR_PS_STATE 6582ee67178SXianjun Jiao * @NL80211_CMD_GET_POWER_SAVE: Get powersave status in %NL80211_ATTR_PS_STATE 6592ee67178SXianjun Jiao * 6602ee67178SXianjun Jiao * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command 6612ee67178SXianjun Jiao * is used to configure connection quality monitoring notification trigger 6622ee67178SXianjun Jiao * levels. 6632ee67178SXianjun Jiao * @NL80211_CMD_NOTIFY_CQM: Connection quality monitor notification. This 6642ee67178SXianjun Jiao * command is used as an event to indicate the that a trigger level was 6652ee67178SXianjun Jiao * reached. 6662ee67178SXianjun Jiao * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ 6672ee67178SXianjun Jiao * and the attributes determining channel width) the given interface 6682ee67178SXianjun Jiao * (identifed by %NL80211_ATTR_IFINDEX) shall operate on. 6692ee67178SXianjun Jiao * In case multiple channels are supported by the device, the mechanism 6702ee67178SXianjun Jiao * with which it switches channels is implementation-defined. 6712ee67178SXianjun Jiao * When a monitor interface is given, it can only switch channel while 6722ee67178SXianjun Jiao * no other interfaces are operating to avoid disturbing the operation 6732ee67178SXianjun Jiao * of any other interfaces, and other interfaces will again take 6742ee67178SXianjun Jiao * precedence when they are used. 6752ee67178SXianjun Jiao * 6762ee67178SXianjun Jiao * @NL80211_CMD_SET_WDS_PEER: Set the MAC address of the peer on a WDS interface. 6772ee67178SXianjun Jiao * 6784ecf49bbSJiao Xianjun * @NL80211_CMD_SET_MULTICAST_TO_UNICAST: Configure if this AP should perform 6794ecf49bbSJiao Xianjun * multicast to unicast conversion. When enabled, all multicast packets 6804ecf49bbSJiao Xianjun * with ethertype ARP, IPv4 or IPv6 (possibly within an 802.1Q header) 6814ecf49bbSJiao Xianjun * will be sent out to each station once with the destination (multicast) 6824ecf49bbSJiao Xianjun * MAC address replaced by the station's MAC address. Note that this may 6834ecf49bbSJiao Xianjun * break certain expectations of the receiver, e.g. the ability to drop 6844ecf49bbSJiao Xianjun * unicast IP packets encapsulated in multicast L2 frames, or the ability 6854ecf49bbSJiao Xianjun * to not send destination unreachable messages in such cases. 6864ecf49bbSJiao Xianjun * This can only be toggled per BSS. Configure this on an interface of 6874ecf49bbSJiao Xianjun * type %NL80211_IFTYPE_AP. It applies to all its VLAN interfaces 6884ecf49bbSJiao Xianjun * (%NL80211_IFTYPE_AP_VLAN), except for those in 4addr (WDS) mode. 6894ecf49bbSJiao Xianjun * If %NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED is not present with this 6904ecf49bbSJiao Xianjun * command, the feature is disabled. 6914ecf49bbSJiao Xianjun * 6922ee67178SXianjun Jiao * @NL80211_CMD_JOIN_MESH: Join a mesh. The mesh ID must be given, and initial 6932ee67178SXianjun Jiao * mesh config parameters may be given. 6942ee67178SXianjun Jiao * @NL80211_CMD_LEAVE_MESH: Leave the mesh network -- no special arguments, the 6952ee67178SXianjun Jiao * network is determined by the network interface. 6962ee67178SXianjun Jiao * 6972ee67178SXianjun Jiao * @NL80211_CMD_UNPROT_DEAUTHENTICATE: Unprotected deauthentication frame 6982ee67178SXianjun Jiao * notification. This event is used to indicate that an unprotected 6992ee67178SXianjun Jiao * deauthentication frame was dropped when MFP is in use. 7002ee67178SXianjun Jiao * @NL80211_CMD_UNPROT_DISASSOCIATE: Unprotected disassociation frame 7012ee67178SXianjun Jiao * notification. This event is used to indicate that an unprotected 7022ee67178SXianjun Jiao * disassociation frame was dropped when MFP is in use. 7032ee67178SXianjun Jiao * 7042ee67178SXianjun Jiao * @NL80211_CMD_NEW_PEER_CANDIDATE: Notification on the reception of a 7052ee67178SXianjun Jiao * beacon or probe response from a compatible mesh peer. This is only 7062ee67178SXianjun Jiao * sent while no station information (sta_info) exists for the new peer 7072ee67178SXianjun Jiao * candidate and when @NL80211_MESH_SETUP_USERSPACE_AUTH, 7082ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_AMPE, or 7092ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_MPM is set. On reception of this 7102ee67178SXianjun Jiao * notification, userspace may decide to create a new station 7112ee67178SXianjun Jiao * (@NL80211_CMD_NEW_STATION). To stop this notification from 7122ee67178SXianjun Jiao * reoccurring, the userspace authentication daemon may want to create the 7132ee67178SXianjun Jiao * new station with the AUTHENTICATED flag unset and maybe change it later 7142ee67178SXianjun Jiao * depending on the authentication result. 7152ee67178SXianjun Jiao * 7162ee67178SXianjun Jiao * @NL80211_CMD_GET_WOWLAN: get Wake-on-Wireless-LAN (WoWLAN) settings. 7172ee67178SXianjun Jiao * @NL80211_CMD_SET_WOWLAN: set Wake-on-Wireless-LAN (WoWLAN) settings. 7182ee67178SXianjun Jiao * Since wireless is more complex than wired ethernet, it supports 7192ee67178SXianjun Jiao * various triggers. These triggers can be configured through this 7202ee67178SXianjun Jiao * command with the %NL80211_ATTR_WOWLAN_TRIGGERS attribute. For 7212ee67178SXianjun Jiao * more background information, see 7222ee67178SXianjun Jiao * http://wireless.kernel.org/en/users/Documentation/WoWLAN. 7232ee67178SXianjun Jiao * The @NL80211_CMD_SET_WOWLAN command can also be used as a notification 7242ee67178SXianjun Jiao * from the driver reporting the wakeup reason. In this case, the 7252ee67178SXianjun Jiao * @NL80211_ATTR_WOWLAN_TRIGGERS attribute will contain the reason 7262ee67178SXianjun Jiao * for the wakeup, if it was caused by wireless. If it is not present 7272ee67178SXianjun Jiao * in the wakeup notification, the wireless device didn't cause the 7282ee67178SXianjun Jiao * wakeup but reports that it was woken up. 7292ee67178SXianjun Jiao * 7302ee67178SXianjun Jiao * @NL80211_CMD_SET_REKEY_OFFLOAD: This command is used give the driver 7312ee67178SXianjun Jiao * the necessary information for supporting GTK rekey offload. This 7322ee67178SXianjun Jiao * feature is typically used during WoWLAN. The configuration data 7332ee67178SXianjun Jiao * is contained in %NL80211_ATTR_REKEY_DATA (which is nested and 7342ee67178SXianjun Jiao * contains the data in sub-attributes). After rekeying happened, 7352ee67178SXianjun Jiao * this command may also be sent by the driver as an MLME event to 7362ee67178SXianjun Jiao * inform userspace of the new replay counter. 7372ee67178SXianjun Jiao * 7382ee67178SXianjun Jiao * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace 739*b1dd94e3Sluz paz * of PMKSA caching candidates. 7402ee67178SXianjun Jiao * 7412ee67178SXianjun Jiao * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). 7422ee67178SXianjun Jiao * In addition, this can be used as an event to request userspace to take 7432ee67178SXianjun Jiao * actions on TDLS links (set up a new link or tear down an existing one). 7442ee67178SXianjun Jiao * In such events, %NL80211_ATTR_TDLS_OPERATION indicates the requested 7452ee67178SXianjun Jiao * operation, %NL80211_ATTR_MAC contains the peer MAC address, and 7462ee67178SXianjun Jiao * %NL80211_ATTR_REASON_CODE the reason code to be used (only with 7472ee67178SXianjun Jiao * %NL80211_TDLS_TEARDOWN). 7482ee67178SXianjun Jiao * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. The 7492ee67178SXianjun Jiao * %NL80211_ATTR_TDLS_ACTION attribute determines the type of frame to be 7502ee67178SXianjun Jiao * sent. Public Action codes (802.11-2012 8.1.5.1) will be sent as 7512ee67178SXianjun Jiao * 802.11 management frames, while TDLS action codes (802.11-2012 7522ee67178SXianjun Jiao * 8.5.13.1) will be encapsulated and sent as data frames. The currently 7532ee67178SXianjun Jiao * supported Public Action code is %WLAN_PUB_ACTION_TDLS_DISCOVER_RES 7542ee67178SXianjun Jiao * and the currently supported TDLS actions codes are given in 7552ee67178SXianjun Jiao * &enum ieee80211_tdls_actioncode. 7562ee67178SXianjun Jiao * 7572ee67178SXianjun Jiao * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP 7582ee67178SXianjun Jiao * (or GO) interface (i.e. hostapd) to ask for unexpected frames to 7592ee67178SXianjun Jiao * implement sending deauth to stations that send unexpected class 3 7602ee67178SXianjun Jiao * frames. Also used as the event sent by the kernel when such a frame 7612ee67178SXianjun Jiao * is received. 7622ee67178SXianjun Jiao * For the event, the %NL80211_ATTR_MAC attribute carries the TA and 7632ee67178SXianjun Jiao * other attributes like the interface index are present. 7642ee67178SXianjun Jiao * If used as the command it must have an interface index and you can 7652ee67178SXianjun Jiao * only unsubscribe from the event by closing the socket. Subscription 7662ee67178SXianjun Jiao * is also for %NL80211_CMD_UNEXPECTED_4ADDR_FRAME events. 7672ee67178SXianjun Jiao * 7682ee67178SXianjun Jiao * @NL80211_CMD_UNEXPECTED_4ADDR_FRAME: Sent as an event indicating that the 7692ee67178SXianjun Jiao * associated station identified by %NL80211_ATTR_MAC sent a 4addr frame 7702ee67178SXianjun Jiao * and wasn't already in a 4-addr VLAN. The event will be sent similarly 7712ee67178SXianjun Jiao * to the %NL80211_CMD_UNEXPECTED_FRAME event, to the same listener. 7722ee67178SXianjun Jiao * 7732ee67178SXianjun Jiao * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface 7742ee67178SXianjun Jiao * by sending a null data frame to it and reporting when the frame is 775*b1dd94e3Sluz paz * acknowledged. This is used to allow timing out inactive clients. Uses 7762ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a 7772ee67178SXianjun Jiao * direct reply with an %NL80211_ATTR_COOKIE that is later used to match 7782ee67178SXianjun Jiao * up the event with the request. The event includes the same data and 7792ee67178SXianjun Jiao * has %NL80211_ATTR_ACK set if the frame was ACKed. 7802ee67178SXianjun Jiao * 7812ee67178SXianjun Jiao * @NL80211_CMD_REGISTER_BEACONS: Register this socket to receive beacons from 7822ee67178SXianjun Jiao * other BSSes when any interfaces are in AP mode. This helps implement 7832ee67178SXianjun Jiao * OLBC handling in hostapd. Beacons are reported in %NL80211_CMD_FRAME 7842ee67178SXianjun Jiao * messages. Note that per PHY only one application may register. 7852ee67178SXianjun Jiao * 7862ee67178SXianjun Jiao * @NL80211_CMD_SET_NOACK_MAP: sets a bitmap for the individual TIDs whether 7872ee67178SXianjun Jiao * No Acknowledgement Policy should be applied. 7882ee67178SXianjun Jiao * 7892ee67178SXianjun Jiao * @NL80211_CMD_CH_SWITCH_NOTIFY: An AP or GO may decide to switch channels 7902ee67178SXianjun Jiao * independently of the userspace SME, send this event indicating 7912ee67178SXianjun Jiao * %NL80211_ATTR_IFINDEX is now on %NL80211_ATTR_WIPHY_FREQ and the 7924ecf49bbSJiao Xianjun * attributes determining channel width. This indication may also be 7934ecf49bbSJiao Xianjun * sent when a remotely-initiated switch (e.g., when a STA receives a CSA 7944ecf49bbSJiao Xianjun * from the remote AP) is completed; 7954ecf49bbSJiao Xianjun * 7964ecf49bbSJiao Xianjun * @NL80211_CMD_CH_SWITCH_STARTED_NOTIFY: Notify that a channel switch 7974ecf49bbSJiao Xianjun * has been started on an interface, regardless of the initiator 7984ecf49bbSJiao Xianjun * (ie. whether it was requested from a remote device or 7994ecf49bbSJiao Xianjun * initiated on our own). It indicates that 8004ecf49bbSJiao Xianjun * %NL80211_ATTR_IFINDEX will be on %NL80211_ATTR_WIPHY_FREQ 8014ecf49bbSJiao Xianjun * after %NL80211_ATTR_CH_SWITCH_COUNT TBTT's. The userspace may 8024ecf49bbSJiao Xianjun * decide to react to this indication by requesting other 8034ecf49bbSJiao Xianjun * interfaces to change channel as well. 8042ee67178SXianjun Jiao * 8052ee67178SXianjun Jiao * @NL80211_CMD_START_P2P_DEVICE: Start the given P2P Device, identified by 8062ee67178SXianjun Jiao * its %NL80211_ATTR_WDEV identifier. It must have been created with 8072ee67178SXianjun Jiao * %NL80211_CMD_NEW_INTERFACE previously. After it has been started, the 8082ee67178SXianjun Jiao * P2P Device can be used for P2P operations, e.g. remain-on-channel and 8092ee67178SXianjun Jiao * public action frame TX. 8102ee67178SXianjun Jiao * @NL80211_CMD_STOP_P2P_DEVICE: Stop the given P2P Device, identified by 8112ee67178SXianjun Jiao * its %NL80211_ATTR_WDEV identifier. 8122ee67178SXianjun Jiao * 8132ee67178SXianjun Jiao * @NL80211_CMD_CONN_FAILED: connection request to an AP failed; used to 8142ee67178SXianjun Jiao * notify userspace that AP has rejected the connection request from a 8152ee67178SXianjun Jiao * station, due to particular reason. %NL80211_ATTR_CONN_FAILED_REASON 8162ee67178SXianjun Jiao * is used for this. 8172ee67178SXianjun Jiao * 8182ee67178SXianjun Jiao * @NL80211_CMD_SET_MCAST_RATE: Change the rate used to send multicast frames 8192ee67178SXianjun Jiao * for IBSS or MESH vif. 8202ee67178SXianjun Jiao * 8212ee67178SXianjun Jiao * @NL80211_CMD_SET_MAC_ACL: sets ACL for MAC address based access control. 8222ee67178SXianjun Jiao * This is to be used with the drivers advertising the support of MAC 8232ee67178SXianjun Jiao * address based access control. List of MAC addresses is passed in 8242ee67178SXianjun Jiao * %NL80211_ATTR_MAC_ADDRS and ACL policy is passed in 8252ee67178SXianjun Jiao * %NL80211_ATTR_ACL_POLICY. Driver will enable ACL with this list, if it 8262ee67178SXianjun Jiao * is not already done. The new list will replace any existing list. Driver 8272ee67178SXianjun Jiao * will clear its ACL when the list of MAC addresses passed is empty. This 8282ee67178SXianjun Jiao * command is used in AP/P2P GO mode. Driver has to make sure to clear its 8292ee67178SXianjun Jiao * ACL list during %NL80211_CMD_STOP_AP. 8302ee67178SXianjun Jiao * 8312ee67178SXianjun Jiao * @NL80211_CMD_RADAR_DETECT: Start a Channel availability check (CAC). Once 8322ee67178SXianjun Jiao * a radar is detected or the channel availability scan (CAC) has finished 8332ee67178SXianjun Jiao * or was aborted, or a radar was detected, usermode will be notified with 8342ee67178SXianjun Jiao * this event. This command is also used to notify userspace about radars 8352ee67178SXianjun Jiao * while operating on this channel. 8362ee67178SXianjun Jiao * %NL80211_ATTR_RADAR_EVENT is used to inform about the type of the 8372ee67178SXianjun Jiao * event. 8382ee67178SXianjun Jiao * 8392ee67178SXianjun Jiao * @NL80211_CMD_GET_PROTOCOL_FEATURES: Get global nl80211 protocol features, 8402ee67178SXianjun Jiao * i.e. features for the nl80211 protocol rather than device features. 8412ee67178SXianjun Jiao * Returns the features in the %NL80211_ATTR_PROTOCOL_FEATURES bitmap. 8422ee67178SXianjun Jiao * 8432ee67178SXianjun Jiao * @NL80211_CMD_UPDATE_FT_IES: Pass down the most up-to-date Fast Transition 8442ee67178SXianjun Jiao * Information Element to the WLAN driver 8452ee67178SXianjun Jiao * 8462ee67178SXianjun Jiao * @NL80211_CMD_FT_EVENT: Send a Fast transition event from the WLAN driver 8472ee67178SXianjun Jiao * to the supplicant. This will carry the target AP's MAC address along 8482ee67178SXianjun Jiao * with the relevant Information Elements. This event is used to report 8492ee67178SXianjun Jiao * received FT IEs (MDIE, FTIE, RSN IE, TIE, RICIE). 8502ee67178SXianjun Jiao * 8512ee67178SXianjun Jiao * @NL80211_CMD_CRIT_PROTOCOL_START: Indicates user-space will start running 8522ee67178SXianjun Jiao * a critical protocol that needs more reliability in the connection to 8532ee67178SXianjun Jiao * complete. 8542ee67178SXianjun Jiao * 8552ee67178SXianjun Jiao * @NL80211_CMD_CRIT_PROTOCOL_STOP: Indicates the connection reliability can 8562ee67178SXianjun Jiao * return back to normal. 8572ee67178SXianjun Jiao * 8582ee67178SXianjun Jiao * @NL80211_CMD_GET_COALESCE: Get currently supported coalesce rules. 8592ee67178SXianjun Jiao * @NL80211_CMD_SET_COALESCE: Configure coalesce rules or clear existing rules. 8602ee67178SXianjun Jiao * 8612ee67178SXianjun Jiao * @NL80211_CMD_CHANNEL_SWITCH: Perform a channel switch by announcing the 8622ee67178SXianjun Jiao * the new channel information (Channel Switch Announcement - CSA) 8632ee67178SXianjun Jiao * in the beacon for some time (as defined in the 8642ee67178SXianjun Jiao * %NL80211_ATTR_CH_SWITCH_COUNT parameter) and then change to the 8652ee67178SXianjun Jiao * new channel. Userspace provides the new channel information (using 8662ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_FREQ and the attributes determining channel 8672ee67178SXianjun Jiao * width). %NL80211_ATTR_CH_SWITCH_BLOCK_TX may be supplied to inform 8682ee67178SXianjun Jiao * other station that transmission must be blocked until the channel 8692ee67178SXianjun Jiao * switch is complete. 8702ee67178SXianjun Jiao * 8712ee67178SXianjun Jiao * @NL80211_CMD_VENDOR: Vendor-specified command/event. The command is specified 8722ee67178SXianjun Jiao * by the %NL80211_ATTR_VENDOR_ID attribute and a sub-command in 8732ee67178SXianjun Jiao * %NL80211_ATTR_VENDOR_SUBCMD. Parameter(s) can be transported in 8742ee67178SXianjun Jiao * %NL80211_ATTR_VENDOR_DATA. 8752ee67178SXianjun Jiao * For feature advertisement, the %NL80211_ATTR_VENDOR_DATA attribute is 8762ee67178SXianjun Jiao * used in the wiphy data as a nested attribute containing descriptions 8772ee67178SXianjun Jiao * (&struct nl80211_vendor_cmd_info) of the supported vendor commands. 8782ee67178SXianjun Jiao * This may also be sent as an event with the same attributes. 8792ee67178SXianjun Jiao * 8802ee67178SXianjun Jiao * @NL80211_CMD_SET_QOS_MAP: Set Interworking QoS mapping for IP DSCP values. 8812ee67178SXianjun Jiao * The QoS mapping information is included in %NL80211_ATTR_QOS_MAP. If 8822ee67178SXianjun Jiao * that attribute is not included, QoS mapping is disabled. Since this 8832ee67178SXianjun Jiao * QoS mapping is relevant for IP packets, it is only valid during an 8842ee67178SXianjun Jiao * association. This is cleared on disassociation and AP restart. 8852ee67178SXianjun Jiao * 8862ee67178SXianjun Jiao * @NL80211_CMD_ADD_TX_TS: Ask the kernel to add a traffic stream for the given 8872ee67178SXianjun Jiao * %NL80211_ATTR_TSID and %NL80211_ATTR_MAC with %NL80211_ATTR_USER_PRIO 8882ee67178SXianjun Jiao * and %NL80211_ATTR_ADMITTED_TIME parameters. 8892ee67178SXianjun Jiao * Note that the action frame handshake with the AP shall be handled by 8902ee67178SXianjun Jiao * userspace via the normal management RX/TX framework, this only sets 8912ee67178SXianjun Jiao * up the TX TS in the driver/device. 8922ee67178SXianjun Jiao * If the admitted time attribute is not added then the request just checks 8932ee67178SXianjun Jiao * if a subsequent setup could be successful, the intent is to use this to 8942ee67178SXianjun Jiao * avoid setting up a session with the AP when local restrictions would 8952ee67178SXianjun Jiao * make that impossible. However, the subsequent "real" setup may still 8962ee67178SXianjun Jiao * fail even if the check was successful. 8972ee67178SXianjun Jiao * @NL80211_CMD_DEL_TX_TS: Remove an existing TS with the %NL80211_ATTR_TSID 8982ee67178SXianjun Jiao * and %NL80211_ATTR_MAC parameters. It isn't necessary to call this 8992ee67178SXianjun Jiao * before removing a station entry entirely, or before disassociating 9002ee67178SXianjun Jiao * or similar, cleanup will happen in the driver/device in this case. 9012ee67178SXianjun Jiao * 9024ecf49bbSJiao Xianjun * @NL80211_CMD_GET_MPP: Get mesh path attributes for mesh proxy path to 9034ecf49bbSJiao Xianjun * destination %NL80211_ATTR_MAC on the interface identified by 9044ecf49bbSJiao Xianjun * %NL80211_ATTR_IFINDEX. 9054ecf49bbSJiao Xianjun * 9064ecf49bbSJiao Xianjun * @NL80211_CMD_JOIN_OCB: Join the OCB network. The center frequency and 9074ecf49bbSJiao Xianjun * bandwidth of a channel must be given. 9084ecf49bbSJiao Xianjun * @NL80211_CMD_LEAVE_OCB: Leave the OCB network -- no special arguments, the 9094ecf49bbSJiao Xianjun * network is determined by the network interface. 9104ecf49bbSJiao Xianjun * 9114ecf49bbSJiao Xianjun * @NL80211_CMD_TDLS_CHANNEL_SWITCH: Start channel-switching with a TDLS peer, 9124ecf49bbSJiao Xianjun * identified by the %NL80211_ATTR_MAC parameter. A target channel is 9134ecf49bbSJiao Xianjun * provided via %NL80211_ATTR_WIPHY_FREQ and other attributes determining 9144ecf49bbSJiao Xianjun * channel width/type. The target operating class is given via 9154ecf49bbSJiao Xianjun * %NL80211_ATTR_OPER_CLASS. 9164ecf49bbSJiao Xianjun * The driver is responsible for continually initiating channel-switching 9174ecf49bbSJiao Xianjun * operations and returning to the base channel for communication with the 9184ecf49bbSJiao Xianjun * AP. 9194ecf49bbSJiao Xianjun * @NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH: Stop channel-switching with a TDLS 9204ecf49bbSJiao Xianjun * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel 9214ecf49bbSJiao Xianjun * when this command completes. 9224ecf49bbSJiao Xianjun * 9234ecf49bbSJiao Xianjun * @NL80211_CMD_WIPHY_REG_CHANGE: Similar to %NL80211_CMD_REG_CHANGE, but used 9244ecf49bbSJiao Xianjun * as an event to indicate changes for devices with wiphy-specific regdom 9254ecf49bbSJiao Xianjun * management. 9264ecf49bbSJiao Xianjun * 9274ecf49bbSJiao Xianjun * @NL80211_CMD_ABORT_SCAN: Stop an ongoing scan. Returns -ENOENT if a scan is 9284ecf49bbSJiao Xianjun * not running. The driver indicates the status of the scan through 9294ecf49bbSJiao Xianjun * cfg80211_scan_done(). 9304ecf49bbSJiao Xianjun * 9314ecf49bbSJiao Xianjun * @NL80211_CMD_START_NAN: Start NAN operation, identified by its 9324ecf49bbSJiao Xianjun * %NL80211_ATTR_WDEV interface. This interface must have been 9334ecf49bbSJiao Xianjun * previously created with %NL80211_CMD_NEW_INTERFACE. After it 9344ecf49bbSJiao Xianjun * has been started, the NAN interface will create or join a 9354ecf49bbSJiao Xianjun * cluster. This command must have a valid 9364ecf49bbSJiao Xianjun * %NL80211_ATTR_NAN_MASTER_PREF attribute and optional 9374ecf49bbSJiao Xianjun * %NL80211_ATTR_BANDS attributes. If %NL80211_ATTR_BANDS is 9384ecf49bbSJiao Xianjun * omitted or set to 0, it means don't-care and the device will 9394ecf49bbSJiao Xianjun * decide what to use. After this command NAN functions can be 9404ecf49bbSJiao Xianjun * added. 9414ecf49bbSJiao Xianjun * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by 9424ecf49bbSJiao Xianjun * its %NL80211_ATTR_WDEV interface. 9434ecf49bbSJiao Xianjun * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined 9444ecf49bbSJiao Xianjun * with %NL80211_ATTR_NAN_FUNC nested attribute. When called, this 9454ecf49bbSJiao Xianjun * operation returns the strictly positive and unique instance id 9464ecf49bbSJiao Xianjun * (%NL80211_ATTR_NAN_FUNC_INST_ID) and a cookie (%NL80211_ATTR_COOKIE) 9474ecf49bbSJiao Xianjun * of the function upon success. 9484ecf49bbSJiao Xianjun * Since instance ID's can be re-used, this cookie is the right 9494ecf49bbSJiao Xianjun * way to identify the function. This will avoid races when a termination 9504ecf49bbSJiao Xianjun * event is handled by the user space after it has already added a new 9514ecf49bbSJiao Xianjun * function that got the same instance id from the kernel as the one 9524ecf49bbSJiao Xianjun * which just terminated. 9534ecf49bbSJiao Xianjun * This cookie may be used in NAN events even before the command 9544ecf49bbSJiao Xianjun * returns, so userspace shouldn't process NAN events until it processes 9554ecf49bbSJiao Xianjun * the response to this command. 9564ecf49bbSJiao Xianjun * Look at %NL80211_ATTR_SOCKET_OWNER as well. 9574ecf49bbSJiao Xianjun * @NL80211_CMD_DEL_NAN_FUNCTION: Delete a NAN function by cookie. 9584ecf49bbSJiao Xianjun * This command is also used as a notification sent when a NAN function is 9594ecf49bbSJiao Xianjun * terminated. This will contain a %NL80211_ATTR_NAN_FUNC_INST_ID 9604ecf49bbSJiao Xianjun * and %NL80211_ATTR_COOKIE attributes. 9614ecf49bbSJiao Xianjun * @NL80211_CMD_CHANGE_NAN_CONFIG: Change current NAN 9624ecf49bbSJiao Xianjun * configuration. NAN must be operational (%NL80211_CMD_START_NAN 9634ecf49bbSJiao Xianjun * was executed). It must contain at least one of the following 9644ecf49bbSJiao Xianjun * attributes: %NL80211_ATTR_NAN_MASTER_PREF, 9654ecf49bbSJiao Xianjun * %NL80211_ATTR_BANDS. If %NL80211_ATTR_BANDS is omitted, the 9664ecf49bbSJiao Xianjun * current configuration is not changed. If it is present but 9674ecf49bbSJiao Xianjun * set to zero, the configuration is changed to don't-care 9684ecf49bbSJiao Xianjun * (i.e. the device can decide what to do). 9694ecf49bbSJiao Xianjun * @NL80211_CMD_NAN_FUNC_MATCH: Notification sent when a match is reported. 9704ecf49bbSJiao Xianjun * This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and 9714ecf49bbSJiao Xianjun * %NL80211_ATTR_COOKIE. 9724ecf49bbSJiao Xianjun * 9734ecf49bbSJiao Xianjun * @NL80211_CMD_UPDATE_CONNECT_PARAMS: Update one or more connect parameters 9744ecf49bbSJiao Xianjun * for subsequent roaming cases if the driver or firmware uses internal 9754ecf49bbSJiao Xianjun * BSS selection. This command can be issued only while connected and it 9764ecf49bbSJiao Xianjun * does not result in a change for the current association. Currently, 9774ecf49bbSJiao Xianjun * only the %NL80211_ATTR_IE data is used and updated with this command. 9784ecf49bbSJiao Xianjun * 9794ecf49bbSJiao Xianjun * @NL80211_CMD_SET_PMK: For offloaded 4-Way handshake, set the PMK or PMK-R0 9804ecf49bbSJiao Xianjun * for the given authenticator address (specified with &NL80211_ATTR_MAC). 9814ecf49bbSJiao Xianjun * When &NL80211_ATTR_PMKR0_NAME is set, &NL80211_ATTR_PMK specifies the 9824ecf49bbSJiao Xianjun * PMK-R0, otherwise it specifies the PMK. 9834ecf49bbSJiao Xianjun * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously 9844ecf49bbSJiao Xianjun * configured PMK for the authenticator address identified by 9854ecf49bbSJiao Xianjun * &NL80211_ATTR_MAC. 9864ecf49bbSJiao Xianjun * 9872ee67178SXianjun Jiao * @NL80211_CMD_MAX: highest used command number 9882ee67178SXianjun Jiao * @__NL80211_CMD_AFTER_LAST: internal use 9892ee67178SXianjun Jiao */ 9902ee67178SXianjun Jiao enum nl80211_commands { 9912ee67178SXianjun Jiao /* don't change the order or add anything between, this is ABI! */ 9922ee67178SXianjun Jiao NL80211_CMD_UNSPEC, 9932ee67178SXianjun Jiao 9942ee67178SXianjun Jiao NL80211_CMD_GET_WIPHY, /* can dump */ 9952ee67178SXianjun Jiao NL80211_CMD_SET_WIPHY, 9962ee67178SXianjun Jiao NL80211_CMD_NEW_WIPHY, 9972ee67178SXianjun Jiao NL80211_CMD_DEL_WIPHY, 9982ee67178SXianjun Jiao 9992ee67178SXianjun Jiao NL80211_CMD_GET_INTERFACE, /* can dump */ 10002ee67178SXianjun Jiao NL80211_CMD_SET_INTERFACE, 10012ee67178SXianjun Jiao NL80211_CMD_NEW_INTERFACE, 10022ee67178SXianjun Jiao NL80211_CMD_DEL_INTERFACE, 10032ee67178SXianjun Jiao 10042ee67178SXianjun Jiao NL80211_CMD_GET_KEY, 10052ee67178SXianjun Jiao NL80211_CMD_SET_KEY, 10062ee67178SXianjun Jiao NL80211_CMD_NEW_KEY, 10072ee67178SXianjun Jiao NL80211_CMD_DEL_KEY, 10082ee67178SXianjun Jiao 10092ee67178SXianjun Jiao NL80211_CMD_GET_BEACON, 10102ee67178SXianjun Jiao NL80211_CMD_SET_BEACON, 10112ee67178SXianjun Jiao NL80211_CMD_START_AP, 10122ee67178SXianjun Jiao NL80211_CMD_NEW_BEACON = NL80211_CMD_START_AP, 10132ee67178SXianjun Jiao NL80211_CMD_STOP_AP, 10142ee67178SXianjun Jiao NL80211_CMD_DEL_BEACON = NL80211_CMD_STOP_AP, 10152ee67178SXianjun Jiao 10162ee67178SXianjun Jiao NL80211_CMD_GET_STATION, 10172ee67178SXianjun Jiao NL80211_CMD_SET_STATION, 10182ee67178SXianjun Jiao NL80211_CMD_NEW_STATION, 10192ee67178SXianjun Jiao NL80211_CMD_DEL_STATION, 10202ee67178SXianjun Jiao 10212ee67178SXianjun Jiao NL80211_CMD_GET_MPATH, 10222ee67178SXianjun Jiao NL80211_CMD_SET_MPATH, 10232ee67178SXianjun Jiao NL80211_CMD_NEW_MPATH, 10242ee67178SXianjun Jiao NL80211_CMD_DEL_MPATH, 10252ee67178SXianjun Jiao 10262ee67178SXianjun Jiao NL80211_CMD_SET_BSS, 10272ee67178SXianjun Jiao 10282ee67178SXianjun Jiao NL80211_CMD_SET_REG, 10292ee67178SXianjun Jiao NL80211_CMD_REQ_SET_REG, 10302ee67178SXianjun Jiao 10312ee67178SXianjun Jiao NL80211_CMD_GET_MESH_CONFIG, 10322ee67178SXianjun Jiao NL80211_CMD_SET_MESH_CONFIG, 10332ee67178SXianjun Jiao 10342ee67178SXianjun Jiao NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */, 10352ee67178SXianjun Jiao 10362ee67178SXianjun Jiao NL80211_CMD_GET_REG, 10372ee67178SXianjun Jiao 10382ee67178SXianjun Jiao NL80211_CMD_GET_SCAN, 10392ee67178SXianjun Jiao NL80211_CMD_TRIGGER_SCAN, 10402ee67178SXianjun Jiao NL80211_CMD_NEW_SCAN_RESULTS, 10412ee67178SXianjun Jiao NL80211_CMD_SCAN_ABORTED, 10422ee67178SXianjun Jiao 10432ee67178SXianjun Jiao NL80211_CMD_REG_CHANGE, 10442ee67178SXianjun Jiao 10452ee67178SXianjun Jiao NL80211_CMD_AUTHENTICATE, 10462ee67178SXianjun Jiao NL80211_CMD_ASSOCIATE, 10472ee67178SXianjun Jiao NL80211_CMD_DEAUTHENTICATE, 10482ee67178SXianjun Jiao NL80211_CMD_DISASSOCIATE, 10492ee67178SXianjun Jiao 10502ee67178SXianjun Jiao NL80211_CMD_MICHAEL_MIC_FAILURE, 10512ee67178SXianjun Jiao 10522ee67178SXianjun Jiao NL80211_CMD_REG_BEACON_HINT, 10532ee67178SXianjun Jiao 10542ee67178SXianjun Jiao NL80211_CMD_JOIN_IBSS, 10552ee67178SXianjun Jiao NL80211_CMD_LEAVE_IBSS, 10562ee67178SXianjun Jiao 10572ee67178SXianjun Jiao NL80211_CMD_TESTMODE, 10582ee67178SXianjun Jiao 10592ee67178SXianjun Jiao NL80211_CMD_CONNECT, 10602ee67178SXianjun Jiao NL80211_CMD_ROAM, 10612ee67178SXianjun Jiao NL80211_CMD_DISCONNECT, 10622ee67178SXianjun Jiao 10632ee67178SXianjun Jiao NL80211_CMD_SET_WIPHY_NETNS, 10642ee67178SXianjun Jiao 10652ee67178SXianjun Jiao NL80211_CMD_GET_SURVEY, 10662ee67178SXianjun Jiao NL80211_CMD_NEW_SURVEY_RESULTS, 10672ee67178SXianjun Jiao 10682ee67178SXianjun Jiao NL80211_CMD_SET_PMKSA, 10692ee67178SXianjun Jiao NL80211_CMD_DEL_PMKSA, 10702ee67178SXianjun Jiao NL80211_CMD_FLUSH_PMKSA, 10712ee67178SXianjun Jiao 10722ee67178SXianjun Jiao NL80211_CMD_REMAIN_ON_CHANNEL, 10732ee67178SXianjun Jiao NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, 10742ee67178SXianjun Jiao 10752ee67178SXianjun Jiao NL80211_CMD_SET_TX_BITRATE_MASK, 10762ee67178SXianjun Jiao 10772ee67178SXianjun Jiao NL80211_CMD_REGISTER_FRAME, 10782ee67178SXianjun Jiao NL80211_CMD_REGISTER_ACTION = NL80211_CMD_REGISTER_FRAME, 10792ee67178SXianjun Jiao NL80211_CMD_FRAME, 10802ee67178SXianjun Jiao NL80211_CMD_ACTION = NL80211_CMD_FRAME, 10812ee67178SXianjun Jiao NL80211_CMD_FRAME_TX_STATUS, 10822ee67178SXianjun Jiao NL80211_CMD_ACTION_TX_STATUS = NL80211_CMD_FRAME_TX_STATUS, 10832ee67178SXianjun Jiao 10842ee67178SXianjun Jiao NL80211_CMD_SET_POWER_SAVE, 10852ee67178SXianjun Jiao NL80211_CMD_GET_POWER_SAVE, 10862ee67178SXianjun Jiao 10872ee67178SXianjun Jiao NL80211_CMD_SET_CQM, 10882ee67178SXianjun Jiao NL80211_CMD_NOTIFY_CQM, 10892ee67178SXianjun Jiao 10902ee67178SXianjun Jiao NL80211_CMD_SET_CHANNEL, 10912ee67178SXianjun Jiao NL80211_CMD_SET_WDS_PEER, 10922ee67178SXianjun Jiao 10932ee67178SXianjun Jiao NL80211_CMD_FRAME_WAIT_CANCEL, 10942ee67178SXianjun Jiao 10952ee67178SXianjun Jiao NL80211_CMD_JOIN_MESH, 10962ee67178SXianjun Jiao NL80211_CMD_LEAVE_MESH, 10972ee67178SXianjun Jiao 10982ee67178SXianjun Jiao NL80211_CMD_UNPROT_DEAUTHENTICATE, 10992ee67178SXianjun Jiao NL80211_CMD_UNPROT_DISASSOCIATE, 11002ee67178SXianjun Jiao 11012ee67178SXianjun Jiao NL80211_CMD_NEW_PEER_CANDIDATE, 11022ee67178SXianjun Jiao 11032ee67178SXianjun Jiao NL80211_CMD_GET_WOWLAN, 11042ee67178SXianjun Jiao NL80211_CMD_SET_WOWLAN, 11052ee67178SXianjun Jiao 11062ee67178SXianjun Jiao NL80211_CMD_START_SCHED_SCAN, 11072ee67178SXianjun Jiao NL80211_CMD_STOP_SCHED_SCAN, 11082ee67178SXianjun Jiao NL80211_CMD_SCHED_SCAN_RESULTS, 11092ee67178SXianjun Jiao NL80211_CMD_SCHED_SCAN_STOPPED, 11102ee67178SXianjun Jiao 11112ee67178SXianjun Jiao NL80211_CMD_SET_REKEY_OFFLOAD, 11122ee67178SXianjun Jiao 11132ee67178SXianjun Jiao NL80211_CMD_PMKSA_CANDIDATE, 11142ee67178SXianjun Jiao 11152ee67178SXianjun Jiao NL80211_CMD_TDLS_OPER, 11162ee67178SXianjun Jiao NL80211_CMD_TDLS_MGMT, 11172ee67178SXianjun Jiao 11182ee67178SXianjun Jiao NL80211_CMD_UNEXPECTED_FRAME, 11192ee67178SXianjun Jiao 11202ee67178SXianjun Jiao NL80211_CMD_PROBE_CLIENT, 11212ee67178SXianjun Jiao 11222ee67178SXianjun Jiao NL80211_CMD_REGISTER_BEACONS, 11232ee67178SXianjun Jiao 11242ee67178SXianjun Jiao NL80211_CMD_UNEXPECTED_4ADDR_FRAME, 11252ee67178SXianjun Jiao 11262ee67178SXianjun Jiao NL80211_CMD_SET_NOACK_MAP, 11272ee67178SXianjun Jiao 11282ee67178SXianjun Jiao NL80211_CMD_CH_SWITCH_NOTIFY, 11292ee67178SXianjun Jiao 11302ee67178SXianjun Jiao NL80211_CMD_START_P2P_DEVICE, 11312ee67178SXianjun Jiao NL80211_CMD_STOP_P2P_DEVICE, 11322ee67178SXianjun Jiao 11332ee67178SXianjun Jiao NL80211_CMD_CONN_FAILED, 11342ee67178SXianjun Jiao 11352ee67178SXianjun Jiao NL80211_CMD_SET_MCAST_RATE, 11362ee67178SXianjun Jiao 11372ee67178SXianjun Jiao NL80211_CMD_SET_MAC_ACL, 11382ee67178SXianjun Jiao 11392ee67178SXianjun Jiao NL80211_CMD_RADAR_DETECT, 11402ee67178SXianjun Jiao 11412ee67178SXianjun Jiao NL80211_CMD_GET_PROTOCOL_FEATURES, 11422ee67178SXianjun Jiao 11432ee67178SXianjun Jiao NL80211_CMD_UPDATE_FT_IES, 11442ee67178SXianjun Jiao NL80211_CMD_FT_EVENT, 11452ee67178SXianjun Jiao 11462ee67178SXianjun Jiao NL80211_CMD_CRIT_PROTOCOL_START, 11472ee67178SXianjun Jiao NL80211_CMD_CRIT_PROTOCOL_STOP, 11482ee67178SXianjun Jiao 11492ee67178SXianjun Jiao NL80211_CMD_GET_COALESCE, 11502ee67178SXianjun Jiao NL80211_CMD_SET_COALESCE, 11512ee67178SXianjun Jiao 11522ee67178SXianjun Jiao NL80211_CMD_CHANNEL_SWITCH, 11532ee67178SXianjun Jiao 11542ee67178SXianjun Jiao NL80211_CMD_VENDOR, 11552ee67178SXianjun Jiao 11562ee67178SXianjun Jiao NL80211_CMD_SET_QOS_MAP, 11572ee67178SXianjun Jiao 11582ee67178SXianjun Jiao NL80211_CMD_ADD_TX_TS, 11592ee67178SXianjun Jiao NL80211_CMD_DEL_TX_TS, 11602ee67178SXianjun Jiao 11614ecf49bbSJiao Xianjun NL80211_CMD_GET_MPP, 11624ecf49bbSJiao Xianjun 11634ecf49bbSJiao Xianjun NL80211_CMD_JOIN_OCB, 11644ecf49bbSJiao Xianjun NL80211_CMD_LEAVE_OCB, 11654ecf49bbSJiao Xianjun 11664ecf49bbSJiao Xianjun NL80211_CMD_CH_SWITCH_STARTED_NOTIFY, 11674ecf49bbSJiao Xianjun 11684ecf49bbSJiao Xianjun NL80211_CMD_TDLS_CHANNEL_SWITCH, 11694ecf49bbSJiao Xianjun NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, 11704ecf49bbSJiao Xianjun 11714ecf49bbSJiao Xianjun NL80211_CMD_WIPHY_REG_CHANGE, 11724ecf49bbSJiao Xianjun 11734ecf49bbSJiao Xianjun NL80211_CMD_ABORT_SCAN, 11744ecf49bbSJiao Xianjun 11754ecf49bbSJiao Xianjun NL80211_CMD_START_NAN, 11764ecf49bbSJiao Xianjun NL80211_CMD_STOP_NAN, 11774ecf49bbSJiao Xianjun NL80211_CMD_ADD_NAN_FUNCTION, 11784ecf49bbSJiao Xianjun NL80211_CMD_DEL_NAN_FUNCTION, 11794ecf49bbSJiao Xianjun NL80211_CMD_CHANGE_NAN_CONFIG, 11804ecf49bbSJiao Xianjun NL80211_CMD_NAN_MATCH, 11814ecf49bbSJiao Xianjun 11824ecf49bbSJiao Xianjun NL80211_CMD_SET_MULTICAST_TO_UNICAST, 11834ecf49bbSJiao Xianjun 11844ecf49bbSJiao Xianjun NL80211_CMD_UPDATE_CONNECT_PARAMS, 11854ecf49bbSJiao Xianjun 11864ecf49bbSJiao Xianjun NL80211_CMD_SET_PMK, 11874ecf49bbSJiao Xianjun NL80211_CMD_DEL_PMK, 11884ecf49bbSJiao Xianjun 11892ee67178SXianjun Jiao /* add new commands above here */ 11902ee67178SXianjun Jiao 11912ee67178SXianjun Jiao /* used to define NL80211_CMD_MAX below */ 11922ee67178SXianjun Jiao __NL80211_CMD_AFTER_LAST, 11932ee67178SXianjun Jiao NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 11942ee67178SXianjun Jiao }; 11952ee67178SXianjun Jiao 11962ee67178SXianjun Jiao /* 11972ee67178SXianjun Jiao * Allow user space programs to use #ifdef on new commands by defining them 11982ee67178SXianjun Jiao * here 11992ee67178SXianjun Jiao */ 12002ee67178SXianjun Jiao #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS 12012ee67178SXianjun Jiao #define NL80211_CMD_SET_MGMT_EXTRA_IE NL80211_CMD_SET_MGMT_EXTRA_IE 12022ee67178SXianjun Jiao #define NL80211_CMD_REG_CHANGE NL80211_CMD_REG_CHANGE 12032ee67178SXianjun Jiao #define NL80211_CMD_AUTHENTICATE NL80211_CMD_AUTHENTICATE 12042ee67178SXianjun Jiao #define NL80211_CMD_ASSOCIATE NL80211_CMD_ASSOCIATE 12052ee67178SXianjun Jiao #define NL80211_CMD_DEAUTHENTICATE NL80211_CMD_DEAUTHENTICATE 12062ee67178SXianjun Jiao #define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE 12072ee67178SXianjun Jiao #define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT 12082ee67178SXianjun Jiao 12092ee67178SXianjun Jiao #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS 12102ee67178SXianjun Jiao 12112ee67178SXianjun Jiao /* source-level API compatibility */ 12122ee67178SXianjun Jiao #define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG 12132ee67178SXianjun Jiao #define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG 12142ee67178SXianjun Jiao #define NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE NL80211_MESH_SETUP_IE 12152ee67178SXianjun Jiao 12162ee67178SXianjun Jiao /** 12172ee67178SXianjun Jiao * enum nl80211_attrs - nl80211 netlink attributes 12182ee67178SXianjun Jiao * 12192ee67178SXianjun Jiao * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors 12202ee67178SXianjun Jiao * 12212ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf. 12222ee67178SXianjun Jiao * /sys/class/ieee80211/<phyname>/index 12232ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) 12242ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters 12252ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz, 12262ee67178SXianjun Jiao * defines the channel together with the (deprecated) 12272ee67178SXianjun Jiao * %NL80211_ATTR_WIPHY_CHANNEL_TYPE attribute or the attributes 12282ee67178SXianjun Jiao * %NL80211_ATTR_CHANNEL_WIDTH and if needed %NL80211_ATTR_CENTER_FREQ1 12292ee67178SXianjun Jiao * and %NL80211_ATTR_CENTER_FREQ2 12302ee67178SXianjun Jiao * @NL80211_ATTR_CHANNEL_WIDTH: u32 attribute containing one of the values 12312ee67178SXianjun Jiao * of &enum nl80211_chan_width, describing the channel width. See the 12322ee67178SXianjun Jiao * documentation of the enum for more information. 12332ee67178SXianjun Jiao * @NL80211_ATTR_CENTER_FREQ1: Center frequency of the first part of the 12342ee67178SXianjun Jiao * channel, used for anything but 20 MHz bandwidth 12352ee67178SXianjun Jiao * @NL80211_ATTR_CENTER_FREQ2: Center frequency of the second part of the 12362ee67178SXianjun Jiao * channel, used only for 80+80 MHz bandwidth 12372ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_CHANNEL_TYPE: included with NL80211_ATTR_WIPHY_FREQ 12382ee67178SXianjun Jiao * if HT20 or HT40 are to be used (i.e., HT disabled if not included): 12392ee67178SXianjun Jiao * NL80211_CHAN_NO_HT = HT not allowed (i.e., same as not including 12402ee67178SXianjun Jiao * this attribute) 12412ee67178SXianjun Jiao * NL80211_CHAN_HT20 = HT20 only 12422ee67178SXianjun Jiao * NL80211_CHAN_HT40MINUS = secondary channel is below the primary channel 12432ee67178SXianjun Jiao * NL80211_CHAN_HT40PLUS = secondary channel is above the primary channel 12442ee67178SXianjun Jiao * This attribute is now deprecated. 12452ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_RETRY_SHORT: TX retry limit for frames whose length is 12462ee67178SXianjun Jiao * less than or equal to the RTS threshold; allowed range: 1..255; 12472ee67178SXianjun Jiao * dot11ShortRetryLimit; u8 12482ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_RETRY_LONG: TX retry limit for frames whose length is 12492ee67178SXianjun Jiao * greater than the RTS threshold; allowed range: 1..255; 12502ee67178SXianjun Jiao * dot11ShortLongLimit; u8 12512ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_FRAG_THRESHOLD: fragmentation threshold, i.e., maximum 12522ee67178SXianjun Jiao * length in octets for frames; allowed range: 256..8000, disable 12532ee67178SXianjun Jiao * fragmentation with (u32)-1; dot11FragmentationThreshold; u32 12542ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_RTS_THRESHOLD: RTS threshold (TX frames with length 12552ee67178SXianjun Jiao * larger than or equal to this use RTS/CTS handshake); allowed range: 12562ee67178SXianjun Jiao * 0..65536, disable with (u32)-1; dot11RTSThreshold; u32 12572ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_COVERAGE_CLASS: Coverage Class as defined by IEEE 802.11 12582ee67178SXianjun Jiao * section 7.3.2.9; dot11CoverageClass; u8 12592ee67178SXianjun Jiao * 12602ee67178SXianjun Jiao * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on 12612ee67178SXianjun Jiao * @NL80211_ATTR_IFNAME: network interface name 12622ee67178SXianjun Jiao * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype 12632ee67178SXianjun Jiao * 12642ee67178SXianjun Jiao * @NL80211_ATTR_WDEV: wireless device identifier, used for pseudo-devices 12652ee67178SXianjun Jiao * that don't have a netdev (u64) 12662ee67178SXianjun Jiao * 12672ee67178SXianjun Jiao * @NL80211_ATTR_MAC: MAC address (various uses) 12682ee67178SXianjun Jiao * 12692ee67178SXianjun Jiao * @NL80211_ATTR_KEY_DATA: (temporal) key data; for TKIP this consists of 12702ee67178SXianjun Jiao * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC 12712ee67178SXianjun Jiao * keys 12722ee67178SXianjun Jiao * @NL80211_ATTR_KEY_IDX: key ID (u8, 0-3) 12732ee67178SXianjun Jiao * @NL80211_ATTR_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 12742ee67178SXianjun Jiao * section 7.3.2.25.1, e.g. 0x000FAC04) 12752ee67178SXianjun Jiao * @NL80211_ATTR_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and 12762ee67178SXianjun Jiao * CCMP keys, each six bytes in little endian 12772ee67178SXianjun Jiao * @NL80211_ATTR_KEY_DEFAULT: Flag attribute indicating the key is default key 12782ee67178SXianjun Jiao * @NL80211_ATTR_KEY_DEFAULT_MGMT: Flag attribute indicating the key is the 12792ee67178SXianjun Jiao * default management key 12802ee67178SXianjun Jiao * @NL80211_ATTR_CIPHER_SUITES_PAIRWISE: For crypto settings for connect or 12812ee67178SXianjun Jiao * other commands, indicates which pairwise cipher suites are used 12822ee67178SXianjun Jiao * @NL80211_ATTR_CIPHER_SUITE_GROUP: For crypto settings for connect or 12832ee67178SXianjun Jiao * other commands, indicates which group cipher suite is used 12842ee67178SXianjun Jiao * 12852ee67178SXianjun Jiao * @NL80211_ATTR_BEACON_INTERVAL: beacon interval in TU 12862ee67178SXianjun Jiao * @NL80211_ATTR_DTIM_PERIOD: DTIM period for beaconing 12872ee67178SXianjun Jiao * @NL80211_ATTR_BEACON_HEAD: portion of the beacon before the TIM IE 12882ee67178SXianjun Jiao * @NL80211_ATTR_BEACON_TAIL: portion of the beacon after the TIM IE 12892ee67178SXianjun Jiao * 12902ee67178SXianjun Jiao * @NL80211_ATTR_STA_AID: Association ID for the station (u16) 12912ee67178SXianjun Jiao * @NL80211_ATTR_STA_FLAGS: flags, nested element with NLA_FLAG attributes of 12922ee67178SXianjun Jiao * &enum nl80211_sta_flags (deprecated, use %NL80211_ATTR_STA_FLAGS2) 12932ee67178SXianjun Jiao * @NL80211_ATTR_STA_LISTEN_INTERVAL: listen interval as defined by 12942ee67178SXianjun Jiao * IEEE 802.11 7.3.1.6 (u16). 12952ee67178SXianjun Jiao * @NL80211_ATTR_STA_SUPPORTED_RATES: supported rates, array of supported 12962ee67178SXianjun Jiao * rates as defined by IEEE 802.11 7.3.2.2 but without the length 12972ee67178SXianjun Jiao * restriction (at most %NL80211_MAX_SUPP_RATES). 12982ee67178SXianjun Jiao * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station 12992ee67178SXianjun Jiao * to, or the AP interface the station was originally added to to. 13002ee67178SXianjun Jiao * @NL80211_ATTR_STA_INFO: information about a station, part of station info 13012ee67178SXianjun Jiao * given for %NL80211_CMD_GET_STATION, nested attribute containing 13022ee67178SXianjun Jiao * info as possible, see &enum nl80211_sta_info. 13032ee67178SXianjun Jiao * 13042ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands, 13052ee67178SXianjun Jiao * consisting of a nested array. 13062ee67178SXianjun Jiao * 13072ee67178SXianjun Jiao * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes). 13082ee67178SXianjun Jiao * @NL80211_ATTR_STA_PLINK_ACTION: action to perform on the mesh peer link 13092ee67178SXianjun Jiao * (see &enum nl80211_plink_action). 13102ee67178SXianjun Jiao * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path. 13112ee67178SXianjun Jiao * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path 13122ee67178SXianjun Jiao * info given for %NL80211_CMD_GET_MPATH, nested attribute described at 13132ee67178SXianjun Jiao * &enum nl80211_mpath_info. 13142ee67178SXianjun Jiao * 13152ee67178SXianjun Jiao * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of 13162ee67178SXianjun Jiao * &enum nl80211_mntr_flags. 13172ee67178SXianjun Jiao * 13182ee67178SXianjun Jiao * @NL80211_ATTR_REG_ALPHA2: an ISO-3166-alpha2 country code for which the 13192ee67178SXianjun Jiao * current regulatory domain should be set to or is already set to. 13202ee67178SXianjun Jiao * For example, 'CR', for Costa Rica. This attribute is used by the kernel 13212ee67178SXianjun Jiao * to query the CRDA to retrieve one regulatory domain. This attribute can 13222ee67178SXianjun Jiao * also be used by userspace to query the kernel for the currently set 13232ee67178SXianjun Jiao * regulatory domain. We chose an alpha2 as that is also used by the 13242ee67178SXianjun Jiao * IEEE-802.11 country information element to identify a country. 13252ee67178SXianjun Jiao * Users can also simply ask the wireless core to set regulatory domain 13262ee67178SXianjun Jiao * to a specific alpha2. 13272ee67178SXianjun Jiao * @NL80211_ATTR_REG_RULES: a nested array of regulatory domain regulatory 13282ee67178SXianjun Jiao * rules. 13292ee67178SXianjun Jiao * 13302ee67178SXianjun Jiao * @NL80211_ATTR_BSS_CTS_PROT: whether CTS protection is enabled (u8, 0 or 1) 13312ee67178SXianjun Jiao * @NL80211_ATTR_BSS_SHORT_PREAMBLE: whether short preamble is enabled 13322ee67178SXianjun Jiao * (u8, 0 or 1) 13332ee67178SXianjun Jiao * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled 13342ee67178SXianjun Jiao * (u8, 0 or 1) 13352ee67178SXianjun Jiao * @NL80211_ATTR_BSS_BASIC_RATES: basic rates, array of basic 13362ee67178SXianjun Jiao * rates in format defined by IEEE 802.11 7.3.2.2 but without the length 13372ee67178SXianjun Jiao * restriction (at most %NL80211_MAX_SUPP_RATES). 13382ee67178SXianjun Jiao * 13392ee67178SXianjun Jiao * @NL80211_ATTR_HT_CAPABILITY: HT Capability information element (from 13402ee67178SXianjun Jiao * association request when used with NL80211_CMD_NEW_STATION) 13412ee67178SXianjun Jiao * 13422ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORTED_IFTYPES: nested attribute containing all 13432ee67178SXianjun Jiao * supported interface types, each a flag attribute with the number 13442ee67178SXianjun Jiao * of the interface mode. 13452ee67178SXianjun Jiao * 13462ee67178SXianjun Jiao * @NL80211_ATTR_MGMT_SUBTYPE: Management frame subtype for 13472ee67178SXianjun Jiao * %NL80211_CMD_SET_MGMT_EXTRA_IE. 13482ee67178SXianjun Jiao * 13492ee67178SXianjun Jiao * @NL80211_ATTR_IE: Information element(s) data (used, e.g., with 13502ee67178SXianjun Jiao * %NL80211_CMD_SET_MGMT_EXTRA_IE). 13512ee67178SXianjun Jiao * 13522ee67178SXianjun Jiao * @NL80211_ATTR_MAX_NUM_SCAN_SSIDS: number of SSIDs you can scan with 13532ee67178SXianjun Jiao * a single scan request, a wiphy attribute. 13542ee67178SXianjun Jiao * @NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS: number of SSIDs you can 13552ee67178SXianjun Jiao * scan with a single scheduled scan request, a wiphy attribute. 13562ee67178SXianjun Jiao * @NL80211_ATTR_MAX_SCAN_IE_LEN: maximum length of information elements 13572ee67178SXianjun Jiao * that can be added to a scan request 13582ee67178SXianjun Jiao * @NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN: maximum length of information 13592ee67178SXianjun Jiao * elements that can be added to a scheduled scan request 13602ee67178SXianjun Jiao * @NL80211_ATTR_MAX_MATCH_SETS: maximum number of sets that can be 13612ee67178SXianjun Jiao * used with @NL80211_ATTR_SCHED_SCAN_MATCH, a wiphy attribute. 13622ee67178SXianjun Jiao * 13632ee67178SXianjun Jiao * @NL80211_ATTR_SCAN_FREQUENCIES: nested attribute with frequencies (in MHz) 13642ee67178SXianjun Jiao * @NL80211_ATTR_SCAN_SSIDS: nested attribute with SSIDs, leave out for passive 13652ee67178SXianjun Jiao * scanning and include a zero-length SSID (wildcard) for wildcard scan 13662ee67178SXianjun Jiao * @NL80211_ATTR_BSS: scan result BSS 13672ee67178SXianjun Jiao * 13682ee67178SXianjun Jiao * @NL80211_ATTR_REG_INITIATOR: indicates who requested the regulatory domain 13692ee67178SXianjun Jiao * currently in effect. This could be any of the %NL80211_REGDOM_SET_BY_* 13702ee67178SXianjun Jiao * @NL80211_ATTR_REG_TYPE: indicates the type of the regulatory domain currently 13712ee67178SXianjun Jiao * set. This can be one of the nl80211_reg_type (%NL80211_REGDOM_TYPE_*) 13722ee67178SXianjun Jiao * 13732ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORTED_COMMANDS: wiphy attribute that specifies 13742ee67178SXianjun Jiao * an array of command numbers (i.e. a mapping index to command number) 13752ee67178SXianjun Jiao * that the driver for the given wiphy supports. 13762ee67178SXianjun Jiao * 13772ee67178SXianjun Jiao * @NL80211_ATTR_FRAME: frame data (binary attribute), including frame header 13782ee67178SXianjun Jiao * and body, but not FCS; used, e.g., with NL80211_CMD_AUTHENTICATE and 13792ee67178SXianjun Jiao * NL80211_CMD_ASSOCIATE events 13802ee67178SXianjun Jiao * @NL80211_ATTR_SSID: SSID (binary attribute, 0..32 octets) 13812ee67178SXianjun Jiao * @NL80211_ATTR_AUTH_TYPE: AuthenticationType, see &enum nl80211_auth_type, 13822ee67178SXianjun Jiao * represented as a u32 13832ee67178SXianjun Jiao * @NL80211_ATTR_REASON_CODE: ReasonCode for %NL80211_CMD_DEAUTHENTICATE and 13842ee67178SXianjun Jiao * %NL80211_CMD_DISASSOCIATE, u16 13852ee67178SXianjun Jiao * 13862ee67178SXianjun Jiao * @NL80211_ATTR_KEY_TYPE: Key Type, see &enum nl80211_key_type, represented as 13872ee67178SXianjun Jiao * a u32 13882ee67178SXianjun Jiao * 13892ee67178SXianjun Jiao * @NL80211_ATTR_FREQ_BEFORE: A channel which has suffered a regulatory change 13902ee67178SXianjun Jiao * due to considerations from a beacon hint. This attribute reflects 13912ee67178SXianjun Jiao * the state of the channel _before_ the beacon hint processing. This 13922ee67178SXianjun Jiao * attributes consists of a nested attribute containing 13932ee67178SXianjun Jiao * NL80211_FREQUENCY_ATTR_* 13942ee67178SXianjun Jiao * @NL80211_ATTR_FREQ_AFTER: A channel which has suffered a regulatory change 13952ee67178SXianjun Jiao * due to considerations from a beacon hint. This attribute reflects 13962ee67178SXianjun Jiao * the state of the channel _after_ the beacon hint processing. This 13972ee67178SXianjun Jiao * attributes consists of a nested attribute containing 13982ee67178SXianjun Jiao * NL80211_FREQUENCY_ATTR_* 13992ee67178SXianjun Jiao * 14002ee67178SXianjun Jiao * @NL80211_ATTR_CIPHER_SUITES: a set of u32 values indicating the supported 14012ee67178SXianjun Jiao * cipher suites 14022ee67178SXianjun Jiao * 14032ee67178SXianjun Jiao * @NL80211_ATTR_FREQ_FIXED: a flag indicating the IBSS should not try to look 14042ee67178SXianjun Jiao * for other networks on different channels 14052ee67178SXianjun Jiao * 14062ee67178SXianjun Jiao * @NL80211_ATTR_TIMED_OUT: a flag indicating than an operation timed out; this 14072ee67178SXianjun Jiao * is used, e.g., with %NL80211_CMD_AUTHENTICATE event 14082ee67178SXianjun Jiao * 14092ee67178SXianjun Jiao * @NL80211_ATTR_USE_MFP: Whether management frame protection (IEEE 802.11w) is 14102ee67178SXianjun Jiao * used for the association (&enum nl80211_mfp, represented as a u32); 14112ee67178SXianjun Jiao * this attribute can be used 14122ee67178SXianjun Jiao * with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests 14132ee67178SXianjun Jiao * 14142ee67178SXianjun Jiao * @NL80211_ATTR_STA_FLAGS2: Attribute containing a 14152ee67178SXianjun Jiao * &struct nl80211_sta_flag_update. 14162ee67178SXianjun Jiao * 14172ee67178SXianjun Jiao * @NL80211_ATTR_CONTROL_PORT: A flag indicating whether user space controls 14182ee67178SXianjun Jiao * IEEE 802.1X port, i.e., sets/clears %NL80211_STA_FLAG_AUTHORIZED, in 14192ee67178SXianjun Jiao * station mode. If the flag is included in %NL80211_CMD_ASSOCIATE 14202ee67178SXianjun Jiao * request, the driver will assume that the port is unauthorized until 14212ee67178SXianjun Jiao * authorized by user space. Otherwise, port is marked authorized by 14222ee67178SXianjun Jiao * default in station mode. 14232ee67178SXianjun Jiao * @NL80211_ATTR_CONTROL_PORT_ETHERTYPE: A 16-bit value indicating the 14242ee67178SXianjun Jiao * ethertype that will be used for key negotiation. It can be 14252ee67178SXianjun Jiao * specified with the associate and connect commands. If it is not 14262ee67178SXianjun Jiao * specified, the value defaults to 0x888E (PAE, 802.1X). This 14272ee67178SXianjun Jiao * attribute is also used as a flag in the wiphy information to 14282ee67178SXianjun Jiao * indicate that protocols other than PAE are supported. 14292ee67178SXianjun Jiao * @NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT: When included along with 14302ee67178SXianjun Jiao * %NL80211_ATTR_CONTROL_PORT_ETHERTYPE, indicates that the custom 14312ee67178SXianjun Jiao * ethertype frames used for key negotiation must not be encrypted. 14322ee67178SXianjun Jiao * 14332ee67178SXianjun Jiao * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver. 14342ee67178SXianjun Jiao * We recommend using nested, driver-specific attributes within this. 14352ee67178SXianjun Jiao * 14362ee67178SXianjun Jiao * @NL80211_ATTR_DISCONNECTED_BY_AP: A flag indicating that the DISCONNECT 14372ee67178SXianjun Jiao * event was due to the AP disconnecting the station, and not due to 14382ee67178SXianjun Jiao * a local disconnect request. 14392ee67178SXianjun Jiao * @NL80211_ATTR_STATUS_CODE: StatusCode for the %NL80211_CMD_CONNECT 14402ee67178SXianjun Jiao * event (u16) 14412ee67178SXianjun Jiao * @NL80211_ATTR_PRIVACY: Flag attribute, used with connect(), indicating 14422ee67178SXianjun Jiao * that protected APs should be used. This is also used with NEW_BEACON to 14432ee67178SXianjun Jiao * indicate that the BSS is to use protection. 14442ee67178SXianjun Jiao * 14452ee67178SXianjun Jiao * @NL80211_ATTR_CIPHERS_PAIRWISE: Used with CONNECT, ASSOCIATE, and NEW_BEACON 14462ee67178SXianjun Jiao * to indicate which unicast key ciphers will be used with the connection 14472ee67178SXianjun Jiao * (an array of u32). 14482ee67178SXianjun Jiao * @NL80211_ATTR_CIPHER_GROUP: Used with CONNECT, ASSOCIATE, and NEW_BEACON to 14492ee67178SXianjun Jiao * indicate which group key cipher will be used with the connection (a 14502ee67178SXianjun Jiao * u32). 14512ee67178SXianjun Jiao * @NL80211_ATTR_WPA_VERSIONS: Used with CONNECT, ASSOCIATE, and NEW_BEACON to 14522ee67178SXianjun Jiao * indicate which WPA version(s) the AP we want to associate with is using 14532ee67178SXianjun Jiao * (a u32 with flags from &enum nl80211_wpa_versions). 14542ee67178SXianjun Jiao * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to 14552ee67178SXianjun Jiao * indicate which key management algorithm(s) to use (an array of u32). 14562ee67178SXianjun Jiao * 14572ee67178SXianjun Jiao * @NL80211_ATTR_REQ_IE: (Re)association request information elements as 14582ee67178SXianjun Jiao * sent out by the card, for ROAM and successful CONNECT events. 14592ee67178SXianjun Jiao * @NL80211_ATTR_RESP_IE: (Re)association response information elements as 14602ee67178SXianjun Jiao * sent by peer, for ROAM and successful CONNECT events. 14612ee67178SXianjun Jiao * 14624ecf49bbSJiao Xianjun * @NL80211_ATTR_PREV_BSSID: previous BSSID, to be used in ASSOCIATE and CONNECT 14634ecf49bbSJiao Xianjun * commands to specify a request to reassociate within an ESS, i.e., to use 14644ecf49bbSJiao Xianjun * Reassociate Request frame (with the value of this attribute in the 14654ecf49bbSJiao Xianjun * Current AP address field) instead of Association Request frame which is 14664ecf49bbSJiao Xianjun * used for the initial association to an ESS. 14672ee67178SXianjun Jiao * 14682ee67178SXianjun Jiao * @NL80211_ATTR_KEY: key information in a nested attribute with 14692ee67178SXianjun Jiao * %NL80211_KEY_* sub-attributes 14702ee67178SXianjun Jiao * @NL80211_ATTR_KEYS: array of keys for static WEP keys for connect() 14712ee67178SXianjun Jiao * and join_ibss(), key information is in a nested attribute each 14722ee67178SXianjun Jiao * with %NL80211_KEY_* sub-attributes 14732ee67178SXianjun Jiao * 14742ee67178SXianjun Jiao * @NL80211_ATTR_PID: Process ID of a network namespace. 14752ee67178SXianjun Jiao * 14762ee67178SXianjun Jiao * @NL80211_ATTR_GENERATION: Used to indicate consistent snapshots for 14772ee67178SXianjun Jiao * dumps. This number increases whenever the object list being 14782ee67178SXianjun Jiao * dumped changes, and as such userspace can verify that it has 14792ee67178SXianjun Jiao * obtained a complete and consistent snapshot by verifying that 14802ee67178SXianjun Jiao * all dump messages contain the same generation number. If it 14812ee67178SXianjun Jiao * changed then the list changed and the dump should be repeated 14822ee67178SXianjun Jiao * completely from scratch. 14832ee67178SXianjun Jiao * 14842ee67178SXianjun Jiao * @NL80211_ATTR_4ADDR: Use 4-address frames on a virtual interface 14852ee67178SXianjun Jiao * 14862ee67178SXianjun Jiao * @NL80211_ATTR_SURVEY_INFO: survey information about a channel, part of 14872ee67178SXianjun Jiao * the survey response for %NL80211_CMD_GET_SURVEY, nested attribute 14882ee67178SXianjun Jiao * containing info as possible, see &enum survey_info. 14892ee67178SXianjun Jiao * 14902ee67178SXianjun Jiao * @NL80211_ATTR_PMKID: PMK material for PMKSA caching. 14912ee67178SXianjun Jiao * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can 14922ee67178SXianjun Jiao * cache, a wiphy attribute. 14932ee67178SXianjun Jiao * 14942ee67178SXianjun Jiao * @NL80211_ATTR_DURATION: Duration of an operation in milliseconds, u32. 14952ee67178SXianjun Jiao * @NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION: Device attribute that 14962ee67178SXianjun Jiao * specifies the maximum duration that can be requested with the 14972ee67178SXianjun Jiao * remain-on-channel operation, in milliseconds, u32. 14982ee67178SXianjun Jiao * 14992ee67178SXianjun Jiao * @NL80211_ATTR_COOKIE: Generic 64-bit cookie to identify objects. 15002ee67178SXianjun Jiao * 15012ee67178SXianjun Jiao * @NL80211_ATTR_TX_RATES: Nested set of attributes 15022ee67178SXianjun Jiao * (enum nl80211_tx_rate_attributes) describing TX rates per band. The 15032ee67178SXianjun Jiao * enum nl80211_band value is used as the index (nla_type() of the nested 15042ee67178SXianjun Jiao * data. If a band is not included, it will be configured to allow all 15052ee67178SXianjun Jiao * rates based on negotiated supported rates information. This attribute 15064ecf49bbSJiao Xianjun * is used with %NL80211_CMD_SET_TX_BITRATE_MASK and with starting AP, 15074ecf49bbSJiao Xianjun * and joining mesh networks (not IBSS yet). In the later case, it must 15084ecf49bbSJiao Xianjun * specify just a single bitrate, which is to be used for the beacon. 15094ecf49bbSJiao Xianjun * The driver must also specify support for this with the extended 15104ecf49bbSJiao Xianjun * features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, 15114ecf49bbSJiao Xianjun * NL80211_EXT_FEATURE_BEACON_RATE_HT and 15124ecf49bbSJiao Xianjun * NL80211_EXT_FEATURE_BEACON_RATE_VHT. 15132ee67178SXianjun Jiao * 15142ee67178SXianjun Jiao * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain 15152ee67178SXianjun Jiao * at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME. 15162ee67178SXianjun Jiao * @NL80211_ATTR_FRAME_TYPE: A u16 indicating the frame type/subtype for the 15172ee67178SXianjun Jiao * @NL80211_CMD_REGISTER_FRAME command. 15182ee67178SXianjun Jiao * @NL80211_ATTR_TX_FRAME_TYPES: wiphy capability attribute, which is a 15192ee67178SXianjun Jiao * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing 15202ee67178SXianjun Jiao * information about which frame types can be transmitted with 15212ee67178SXianjun Jiao * %NL80211_CMD_FRAME. 15222ee67178SXianjun Jiao * @NL80211_ATTR_RX_FRAME_TYPES: wiphy capability attribute, which is a 15232ee67178SXianjun Jiao * nested attribute of %NL80211_ATTR_FRAME_TYPE attributes, containing 15242ee67178SXianjun Jiao * information about which frame types can be registered for RX. 15252ee67178SXianjun Jiao * 15262ee67178SXianjun Jiao * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was 15272ee67178SXianjun Jiao * acknowledged by the recipient. 15282ee67178SXianjun Jiao * 15292ee67178SXianjun Jiao * @NL80211_ATTR_PS_STATE: powersave state, using &enum nl80211_ps_state values. 15302ee67178SXianjun Jiao * 15312ee67178SXianjun Jiao * @NL80211_ATTR_CQM: connection quality monitor configuration in a 15322ee67178SXianjun Jiao * nested attribute with %NL80211_ATTR_CQM_* sub-attributes. 15332ee67178SXianjun Jiao * 15342ee67178SXianjun Jiao * @NL80211_ATTR_LOCAL_STATE_CHANGE: Flag attribute to indicate that a command 15352ee67178SXianjun Jiao * is requesting a local authentication/association state change without 15362ee67178SXianjun Jiao * invoking actual management frame exchange. This can be used with 15372ee67178SXianjun Jiao * NL80211_CMD_AUTHENTICATE, NL80211_CMD_DEAUTHENTICATE, 15382ee67178SXianjun Jiao * NL80211_CMD_DISASSOCIATE. 15392ee67178SXianjun Jiao * 15402ee67178SXianjun Jiao * @NL80211_ATTR_AP_ISOLATE: (AP mode) Do not forward traffic between stations 15412ee67178SXianjun Jiao * connected to this BSS. 15422ee67178SXianjun Jiao * 15432ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_TX_POWER_SETTING: Transmit power setting type. See 15442ee67178SXianjun Jiao * &enum nl80211_tx_power_setting for possible values. 15452ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_TX_POWER_LEVEL: Transmit power level in signed mBm units. 15462ee67178SXianjun Jiao * This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING 15472ee67178SXianjun Jiao * for non-automatic settings. 15482ee67178SXianjun Jiao * 15492ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly 15502ee67178SXianjun Jiao * means support for per-station GTKs. 15512ee67178SXianjun Jiao * 15522ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_ANTENNA_TX: Bitmap of allowed antennas for transmitting. 15532ee67178SXianjun Jiao * This can be used to mask out antennas which are not attached or should 15542ee67178SXianjun Jiao * not be used for transmitting. If an antenna is not selected in this 15552ee67178SXianjun Jiao * bitmap the hardware is not allowed to transmit on this antenna. 15562ee67178SXianjun Jiao * 15572ee67178SXianjun Jiao * Each bit represents one antenna, starting with antenna 1 at the first 15582ee67178SXianjun Jiao * bit. Depending on which antennas are selected in the bitmap, 802.11n 15592ee67178SXianjun Jiao * drivers can derive which chainmasks to use (if all antennas belonging to 15602ee67178SXianjun Jiao * a particular chain are disabled this chain should be disabled) and if 1561*b1dd94e3Sluz paz * a chain has diversity antennas whether diversity should be used or not. 15622ee67178SXianjun Jiao * HT capabilities (STBC, TX Beamforming, Antenna selection) can be 15632ee67178SXianjun Jiao * derived from the available chains after applying the antenna mask. 1564*b1dd94e3Sluz paz * Non-802.11n drivers can derive whether to use diversity or not. 15652ee67178SXianjun Jiao * Drivers may reject configurations or RX/TX mask combinations they cannot 15662ee67178SXianjun Jiao * support by returning -EINVAL. 15672ee67178SXianjun Jiao * 15682ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_ANTENNA_RX: Bitmap of allowed antennas for receiving. 15692ee67178SXianjun Jiao * This can be used to mask out antennas which are not attached or should 15702ee67178SXianjun Jiao * not be used for receiving. If an antenna is not selected in this bitmap 15712ee67178SXianjun Jiao * the hardware should not be configured to receive on this antenna. 15722ee67178SXianjun Jiao * For a more detailed description see @NL80211_ATTR_WIPHY_ANTENNA_TX. 15732ee67178SXianjun Jiao * 15742ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX: Bitmap of antennas which are available 15752ee67178SXianjun Jiao * for configuration as TX antennas via the above parameters. 15762ee67178SXianjun Jiao * 15772ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX: Bitmap of antennas which are available 15782ee67178SXianjun Jiao * for configuration as RX antennas via the above parameters. 15792ee67178SXianjun Jiao * 15802ee67178SXianjun Jiao * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS 15812ee67178SXianjun Jiao * 15822ee67178SXianjun Jiao * @NL80211_ATTR_OFFCHANNEL_TX_OK: For management frame TX, the frame may be 15832ee67178SXianjun Jiao * transmitted on another channel when the channel given doesn't match 15842ee67178SXianjun Jiao * the current channel. If the current channel doesn't match and this 15852ee67178SXianjun Jiao * flag isn't set, the frame will be rejected. This is also used as an 15862ee67178SXianjun Jiao * nl80211 capability flag. 15872ee67178SXianjun Jiao * 15882ee67178SXianjun Jiao * @NL80211_ATTR_BSS_HT_OPMODE: HT operation mode (u16) 15892ee67178SXianjun Jiao * 15902ee67178SXianjun Jiao * @NL80211_ATTR_KEY_DEFAULT_TYPES: A nested attribute containing flags 15912ee67178SXianjun Jiao * attributes, specifying what a key should be set as default as. 15922ee67178SXianjun Jiao * See &enum nl80211_key_default_types. 15932ee67178SXianjun Jiao * 15942ee67178SXianjun Jiao * @NL80211_ATTR_MESH_SETUP: Optional mesh setup parameters. These cannot be 15952ee67178SXianjun Jiao * changed once the mesh is active. 15962ee67178SXianjun Jiao * @NL80211_ATTR_MESH_CONFIG: Mesh configuration parameters, a nested attribute 15972ee67178SXianjun Jiao * containing attributes from &enum nl80211_meshconf_params. 15982ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORT_MESH_AUTH: Currently, this means the underlying driver 15992ee67178SXianjun Jiao * allows auth frames in a mesh to be passed to userspace for processing via 16002ee67178SXianjun Jiao * the @NL80211_MESH_SETUP_USERSPACE_AUTH flag. 16012ee67178SXianjun Jiao * @NL80211_ATTR_STA_PLINK_STATE: The state of a mesh peer link as defined in 16022ee67178SXianjun Jiao * &enum nl80211_plink_state. Used when userspace is driving the peer link 16032ee67178SXianjun Jiao * management state machine. @NL80211_MESH_SETUP_USERSPACE_AMPE or 16042ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_MPM must be enabled. 16052ee67178SXianjun Jiao * 16062ee67178SXianjun Jiao * @NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED: indicates, as part of the wiphy 16072ee67178SXianjun Jiao * capabilities, the supported WoWLAN triggers 16082ee67178SXianjun Jiao * @NL80211_ATTR_WOWLAN_TRIGGERS: used by %NL80211_CMD_SET_WOWLAN to 16092ee67178SXianjun Jiao * indicate which WoW triggers should be enabled. This is also 16102ee67178SXianjun Jiao * used by %NL80211_CMD_GET_WOWLAN to get the currently enabled WoWLAN 16112ee67178SXianjun Jiao * triggers. 16122ee67178SXianjun Jiao * 16132ee67178SXianjun Jiao * @NL80211_ATTR_SCHED_SCAN_INTERVAL: Interval between scheduled scan 16142ee67178SXianjun Jiao * cycles, in msecs. 16152ee67178SXianjun Jiao * 16162ee67178SXianjun Jiao * @NL80211_ATTR_SCHED_SCAN_MATCH: Nested attribute with one or more 16172ee67178SXianjun Jiao * sets of attributes to match during scheduled scans. Only BSSs 16182ee67178SXianjun Jiao * that match any of the sets will be reported. These are 16192ee67178SXianjun Jiao * pass-thru filter rules. 16202ee67178SXianjun Jiao * For a match to succeed, the BSS must match all attributes of a 16212ee67178SXianjun Jiao * set. Since not every hardware supports matching all types of 16222ee67178SXianjun Jiao * attributes, there is no guarantee that the reported BSSs are 16232ee67178SXianjun Jiao * fully complying with the match sets and userspace needs to be 16242ee67178SXianjun Jiao * able to ignore them by itself. 16252ee67178SXianjun Jiao * Thus, the implementation is somewhat hardware-dependent, but 16262ee67178SXianjun Jiao * this is only an optimization and the userspace application 16272ee67178SXianjun Jiao * needs to handle all the non-filtered results anyway. 16282ee67178SXianjun Jiao * If the match attributes don't make sense when combined with 16292ee67178SXianjun Jiao * the values passed in @NL80211_ATTR_SCAN_SSIDS (eg. if an SSID 16302ee67178SXianjun Jiao * is included in the probe request, but the match attributes 16312ee67178SXianjun Jiao * will never let it go through), -EINVAL may be returned. 1632*b1dd94e3Sluz paz * If omitted, no filtering is done. 16332ee67178SXianjun Jiao * 16342ee67178SXianjun Jiao * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported 16352ee67178SXianjun Jiao * interface combinations. In each nested item, it contains attributes 16362ee67178SXianjun Jiao * defined in &enum nl80211_if_combination_attrs. 16372ee67178SXianjun Jiao * @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like 16382ee67178SXianjun Jiao * %NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that 16392ee67178SXianjun Jiao * are managed in software: interfaces of these types aren't subject to 16402ee67178SXianjun Jiao * any restrictions in their number or combinations. 16412ee67178SXianjun Jiao * 16422ee67178SXianjun Jiao * @NL80211_ATTR_REKEY_DATA: nested attribute containing the information 16432ee67178SXianjun Jiao * necessary for GTK rekeying in the device, see &enum nl80211_rekey_data. 16442ee67178SXianjun Jiao * 16452ee67178SXianjun Jiao * @NL80211_ATTR_SCAN_SUPP_RATES: rates per to be advertised as supported in scan, 16462ee67178SXianjun Jiao * nested array attribute containing an entry for each band, with the entry 16472ee67178SXianjun Jiao * being a list of supported rates as defined by IEEE 802.11 7.3.2.2 but 16482ee67178SXianjun Jiao * without the length restriction (at most %NL80211_MAX_SUPP_RATES). 16492ee67178SXianjun Jiao * 16502ee67178SXianjun Jiao * @NL80211_ATTR_HIDDEN_SSID: indicates whether SSID is to be hidden from Beacon 16512ee67178SXianjun Jiao * and Probe Response (when response to wildcard Probe Request); see 16522ee67178SXianjun Jiao * &enum nl80211_hidden_ssid, represented as a u32 16532ee67178SXianjun Jiao * 16542ee67178SXianjun Jiao * @NL80211_ATTR_IE_PROBE_RESP: Information element(s) for Probe Response frame. 16552ee67178SXianjun Jiao * This is used with %NL80211_CMD_NEW_BEACON and %NL80211_CMD_SET_BEACON to 16562ee67178SXianjun Jiao * provide extra IEs (e.g., WPS/P2P IE) into Probe Response frames when the 16572ee67178SXianjun Jiao * driver (or firmware) replies to Probe Request frames. 16582ee67178SXianjun Jiao * @NL80211_ATTR_IE_ASSOC_RESP: Information element(s) for (Re)Association 16592ee67178SXianjun Jiao * Response frames. This is used with %NL80211_CMD_NEW_BEACON and 16602ee67178SXianjun Jiao * %NL80211_CMD_SET_BEACON to provide extra IEs (e.g., WPS/P2P IE) into 16612ee67178SXianjun Jiao * (Re)Association Response frames when the driver (or firmware) replies to 16622ee67178SXianjun Jiao * (Re)Association Request frames. 16632ee67178SXianjun Jiao * 16642ee67178SXianjun Jiao * @NL80211_ATTR_STA_WME: Nested attribute containing the wme configuration 16652ee67178SXianjun Jiao * of the station, see &enum nl80211_sta_wme_attr. 16662ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORT_AP_UAPSD: the device supports uapsd when working 16672ee67178SXianjun Jiao * as AP. 16682ee67178SXianjun Jiao * 16692ee67178SXianjun Jiao * @NL80211_ATTR_ROAM_SUPPORT: Indicates whether the firmware is capable of 16702ee67178SXianjun Jiao * roaming to another AP in the same ESS if the signal lever is low. 16712ee67178SXianjun Jiao * 16722ee67178SXianjun Jiao * @NL80211_ATTR_PMKSA_CANDIDATE: Nested attribute containing the PMKSA caching 16732ee67178SXianjun Jiao * candidate information, see &enum nl80211_pmksa_candidate_attr. 16742ee67178SXianjun Jiao * 16752ee67178SXianjun Jiao * @NL80211_ATTR_TX_NO_CCK_RATE: Indicates whether to use CCK rate or not 16762ee67178SXianjun Jiao * for management frames transmission. In order to avoid p2p probe/action 16772ee67178SXianjun Jiao * frames are being transmitted at CCK rate in 2GHz band, the user space 16782ee67178SXianjun Jiao * applications use this attribute. 16792ee67178SXianjun Jiao * This attribute is used with %NL80211_CMD_TRIGGER_SCAN and 16802ee67178SXianjun Jiao * %NL80211_CMD_FRAME commands. 16812ee67178SXianjun Jiao * 16822ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_ACTION: Low level TDLS action code (e.g. link setup 16832ee67178SXianjun Jiao * request, link setup confirm, link teardown, etc.). Values are 16842ee67178SXianjun Jiao * described in the TDLS (802.11z) specification. 16852ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_DIALOG_TOKEN: Non-zero token for uniquely identifying a 16862ee67178SXianjun Jiao * TDLS conversation between two devices. 16872ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_OPERATION: High level TDLS operation; see 16882ee67178SXianjun Jiao * &enum nl80211_tdls_operation, represented as a u8. 16892ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_SUPPORT: A flag indicating the device can operate 16902ee67178SXianjun Jiao * as a TDLS peer sta. 16912ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_EXTERNAL_SETUP: The TDLS discovery/setup and teardown 16922ee67178SXianjun Jiao * procedures should be performed by sending TDLS packets via 16932ee67178SXianjun Jiao * %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be 16942ee67178SXianjun Jiao * used for asking the driver to perform a TDLS operation. 16952ee67178SXianjun Jiao * 16962ee67178SXianjun Jiao * @NL80211_ATTR_DEVICE_AP_SME: This u32 attribute may be listed for devices 16972ee67178SXianjun Jiao * that have AP support to indicate that they have the AP SME integrated 16982ee67178SXianjun Jiao * with support for the features listed in this attribute, see 16992ee67178SXianjun Jiao * &enum nl80211_ap_sme_features. 17002ee67178SXianjun Jiao * 17012ee67178SXianjun Jiao * @NL80211_ATTR_DONT_WAIT_FOR_ACK: Used with %NL80211_CMD_FRAME, this tells 17022ee67178SXianjun Jiao * the driver to not wait for an acknowledgement. Note that due to this, 17032ee67178SXianjun Jiao * it will also not give a status callback nor return a cookie. This is 17042ee67178SXianjun Jiao * mostly useful for probe responses to save airtime. 17052ee67178SXianjun Jiao * 17062ee67178SXianjun Jiao * @NL80211_ATTR_FEATURE_FLAGS: This u32 attribute contains flags from 17072ee67178SXianjun Jiao * &enum nl80211_feature_flags and is advertised in wiphy information. 17082ee67178SXianjun Jiao * @NL80211_ATTR_PROBE_RESP_OFFLOAD: Indicates that the HW responds to probe 17092ee67178SXianjun Jiao * requests while operating in AP-mode. 17102ee67178SXianjun Jiao * This attribute holds a bitmap of the supported protocols for 17112ee67178SXianjun Jiao * offloading (see &enum nl80211_probe_resp_offload_support_attr). 17122ee67178SXianjun Jiao * 17132ee67178SXianjun Jiao * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire 17142ee67178SXianjun Jiao * probe-response frame. The DA field in the 802.11 header is zero-ed out, 17152ee67178SXianjun Jiao * to be filled by the FW. 17162ee67178SXianjun Jiao * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable 17172ee67178SXianjun Jiao * this feature. Currently, only supported in mac80211 drivers. 17182ee67178SXianjun Jiao * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the 17192ee67178SXianjun Jiao * ATTR_HT_CAPABILITY to which attention should be paid. 17202ee67178SXianjun Jiao * Currently, only mac80211 NICs support this feature. 17212ee67178SXianjun Jiao * The values that may be configured are: 17222ee67178SXianjun Jiao * MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40 17232ee67178SXianjun Jiao * AMPDU density and AMPDU factor. 17242ee67178SXianjun Jiao * All values are treated as suggestions and may be ignored 17252ee67178SXianjun Jiao * by the driver as required. The actual values may be seen in 17262ee67178SXianjun Jiao * the station debugfs ht_caps file. 17272ee67178SXianjun Jiao * 17282ee67178SXianjun Jiao * @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country 17292ee67178SXianjun Jiao * abides to when initiating radiation on DFS channels. A country maps 17302ee67178SXianjun Jiao * to one DFS region. 17312ee67178SXianjun Jiao * 17322ee67178SXianjun Jiao * @NL80211_ATTR_NOACK_MAP: This u16 bitmap contains the No Ack Policy of 17332ee67178SXianjun Jiao * up to 16 TIDs. 17342ee67178SXianjun Jiao * 17352ee67178SXianjun Jiao * @NL80211_ATTR_INACTIVITY_TIMEOUT: timeout value in seconds, this can be 17362ee67178SXianjun Jiao * used by the drivers which has MLME in firmware and does not have support 1737*b1dd94e3Sluz paz * to report per station tx/rx activity to free up the station entry from 17382ee67178SXianjun Jiao * the list. This needs to be used when the driver advertises the 17392ee67178SXianjun Jiao * capability to timeout the stations. 17402ee67178SXianjun Jiao * 17412ee67178SXianjun Jiao * @NL80211_ATTR_RX_SIGNAL_DBM: signal strength in dBm (as a 32-bit int); 17422ee67178SXianjun Jiao * this attribute is (depending on the driver capabilities) added to 17432ee67178SXianjun Jiao * received frames indicated with %NL80211_CMD_FRAME. 17442ee67178SXianjun Jiao * 17452ee67178SXianjun Jiao * @NL80211_ATTR_BG_SCAN_PERIOD: Background scan period in seconds 17462ee67178SXianjun Jiao * or 0 to disable background scan. 17472ee67178SXianjun Jiao * 17482ee67178SXianjun Jiao * @NL80211_ATTR_USER_REG_HINT_TYPE: type of regulatory hint passed from 17492ee67178SXianjun Jiao * userspace. If unset it is assumed the hint comes directly from 17502ee67178SXianjun Jiao * a user. If set code could specify exactly what type of source 17512ee67178SXianjun Jiao * was used to provide the hint. For the different types of 17522ee67178SXianjun Jiao * allowed user regulatory hints see nl80211_user_reg_hint_type. 17532ee67178SXianjun Jiao * 17542ee67178SXianjun Jiao * @NL80211_ATTR_CONN_FAILED_REASON: The reason for which AP has rejected 17552ee67178SXianjun Jiao * the connection request from a station. nl80211_connect_failed_reason 17562ee67178SXianjun Jiao * enum has different reasons of connection failure. 17572ee67178SXianjun Jiao * 17584ecf49bbSJiao Xianjun * @NL80211_ATTR_AUTH_DATA: Fields and elements in Authentication frames. 17594ecf49bbSJiao Xianjun * This contains the authentication frame body (non-IE and IE data), 17604ecf49bbSJiao Xianjun * excluding the Authentication algorithm number, i.e., starting at the 17614ecf49bbSJiao Xianjun * Authentication transaction sequence number field. It is used with 17624ecf49bbSJiao Xianjun * authentication algorithms that need special fields to be added into 17634ecf49bbSJiao Xianjun * the frames (SAE and FILS). Currently, only the SAE cases use the 17644ecf49bbSJiao Xianjun * initial two fields (Authentication transaction sequence number and 17654ecf49bbSJiao Xianjun * Status code). However, those fields are included in the attribute data 17664ecf49bbSJiao Xianjun * for all authentication algorithms to keep the attribute definition 17674ecf49bbSJiao Xianjun * consistent. 17682ee67178SXianjun Jiao * 17692ee67178SXianjun Jiao * @NL80211_ATTR_VHT_CAPABILITY: VHT Capability information element (from 17702ee67178SXianjun Jiao * association request when used with NL80211_CMD_NEW_STATION) 17712ee67178SXianjun Jiao * 17722ee67178SXianjun Jiao * @NL80211_ATTR_SCAN_FLAGS: scan request control flags (u32) 17732ee67178SXianjun Jiao * 17742ee67178SXianjun Jiao * @NL80211_ATTR_P2P_CTWINDOW: P2P GO Client Traffic Window (u8), used with 17752ee67178SXianjun Jiao * the START_AP and SET_BSS commands 17762ee67178SXianjun Jiao * @NL80211_ATTR_P2P_OPPPS: P2P GO opportunistic PS (u8), used with the 17772ee67178SXianjun Jiao * START_AP and SET_BSS commands. This can have the values 0 or 1; 17782ee67178SXianjun Jiao * if not given in START_AP 0 is assumed, if not given in SET_BSS 17792ee67178SXianjun Jiao * no change is made. 17802ee67178SXianjun Jiao * 17812ee67178SXianjun Jiao * @NL80211_ATTR_LOCAL_MESH_POWER_MODE: local mesh STA link-specific power mode 17822ee67178SXianjun Jiao * defined in &enum nl80211_mesh_power_mode. 17832ee67178SXianjun Jiao * 17842ee67178SXianjun Jiao * @NL80211_ATTR_ACL_POLICY: ACL policy, see &enum nl80211_acl_policy, 17852ee67178SXianjun Jiao * carried in a u32 attribute 17862ee67178SXianjun Jiao * 17872ee67178SXianjun Jiao * @NL80211_ATTR_MAC_ADDRS: Array of nested MAC addresses, used for 17882ee67178SXianjun Jiao * MAC ACL. 17892ee67178SXianjun Jiao * 17902ee67178SXianjun Jiao * @NL80211_ATTR_MAC_ACL_MAX: u32 attribute to advertise the maximum 17912ee67178SXianjun Jiao * number of MAC addresses that a device can support for MAC 17922ee67178SXianjun Jiao * ACL. 17932ee67178SXianjun Jiao * 17942ee67178SXianjun Jiao * @NL80211_ATTR_RADAR_EVENT: Type of radar event for notification to userspace, 17952ee67178SXianjun Jiao * contains a value of enum nl80211_radar_event (u32). 17962ee67178SXianjun Jiao * 17972ee67178SXianjun Jiao * @NL80211_ATTR_EXT_CAPA: 802.11 extended capabilities that the kernel driver 17982ee67178SXianjun Jiao * has and handles. The format is the same as the IE contents. See 17992ee67178SXianjun Jiao * 802.11-2012 8.4.2.29 for more information. 18002ee67178SXianjun Jiao * @NL80211_ATTR_EXT_CAPA_MASK: Extended capabilities that the kernel driver 18012ee67178SXianjun Jiao * has set in the %NL80211_ATTR_EXT_CAPA value, for multibit fields. 18022ee67178SXianjun Jiao * 18032ee67178SXianjun Jiao * @NL80211_ATTR_STA_CAPABILITY: Station capabilities (u16) are advertised to 18042ee67178SXianjun Jiao * the driver, e.g., to enable TDLS power save (PU-APSD). 18052ee67178SXianjun Jiao * 18062ee67178SXianjun Jiao * @NL80211_ATTR_STA_EXT_CAPABILITY: Station extended capabilities are 18072ee67178SXianjun Jiao * advertised to the driver, e.g., to enable TDLS off channel operations 18082ee67178SXianjun Jiao * and PU-APSD. 18092ee67178SXianjun Jiao * 18102ee67178SXianjun Jiao * @NL80211_ATTR_PROTOCOL_FEATURES: global nl80211 feature flags, see 18112ee67178SXianjun Jiao * &enum nl80211_protocol_features, the attribute is a u32. 18122ee67178SXianjun Jiao * 18132ee67178SXianjun Jiao * @NL80211_ATTR_SPLIT_WIPHY_DUMP: flag attribute, userspace supports 18142ee67178SXianjun Jiao * receiving the data for a single wiphy split across multiple 18152ee67178SXianjun Jiao * messages, given with wiphy dump message 18162ee67178SXianjun Jiao * 18172ee67178SXianjun Jiao * @NL80211_ATTR_MDID: Mobility Domain Identifier 18182ee67178SXianjun Jiao * 18192ee67178SXianjun Jiao * @NL80211_ATTR_IE_RIC: Resource Information Container Information 18202ee67178SXianjun Jiao * Element 18212ee67178SXianjun Jiao * 18222ee67178SXianjun Jiao * @NL80211_ATTR_CRIT_PROT_ID: critical protocol identifier requiring increased 18232ee67178SXianjun Jiao * reliability, see &enum nl80211_crit_proto_id (u16). 18242ee67178SXianjun Jiao * @NL80211_ATTR_MAX_CRIT_PROT_DURATION: duration in milliseconds in which 18252ee67178SXianjun Jiao * the connection should have increased reliability (u16). 18262ee67178SXianjun Jiao * 18272ee67178SXianjun Jiao * @NL80211_ATTR_PEER_AID: Association ID for the peer TDLS station (u16). 18282ee67178SXianjun Jiao * This is similar to @NL80211_ATTR_STA_AID but with a difference of being 18292ee67178SXianjun Jiao * allowed to be used with the first @NL80211_CMD_SET_STATION command to 18302ee67178SXianjun Jiao * update a TDLS peer STA entry. 18312ee67178SXianjun Jiao * 18322ee67178SXianjun Jiao * @NL80211_ATTR_COALESCE_RULE: Coalesce rule information. 18332ee67178SXianjun Jiao * 18342ee67178SXianjun Jiao * @NL80211_ATTR_CH_SWITCH_COUNT: u32 attribute specifying the number of TBTT's 18352ee67178SXianjun Jiao * until the channel switch event. 18362ee67178SXianjun Jiao * @NL80211_ATTR_CH_SWITCH_BLOCK_TX: flag attribute specifying that transmission 18372ee67178SXianjun Jiao * must be blocked on the current channel (before the channel switch 18382ee67178SXianjun Jiao * operation). 18392ee67178SXianjun Jiao * @NL80211_ATTR_CSA_IES: Nested set of attributes containing the IE information 18402ee67178SXianjun Jiao * for the time while performing a channel switch. 18412ee67178SXianjun Jiao * @NL80211_ATTR_CSA_C_OFF_BEACON: An array of offsets (u16) to the channel 18422ee67178SXianjun Jiao * switch counters in the beacons tail (%NL80211_ATTR_BEACON_TAIL). 18432ee67178SXianjun Jiao * @NL80211_ATTR_CSA_C_OFF_PRESP: An array of offsets (u16) to the channel 18442ee67178SXianjun Jiao * switch counters in the probe response (%NL80211_ATTR_PROBE_RESP). 18452ee67178SXianjun Jiao * 18462ee67178SXianjun Jiao * @NL80211_ATTR_RXMGMT_FLAGS: flags for nl80211_send_mgmt(), u32. 18472ee67178SXianjun Jiao * As specified in the &enum nl80211_rxmgmt_flags. 18482ee67178SXianjun Jiao * 18492ee67178SXianjun Jiao * @NL80211_ATTR_STA_SUPPORTED_CHANNELS: array of supported channels. 18502ee67178SXianjun Jiao * 18512ee67178SXianjun Jiao * @NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES: array of supported 18522ee67178SXianjun Jiao * supported operating classes. 18532ee67178SXianjun Jiao * 18542ee67178SXianjun Jiao * @NL80211_ATTR_HANDLE_DFS: A flag indicating whether user space 18552ee67178SXianjun Jiao * controls DFS operation in IBSS mode. If the flag is included in 18562ee67178SXianjun Jiao * %NL80211_CMD_JOIN_IBSS request, the driver will allow use of DFS 18572ee67178SXianjun Jiao * channels and reports radar events to userspace. Userspace is required 18582ee67178SXianjun Jiao * to react to radar events, e.g. initiate a channel switch or leave the 18592ee67178SXianjun Jiao * IBSS network. 18602ee67178SXianjun Jiao * 18612ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORT_5_MHZ: A flag indicating that the device supports 18622ee67178SXianjun Jiao * 5 MHz channel bandwidth. 18632ee67178SXianjun Jiao * @NL80211_ATTR_SUPPORT_10_MHZ: A flag indicating that the device supports 18642ee67178SXianjun Jiao * 10 MHz channel bandwidth. 18652ee67178SXianjun Jiao * 18662ee67178SXianjun Jiao * @NL80211_ATTR_OPMODE_NOTIF: Operating mode field from Operating Mode 18672ee67178SXianjun Jiao * Notification Element based on association request when used with 18684ecf49bbSJiao Xianjun * %NL80211_CMD_NEW_STATION or %NL80211_CMD_SET_STATION (only when 18694ecf49bbSJiao Xianjun * %NL80211_FEATURE_FULL_AP_CLIENT_STATE is supported, or with TDLS); 18704ecf49bbSJiao Xianjun * u8 attribute. 18712ee67178SXianjun Jiao * 18722ee67178SXianjun Jiao * @NL80211_ATTR_VENDOR_ID: The vendor ID, either a 24-bit OUI or, if 18732ee67178SXianjun Jiao * %NL80211_VENDOR_ID_IS_LINUX is set, a special Linux ID (not used yet) 18742ee67178SXianjun Jiao * @NL80211_ATTR_VENDOR_SUBCMD: vendor sub-command 18752ee67178SXianjun Jiao * @NL80211_ATTR_VENDOR_DATA: data for the vendor command, if any; this 18762ee67178SXianjun Jiao * attribute is also used for vendor command feature advertisement 18772ee67178SXianjun Jiao * @NL80211_ATTR_VENDOR_EVENTS: used for event list advertising in the wiphy 18782ee67178SXianjun Jiao * info, containing a nested array of possible events 18792ee67178SXianjun Jiao * 18802ee67178SXianjun Jiao * @NL80211_ATTR_QOS_MAP: IP DSCP mapping for Interworking QoS mapping. This 18812ee67178SXianjun Jiao * data is in the format defined for the payload of the QoS Map Set element 18822ee67178SXianjun Jiao * in IEEE Std 802.11-2012, 8.4.2.97. 18832ee67178SXianjun Jiao * 18842ee67178SXianjun Jiao * @NL80211_ATTR_MAC_HINT: MAC address recommendation as initial BSS 18852ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_FREQ_HINT: frequency of the recommended initial BSS 18862ee67178SXianjun Jiao * 18872ee67178SXianjun Jiao * @NL80211_ATTR_MAX_AP_ASSOC_STA: Device attribute that indicates how many 18882ee67178SXianjun Jiao * associated stations are supported in AP mode (including P2P GO); u32. 18892ee67178SXianjun Jiao * Since drivers may not have a fixed limit on the maximum number (e.g., 18902ee67178SXianjun Jiao * other concurrent operations may affect this), drivers are allowed to 18912ee67178SXianjun Jiao * advertise values that cannot always be met. In such cases, an attempt 18922ee67178SXianjun Jiao * to add a new station entry with @NL80211_CMD_NEW_STATION may fail. 18932ee67178SXianjun Jiao * 18942ee67178SXianjun Jiao * @NL80211_ATTR_CSA_C_OFFSETS_TX: An array of csa counter offsets (u16) which 18952ee67178SXianjun Jiao * should be updated when the frame is transmitted. 18962ee67178SXianjun Jiao * @NL80211_ATTR_MAX_CSA_COUNTERS: U8 attribute used to advertise the maximum 18972ee67178SXianjun Jiao * supported number of csa counters. 18982ee67178SXianjun Jiao * 18992ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_PEER_CAPABILITY: flags for TDLS peer capabilities, u32. 19002ee67178SXianjun Jiao * As specified in the &enum nl80211_tdls_peer_capability. 19012ee67178SXianjun Jiao * 19024ecf49bbSJiao Xianjun * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface 19032ee67178SXianjun Jiao * creation then the new interface will be owned by the netlink socket 19044ecf49bbSJiao Xianjun * that created it and will be destroyed when the socket is closed. 19054ecf49bbSJiao Xianjun * If set during scheduled scan start then the new scan req will be 19064ecf49bbSJiao Xianjun * owned by the netlink socket that created it and the scheduled scan will 19074ecf49bbSJiao Xianjun * be stopped when the socket is closed. 19084ecf49bbSJiao Xianjun * If set during configuration of regulatory indoor operation then the 19094ecf49bbSJiao Xianjun * regulatory indoor configuration would be owned by the netlink socket 19104ecf49bbSJiao Xianjun * that configured the indoor setting, and the indoor operation would be 19114ecf49bbSJiao Xianjun * cleared when the socket is closed. 19124ecf49bbSJiao Xianjun * If set during NAN interface creation, the interface will be destroyed 19134ecf49bbSJiao Xianjun * if the socket is closed just like any other interface. Moreover, NAN 19144ecf49bbSJiao Xianjun * notifications will be sent in unicast to that socket. Without this 19154ecf49bbSJiao Xianjun * attribute, the notifications will be sent to the %NL80211_MCGRP_NAN 19164ecf49bbSJiao Xianjun * multicast group. 19174ecf49bbSJiao Xianjun * If set during %NL80211_CMD_ASSOCIATE or %NL80211_CMD_CONNECT the 19184ecf49bbSJiao Xianjun * station will deauthenticate when the socket is closed. 19192ee67178SXianjun Jiao * 19202ee67178SXianjun Jiao * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is 19212ee67178SXianjun Jiao * the TDLS link initiator. 19222ee67178SXianjun Jiao * 19232ee67178SXianjun Jiao * @NL80211_ATTR_USE_RRM: flag for indicating whether the current connection 19242ee67178SXianjun Jiao * shall support Radio Resource Measurements (11k). This attribute can be 19252ee67178SXianjun Jiao * used with %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests. 19262ee67178SXianjun Jiao * User space applications are expected to use this flag only if the 19272ee67178SXianjun Jiao * underlying device supports these minimal RRM features: 19282ee67178SXianjun Jiao * %NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES, 19292ee67178SXianjun Jiao * %NL80211_FEATURE_QUIET, 19304ecf49bbSJiao Xianjun * Or, if global RRM is supported, see: 19314ecf49bbSJiao Xianjun * %NL80211_EXT_FEATURE_RRM 19322ee67178SXianjun Jiao * If this flag is used, driver must add the Power Capabilities IE to the 19332ee67178SXianjun Jiao * association request. In addition, it must also set the RRM capability 19342ee67178SXianjun Jiao * flag in the association request's Capability Info field. 19352ee67178SXianjun Jiao * 19362ee67178SXianjun Jiao * @NL80211_ATTR_WIPHY_DYN_ACK: flag attribute used to enable ACK timeout 19372ee67178SXianjun Jiao * estimation algorithm (dynack). In order to activate dynack 19382ee67178SXianjun Jiao * %NL80211_FEATURE_ACKTO_ESTIMATION feature flag must be set by lower 19392ee67178SXianjun Jiao * drivers to indicate dynack capability. Dynack is automatically disabled 19402ee67178SXianjun Jiao * setting valid value for coverage class. 19412ee67178SXianjun Jiao * 19422ee67178SXianjun Jiao * @NL80211_ATTR_TSID: a TSID value (u8 attribute) 19432ee67178SXianjun Jiao * @NL80211_ATTR_USER_PRIO: user priority value (u8 attribute) 19442ee67178SXianjun Jiao * @NL80211_ATTR_ADMITTED_TIME: admitted time in units of 32 microseconds 19452ee67178SXianjun Jiao * (per second) (u16 attribute) 19462ee67178SXianjun Jiao * 19472ee67178SXianjun Jiao * @NL80211_ATTR_SMPS_MODE: SMPS mode to use (ap mode). see 19482ee67178SXianjun Jiao * &enum nl80211_smps_mode. 19492ee67178SXianjun Jiao * 19504ecf49bbSJiao Xianjun * @NL80211_ATTR_OPER_CLASS: operating class 19514ecf49bbSJiao Xianjun * 19524ecf49bbSJiao Xianjun * @NL80211_ATTR_MAC_MASK: MAC address mask 19534ecf49bbSJiao Xianjun * 19544ecf49bbSJiao Xianjun * @NL80211_ATTR_WIPHY_SELF_MANAGED_REG: flag attribute indicating this device 19554ecf49bbSJiao Xianjun * is self-managing its regulatory information and any regulatory domain 19564ecf49bbSJiao Xianjun * obtained from it is coming from the device's wiphy and not the global 19574ecf49bbSJiao Xianjun * cfg80211 regdomain. 19584ecf49bbSJiao Xianjun * 19594ecf49bbSJiao Xianjun * @NL80211_ATTR_EXT_FEATURES: extended feature flags contained in a byte 19604ecf49bbSJiao Xianjun * array. The feature flags are identified by their bit index (see &enum 19614ecf49bbSJiao Xianjun * nl80211_ext_feature_index). The bit index is ordered starting at the 19624ecf49bbSJiao Xianjun * least-significant bit of the first byte in the array, ie. bit index 0 19634ecf49bbSJiao Xianjun * is located at bit 0 of byte 0. bit index 25 would be located at bit 1 19644ecf49bbSJiao Xianjun * of byte 3 (u8 array). 19654ecf49bbSJiao Xianjun * 19664ecf49bbSJiao Xianjun * @NL80211_ATTR_SURVEY_RADIO_STATS: Request overall radio statistics to be 19674ecf49bbSJiao Xianjun * returned along with other survey data. If set, @NL80211_CMD_GET_SURVEY 19684ecf49bbSJiao Xianjun * may return a survey entry without a channel indicating global radio 19694ecf49bbSJiao Xianjun * statistics (only some values are valid and make sense.) 19704ecf49bbSJiao Xianjun * For devices that don't return such an entry even then, the information 19714ecf49bbSJiao Xianjun * should be contained in the result as the sum of the respective counters 19724ecf49bbSJiao Xianjun * over all channels. 19734ecf49bbSJiao Xianjun * 19744ecf49bbSJiao Xianjun * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before the first cycle of a 19754ecf49bbSJiao Xianjun * scheduled scan is started. Or the delay before a WoWLAN 19764ecf49bbSJiao Xianjun * net-detect scan is started, counting from the moment the 19774ecf49bbSJiao Xianjun * system is suspended. This value is a u32, in seconds. 19784ecf49bbSJiao Xianjun 19794ecf49bbSJiao Xianjun * @NL80211_ATTR_REG_INDOOR: flag attribute, if set indicates that the device 19804ecf49bbSJiao Xianjun * is operating in an indoor environment. 19814ecf49bbSJiao Xianjun * 19824ecf49bbSJiao Xianjun * @NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS: maximum number of scan plans for 19834ecf49bbSJiao Xianjun * scheduled scan supported by the device (u32), a wiphy attribute. 19844ecf49bbSJiao Xianjun * @NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL: maximum interval (in seconds) for 19854ecf49bbSJiao Xianjun * a scan plan (u32), a wiphy attribute. 19864ecf49bbSJiao Xianjun * @NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS: maximum number of iterations in 19874ecf49bbSJiao Xianjun * a scan plan (u32), a wiphy attribute. 19884ecf49bbSJiao Xianjun * @NL80211_ATTR_SCHED_SCAN_PLANS: a list of scan plans for scheduled scan. 19894ecf49bbSJiao Xianjun * Each scan plan defines the number of scan iterations and the interval 19904ecf49bbSJiao Xianjun * between scans. The last scan plan will always run infinitely, 19914ecf49bbSJiao Xianjun * thus it must not specify the number of iterations, only the interval 19924ecf49bbSJiao Xianjun * between scans. The scan plans are executed sequentially. 19934ecf49bbSJiao Xianjun * Each scan plan is a nested attribute of &enum nl80211_sched_scan_plan. 19944ecf49bbSJiao Xianjun * @NL80211_ATTR_PBSS: flag attribute. If set it means operate 19954ecf49bbSJiao Xianjun * in a PBSS. Specified in %NL80211_CMD_CONNECT to request 19964ecf49bbSJiao Xianjun * connecting to a PCP, and in %NL80211_CMD_START_AP to start 19974ecf49bbSJiao Xianjun * a PCP instead of AP. Relevant for DMG networks only. 19984ecf49bbSJiao Xianjun * @NL80211_ATTR_BSS_SELECT: nested attribute for driver supporting the 19994ecf49bbSJiao Xianjun * BSS selection feature. When used with %NL80211_CMD_GET_WIPHY it contains 20004ecf49bbSJiao Xianjun * attributes according &enum nl80211_bss_select_attr to indicate what 20014ecf49bbSJiao Xianjun * BSS selection behaviours are supported. When used with %NL80211_CMD_CONNECT 20024ecf49bbSJiao Xianjun * it contains the behaviour-specific attribute containing the parameters for 20034ecf49bbSJiao Xianjun * BSS selection to be done by driver and/or firmware. 20044ecf49bbSJiao Xianjun * 20054ecf49bbSJiao Xianjun * @NL80211_ATTR_STA_SUPPORT_P2P_PS: whether P2P PS mechanism supported 20064ecf49bbSJiao Xianjun * or not. u8, one of the values of &enum nl80211_sta_p2p_ps_status 20074ecf49bbSJiao Xianjun * 20084ecf49bbSJiao Xianjun * @NL80211_ATTR_PAD: attribute used for padding for 64-bit alignment 20094ecf49bbSJiao Xianjun * 20104ecf49bbSJiao Xianjun * @NL80211_ATTR_IFTYPE_EXT_CAPA: Nested attribute of the following attributes: 20114ecf49bbSJiao Xianjun * %NL80211_ATTR_IFTYPE, %NL80211_ATTR_EXT_CAPA, 20124ecf49bbSJiao Xianjun * %NL80211_ATTR_EXT_CAPA_MASK, to specify the extended capabilities per 20134ecf49bbSJiao Xianjun * interface type. 20144ecf49bbSJiao Xianjun * 20154ecf49bbSJiao Xianjun * @NL80211_ATTR_MU_MIMO_GROUP_DATA: array of 24 bytes that defines a MU-MIMO 20164ecf49bbSJiao Xianjun * groupID for monitor mode. 20174ecf49bbSJiao Xianjun * The first 8 bytes are a mask that defines the membership in each 20184ecf49bbSJiao Xianjun * group (there are 64 groups, group 0 and 63 are reserved), 20194ecf49bbSJiao Xianjun * each bit represents a group and set to 1 for being a member in 20204ecf49bbSJiao Xianjun * that group and 0 for not being a member. 20214ecf49bbSJiao Xianjun * The remaining 16 bytes define the position in each group: 2 bits for 20224ecf49bbSJiao Xianjun * each group. 20234ecf49bbSJiao Xianjun * (smaller group numbers represented on most significant bits and bigger 20244ecf49bbSJiao Xianjun * group numbers on least significant bits.) 20254ecf49bbSJiao Xianjun * This attribute is used only if all interfaces are in monitor mode. 20264ecf49bbSJiao Xianjun * Set this attribute in order to monitor packets using the given MU-MIMO 20274ecf49bbSJiao Xianjun * groupID data. 20284ecf49bbSJiao Xianjun * to turn off that feature set all the bits of the groupID to zero. 20294ecf49bbSJiao Xianjun * @NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR: mac address for the sniffer to follow 20304ecf49bbSJiao Xianjun * when using MU-MIMO air sniffer. 20314ecf49bbSJiao Xianjun * to turn that feature off set an invalid mac address 20324ecf49bbSJiao Xianjun * (e.g. FF:FF:FF:FF:FF:FF) 20334ecf49bbSJiao Xianjun * 20344ecf49bbSJiao Xianjun * @NL80211_ATTR_SCAN_START_TIME_TSF: The time at which the scan was actually 20354ecf49bbSJiao Xianjun * started (u64). The time is the TSF of the BSS the interface that 20364ecf49bbSJiao Xianjun * requested the scan is connected to (if available, otherwise this 20374ecf49bbSJiao Xianjun * attribute must not be included). 20384ecf49bbSJiao Xianjun * @NL80211_ATTR_SCAN_START_TIME_TSF_BSSID: The BSS according to which 20394ecf49bbSJiao Xianjun * %NL80211_ATTR_SCAN_START_TIME_TSF is set. 20404ecf49bbSJiao Xianjun * @NL80211_ATTR_MEASUREMENT_DURATION: measurement duration in TUs (u16). If 20414ecf49bbSJiao Xianjun * %NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY is not set, this is the 20424ecf49bbSJiao Xianjun * maximum measurement duration allowed. This attribute is used with 20434ecf49bbSJiao Xianjun * measurement requests. It can also be used with %NL80211_CMD_TRIGGER_SCAN 20444ecf49bbSJiao Xianjun * if the scan is used for beacon report radio measurement. 20454ecf49bbSJiao Xianjun * @NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY: flag attribute that indicates 20464ecf49bbSJiao Xianjun * that the duration specified with %NL80211_ATTR_MEASUREMENT_DURATION is 20474ecf49bbSJiao Xianjun * mandatory. If this flag is not set, the duration is the maximum duration 20484ecf49bbSJiao Xianjun * and the actual measurement duration may be shorter. 20494ecf49bbSJiao Xianjun * 20504ecf49bbSJiao Xianjun * @NL80211_ATTR_MESH_PEER_AID: Association ID for the mesh peer (u16). This is 20514ecf49bbSJiao Xianjun * used to pull the stored data for mesh peer in power save state. 20524ecf49bbSJiao Xianjun * 20534ecf49bbSJiao Xianjun * @NL80211_ATTR_NAN_MASTER_PREF: the master preference to be used by 20544ecf49bbSJiao Xianjun * %NL80211_CMD_START_NAN and optionally with 20554ecf49bbSJiao Xianjun * %NL80211_CMD_CHANGE_NAN_CONFIG. Its type is u8 and it can't be 0. 20564ecf49bbSJiao Xianjun * Also, values 1 and 255 are reserved for certification purposes and 20574ecf49bbSJiao Xianjun * should not be used during a normal device operation. 20584ecf49bbSJiao Xianjun * @NL80211_ATTR_BANDS: operating bands configuration. This is a u32 20594ecf49bbSJiao Xianjun * bitmask of BIT(NL80211_BAND_*) as described in %enum 20604ecf49bbSJiao Xianjun * nl80211_band. For instance, for NL80211_BAND_2GHZ, bit 0 20614ecf49bbSJiao Xianjun * would be set. This attribute is used with 20624ecf49bbSJiao Xianjun * %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG, and 20634ecf49bbSJiao Xianjun * it is optional. If no bands are set, it means don't-care and 20644ecf49bbSJiao Xianjun * the device will decide what to use. 20654ecf49bbSJiao Xianjun * @NL80211_ATTR_NAN_FUNC: a function that can be added to NAN. See 20664ecf49bbSJiao Xianjun * &enum nl80211_nan_func_attributes for description of this nested 20674ecf49bbSJiao Xianjun * attribute. 20684ecf49bbSJiao Xianjun * @NL80211_ATTR_NAN_MATCH: used to report a match. This is a nested attribute. 20694ecf49bbSJiao Xianjun * See &enum nl80211_nan_match_attributes. 20704ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_KEK: KEK for FILS (Re)Association Request/Response frame 20714ecf49bbSJiao Xianjun * protection. 20724ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_NONCES: Nonces (part of AAD) for FILS (Re)Association 20734ecf49bbSJiao Xianjun * Request/Response frame protection. This attribute contains the 16 octet 20744ecf49bbSJiao Xianjun * STA Nonce followed by 16 octets of AP Nonce. 20754ecf49bbSJiao Xianjun * 20764ecf49bbSJiao Xianjun * @NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED: Indicates whether or not multicast 20774ecf49bbSJiao Xianjun * packets should be send out as unicast to all stations (flag attribute). 20784ecf49bbSJiao Xianjun * 20794ecf49bbSJiao Xianjun * @NL80211_ATTR_BSSID: The BSSID of the AP. Note that %NL80211_ATTR_MAC is also 20804ecf49bbSJiao Xianjun * used in various commands/events for specifying the BSSID. 20814ecf49bbSJiao Xianjun * 20824ecf49bbSJiao Xianjun * @NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI: Relative RSSI threshold by which 20834ecf49bbSJiao Xianjun * other BSSs has to be better or slightly worse than the current 20844ecf49bbSJiao Xianjun * connected BSS so that they get reported to user space. 20854ecf49bbSJiao Xianjun * This will give an opportunity to userspace to consider connecting to 20864ecf49bbSJiao Xianjun * other matching BSSs which have better or slightly worse RSSI than 20874ecf49bbSJiao Xianjun * the current connected BSS by using an offloaded operation to avoid 20884ecf49bbSJiao Xianjun * unnecessary wakeups. 20894ecf49bbSJiao Xianjun * 20904ecf49bbSJiao Xianjun * @NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST: When present the RSSI level for BSSs in 20914ecf49bbSJiao Xianjun * the specified band is to be adjusted before doing 2092*b1dd94e3Sluz paz * %NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI based comparison to figure out 20934ecf49bbSJiao Xianjun * better BSSs. The attribute value is a packed structure 20944ecf49bbSJiao Xianjun * value as specified by &struct nl80211_bss_select_rssi_adjust. 20954ecf49bbSJiao Xianjun * 20964ecf49bbSJiao Xianjun * @NL80211_ATTR_TIMEOUT_REASON: The reason for which an operation timed out. 20974ecf49bbSJiao Xianjun * u32 attribute with an &enum nl80211_timeout_reason value. This is used, 20984ecf49bbSJiao Xianjun * e.g., with %NL80211_CMD_CONNECT event. 20994ecf49bbSJiao Xianjun * 21004ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_ERP_USERNAME: EAP Re-authentication Protocol (ERP) 21014ecf49bbSJiao Xianjun * username part of NAI used to refer keys rRK and rIK. This is used with 21024ecf49bbSJiao Xianjun * %NL80211_CMD_CONNECT. 21034ecf49bbSJiao Xianjun * 21044ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_ERP_REALM: EAP Re-authentication Protocol (ERP) realm part 21054ecf49bbSJiao Xianjun * of NAI specifying the domain name of the ER server. This is used with 21064ecf49bbSJiao Xianjun * %NL80211_CMD_CONNECT. 21074ecf49bbSJiao Xianjun * 21084ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM: Unsigned 16-bit ERP next sequence number 21094ecf49bbSJiao Xianjun * to use in ERP messages. This is used in generating the FILS wrapped data 21104ecf49bbSJiao Xianjun * for FILS authentication and is used with %NL80211_CMD_CONNECT. 21114ecf49bbSJiao Xianjun * 21124ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_ERP_RRK: ERP re-authentication Root Key (rRK) for the 21134ecf49bbSJiao Xianjun * NAI specified by %NL80211_ATTR_FILS_ERP_USERNAME and 21144ecf49bbSJiao Xianjun * %NL80211_ATTR_FILS_ERP_REALM. This is used for generating rIK and rMSK 21154ecf49bbSJiao Xianjun * from successful FILS authentication and is used with 21164ecf49bbSJiao Xianjun * %NL80211_CMD_CONNECT. 21174ecf49bbSJiao Xianjun * 21184ecf49bbSJiao Xianjun * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertized by a FILS AP 21194ecf49bbSJiao Xianjun * identifying the scope of PMKSAs. This is used with 21204ecf49bbSJiao Xianjun * @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA. 21214ecf49bbSJiao Xianjun * 21224ecf49bbSJiao Xianjun * @NL80211_ATTR_PMK: attribute for passing PMK key material. Used with 21234ecf49bbSJiao Xianjun * %NL80211_CMD_SET_PMKSA for the PMKSA identified by %NL80211_ATTR_PMKID. 21244ecf49bbSJiao Xianjun * For %NL80211_CMD_CONNECT it is used to provide PSK for offloading 4-way 21254ecf49bbSJiao Xianjun * handshake for WPA/WPA2-PSK networks. For 802.1X authentication it is 21264ecf49bbSJiao Xianjun * used with %NL80211_CMD_SET_PMK. For offloaded FT support this attribute 21274ecf49bbSJiao Xianjun * specifies the PMK-R0 if NL80211_ATTR_PMKR0_NAME is included as well. 21284ecf49bbSJiao Xianjun * 21294ecf49bbSJiao Xianjun * @NL80211_ATTR_SCHED_SCAN_MULTI: flag attribute which user-space shall use to 21304ecf49bbSJiao Xianjun * indicate that it supports multiple active scheduled scan requests. 21314ecf49bbSJiao Xianjun * @NL80211_ATTR_SCHED_SCAN_MAX_REQS: indicates maximum number of scheduled 21324ecf49bbSJiao Xianjun * scan request that may be active for the device (u32). 21334ecf49bbSJiao Xianjun * 21344ecf49bbSJiao Xianjun * @NL80211_ATTR_WANT_1X_4WAY_HS: flag attribute which user-space can include 21354ecf49bbSJiao Xianjun * in %NL80211_CMD_CONNECT to indicate that for 802.1X authentication it 21364ecf49bbSJiao Xianjun * wants to use the supported offload of the 4-way handshake. 21374ecf49bbSJiao Xianjun * @NL80211_ATTR_PMKR0_NAME: PMK-R0 Name for offloaded FT. 21384ecf49bbSJiao Xianjun * @NL80211_ATTR_PORT_AUTHORIZED: flag attribute used in %NL80211_CMD_ROAMED 21394ecf49bbSJiao Xianjun * notification indicating that that 802.1X authentication was done by 21404ecf49bbSJiao Xianjun * the driver or is not needed (because roaming used the Fast Transition 21414ecf49bbSJiao Xianjun * protocol). 21424ecf49bbSJiao Xianjun * 21434ecf49bbSJiao Xianjun * @NUM_NL80211_ATTR: total number of nl80211_attrs available 21442ee67178SXianjun Jiao * @NL80211_ATTR_MAX: highest attribute number currently defined 21452ee67178SXianjun Jiao * @__NL80211_ATTR_AFTER_LAST: internal use 21462ee67178SXianjun Jiao */ 21472ee67178SXianjun Jiao enum nl80211_attrs { 21482ee67178SXianjun Jiao /* don't change the order or add anything between, this is ABI! */ 21492ee67178SXianjun Jiao NL80211_ATTR_UNSPEC, 21502ee67178SXianjun Jiao 21512ee67178SXianjun Jiao NL80211_ATTR_WIPHY, 21522ee67178SXianjun Jiao NL80211_ATTR_WIPHY_NAME, 21532ee67178SXianjun Jiao 21542ee67178SXianjun Jiao NL80211_ATTR_IFINDEX, 21552ee67178SXianjun Jiao NL80211_ATTR_IFNAME, 21562ee67178SXianjun Jiao NL80211_ATTR_IFTYPE, 21572ee67178SXianjun Jiao 21582ee67178SXianjun Jiao NL80211_ATTR_MAC, 21592ee67178SXianjun Jiao 21602ee67178SXianjun Jiao NL80211_ATTR_KEY_DATA, 21612ee67178SXianjun Jiao NL80211_ATTR_KEY_IDX, 21622ee67178SXianjun Jiao NL80211_ATTR_KEY_CIPHER, 21632ee67178SXianjun Jiao NL80211_ATTR_KEY_SEQ, 21642ee67178SXianjun Jiao NL80211_ATTR_KEY_DEFAULT, 21652ee67178SXianjun Jiao 21662ee67178SXianjun Jiao NL80211_ATTR_BEACON_INTERVAL, 21672ee67178SXianjun Jiao NL80211_ATTR_DTIM_PERIOD, 21682ee67178SXianjun Jiao NL80211_ATTR_BEACON_HEAD, 21692ee67178SXianjun Jiao NL80211_ATTR_BEACON_TAIL, 21702ee67178SXianjun Jiao 21712ee67178SXianjun Jiao NL80211_ATTR_STA_AID, 21722ee67178SXianjun Jiao NL80211_ATTR_STA_FLAGS, 21732ee67178SXianjun Jiao NL80211_ATTR_STA_LISTEN_INTERVAL, 21742ee67178SXianjun Jiao NL80211_ATTR_STA_SUPPORTED_RATES, 21752ee67178SXianjun Jiao NL80211_ATTR_STA_VLAN, 21762ee67178SXianjun Jiao NL80211_ATTR_STA_INFO, 21772ee67178SXianjun Jiao 21782ee67178SXianjun Jiao NL80211_ATTR_WIPHY_BANDS, 21792ee67178SXianjun Jiao 21802ee67178SXianjun Jiao NL80211_ATTR_MNTR_FLAGS, 21812ee67178SXianjun Jiao 21822ee67178SXianjun Jiao NL80211_ATTR_MESH_ID, 21832ee67178SXianjun Jiao NL80211_ATTR_STA_PLINK_ACTION, 21842ee67178SXianjun Jiao NL80211_ATTR_MPATH_NEXT_HOP, 21852ee67178SXianjun Jiao NL80211_ATTR_MPATH_INFO, 21862ee67178SXianjun Jiao 21872ee67178SXianjun Jiao NL80211_ATTR_BSS_CTS_PROT, 21882ee67178SXianjun Jiao NL80211_ATTR_BSS_SHORT_PREAMBLE, 21892ee67178SXianjun Jiao NL80211_ATTR_BSS_SHORT_SLOT_TIME, 21902ee67178SXianjun Jiao 21912ee67178SXianjun Jiao NL80211_ATTR_HT_CAPABILITY, 21922ee67178SXianjun Jiao 21932ee67178SXianjun Jiao NL80211_ATTR_SUPPORTED_IFTYPES, 21942ee67178SXianjun Jiao 21952ee67178SXianjun Jiao NL80211_ATTR_REG_ALPHA2, 21962ee67178SXianjun Jiao NL80211_ATTR_REG_RULES, 21972ee67178SXianjun Jiao 21982ee67178SXianjun Jiao NL80211_ATTR_MESH_CONFIG, 21992ee67178SXianjun Jiao 22002ee67178SXianjun Jiao NL80211_ATTR_BSS_BASIC_RATES, 22012ee67178SXianjun Jiao 22022ee67178SXianjun Jiao NL80211_ATTR_WIPHY_TXQ_PARAMS, 22032ee67178SXianjun Jiao NL80211_ATTR_WIPHY_FREQ, 22042ee67178SXianjun Jiao NL80211_ATTR_WIPHY_CHANNEL_TYPE, 22052ee67178SXianjun Jiao 22062ee67178SXianjun Jiao NL80211_ATTR_KEY_DEFAULT_MGMT, 22072ee67178SXianjun Jiao 22082ee67178SXianjun Jiao NL80211_ATTR_MGMT_SUBTYPE, 22092ee67178SXianjun Jiao NL80211_ATTR_IE, 22102ee67178SXianjun Jiao 22112ee67178SXianjun Jiao NL80211_ATTR_MAX_NUM_SCAN_SSIDS, 22122ee67178SXianjun Jiao 22132ee67178SXianjun Jiao NL80211_ATTR_SCAN_FREQUENCIES, 22142ee67178SXianjun Jiao NL80211_ATTR_SCAN_SSIDS, 22152ee67178SXianjun Jiao NL80211_ATTR_GENERATION, /* replaces old SCAN_GENERATION */ 22162ee67178SXianjun Jiao NL80211_ATTR_BSS, 22172ee67178SXianjun Jiao 22182ee67178SXianjun Jiao NL80211_ATTR_REG_INITIATOR, 22192ee67178SXianjun Jiao NL80211_ATTR_REG_TYPE, 22202ee67178SXianjun Jiao 22212ee67178SXianjun Jiao NL80211_ATTR_SUPPORTED_COMMANDS, 22222ee67178SXianjun Jiao 22232ee67178SXianjun Jiao NL80211_ATTR_FRAME, 22242ee67178SXianjun Jiao NL80211_ATTR_SSID, 22252ee67178SXianjun Jiao NL80211_ATTR_AUTH_TYPE, 22262ee67178SXianjun Jiao NL80211_ATTR_REASON_CODE, 22272ee67178SXianjun Jiao 22282ee67178SXianjun Jiao NL80211_ATTR_KEY_TYPE, 22292ee67178SXianjun Jiao 22302ee67178SXianjun Jiao NL80211_ATTR_MAX_SCAN_IE_LEN, 22312ee67178SXianjun Jiao NL80211_ATTR_CIPHER_SUITES, 22322ee67178SXianjun Jiao 22332ee67178SXianjun Jiao NL80211_ATTR_FREQ_BEFORE, 22342ee67178SXianjun Jiao NL80211_ATTR_FREQ_AFTER, 22352ee67178SXianjun Jiao 22362ee67178SXianjun Jiao NL80211_ATTR_FREQ_FIXED, 22372ee67178SXianjun Jiao 22382ee67178SXianjun Jiao 22392ee67178SXianjun Jiao NL80211_ATTR_WIPHY_RETRY_SHORT, 22402ee67178SXianjun Jiao NL80211_ATTR_WIPHY_RETRY_LONG, 22412ee67178SXianjun Jiao NL80211_ATTR_WIPHY_FRAG_THRESHOLD, 22422ee67178SXianjun Jiao NL80211_ATTR_WIPHY_RTS_THRESHOLD, 22432ee67178SXianjun Jiao 22442ee67178SXianjun Jiao NL80211_ATTR_TIMED_OUT, 22452ee67178SXianjun Jiao 22462ee67178SXianjun Jiao NL80211_ATTR_USE_MFP, 22472ee67178SXianjun Jiao 22482ee67178SXianjun Jiao NL80211_ATTR_STA_FLAGS2, 22492ee67178SXianjun Jiao 22502ee67178SXianjun Jiao NL80211_ATTR_CONTROL_PORT, 22512ee67178SXianjun Jiao 22522ee67178SXianjun Jiao NL80211_ATTR_TESTDATA, 22532ee67178SXianjun Jiao 22542ee67178SXianjun Jiao NL80211_ATTR_PRIVACY, 22552ee67178SXianjun Jiao 22562ee67178SXianjun Jiao NL80211_ATTR_DISCONNECTED_BY_AP, 22572ee67178SXianjun Jiao NL80211_ATTR_STATUS_CODE, 22582ee67178SXianjun Jiao 22592ee67178SXianjun Jiao NL80211_ATTR_CIPHER_SUITES_PAIRWISE, 22602ee67178SXianjun Jiao NL80211_ATTR_CIPHER_SUITE_GROUP, 22612ee67178SXianjun Jiao NL80211_ATTR_WPA_VERSIONS, 22622ee67178SXianjun Jiao NL80211_ATTR_AKM_SUITES, 22632ee67178SXianjun Jiao 22642ee67178SXianjun Jiao NL80211_ATTR_REQ_IE, 22652ee67178SXianjun Jiao NL80211_ATTR_RESP_IE, 22662ee67178SXianjun Jiao 22672ee67178SXianjun Jiao NL80211_ATTR_PREV_BSSID, 22682ee67178SXianjun Jiao 22692ee67178SXianjun Jiao NL80211_ATTR_KEY, 22702ee67178SXianjun Jiao NL80211_ATTR_KEYS, 22712ee67178SXianjun Jiao 22722ee67178SXianjun Jiao NL80211_ATTR_PID, 22732ee67178SXianjun Jiao 22742ee67178SXianjun Jiao NL80211_ATTR_4ADDR, 22752ee67178SXianjun Jiao 22762ee67178SXianjun Jiao NL80211_ATTR_SURVEY_INFO, 22772ee67178SXianjun Jiao 22782ee67178SXianjun Jiao NL80211_ATTR_PMKID, 22792ee67178SXianjun Jiao NL80211_ATTR_MAX_NUM_PMKIDS, 22802ee67178SXianjun Jiao 22812ee67178SXianjun Jiao NL80211_ATTR_DURATION, 22822ee67178SXianjun Jiao 22832ee67178SXianjun Jiao NL80211_ATTR_COOKIE, 22842ee67178SXianjun Jiao 22852ee67178SXianjun Jiao NL80211_ATTR_WIPHY_COVERAGE_CLASS, 22862ee67178SXianjun Jiao 22872ee67178SXianjun Jiao NL80211_ATTR_TX_RATES, 22882ee67178SXianjun Jiao 22892ee67178SXianjun Jiao NL80211_ATTR_FRAME_MATCH, 22902ee67178SXianjun Jiao 22912ee67178SXianjun Jiao NL80211_ATTR_ACK, 22922ee67178SXianjun Jiao 22932ee67178SXianjun Jiao NL80211_ATTR_PS_STATE, 22942ee67178SXianjun Jiao 22952ee67178SXianjun Jiao NL80211_ATTR_CQM, 22962ee67178SXianjun Jiao 22972ee67178SXianjun Jiao NL80211_ATTR_LOCAL_STATE_CHANGE, 22982ee67178SXianjun Jiao 22992ee67178SXianjun Jiao NL80211_ATTR_AP_ISOLATE, 23002ee67178SXianjun Jiao 23012ee67178SXianjun Jiao NL80211_ATTR_WIPHY_TX_POWER_SETTING, 23022ee67178SXianjun Jiao NL80211_ATTR_WIPHY_TX_POWER_LEVEL, 23032ee67178SXianjun Jiao 23042ee67178SXianjun Jiao NL80211_ATTR_TX_FRAME_TYPES, 23052ee67178SXianjun Jiao NL80211_ATTR_RX_FRAME_TYPES, 23062ee67178SXianjun Jiao NL80211_ATTR_FRAME_TYPE, 23072ee67178SXianjun Jiao 23082ee67178SXianjun Jiao NL80211_ATTR_CONTROL_PORT_ETHERTYPE, 23092ee67178SXianjun Jiao NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT, 23102ee67178SXianjun Jiao 23112ee67178SXianjun Jiao NL80211_ATTR_SUPPORT_IBSS_RSN, 23122ee67178SXianjun Jiao 23132ee67178SXianjun Jiao NL80211_ATTR_WIPHY_ANTENNA_TX, 23142ee67178SXianjun Jiao NL80211_ATTR_WIPHY_ANTENNA_RX, 23152ee67178SXianjun Jiao 23162ee67178SXianjun Jiao NL80211_ATTR_MCAST_RATE, 23172ee67178SXianjun Jiao 23182ee67178SXianjun Jiao NL80211_ATTR_OFFCHANNEL_TX_OK, 23192ee67178SXianjun Jiao 23202ee67178SXianjun Jiao NL80211_ATTR_BSS_HT_OPMODE, 23212ee67178SXianjun Jiao 23222ee67178SXianjun Jiao NL80211_ATTR_KEY_DEFAULT_TYPES, 23232ee67178SXianjun Jiao 23242ee67178SXianjun Jiao NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION, 23252ee67178SXianjun Jiao 23262ee67178SXianjun Jiao NL80211_ATTR_MESH_SETUP, 23272ee67178SXianjun Jiao 23282ee67178SXianjun Jiao NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX, 23292ee67178SXianjun Jiao NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX, 23302ee67178SXianjun Jiao 23312ee67178SXianjun Jiao NL80211_ATTR_SUPPORT_MESH_AUTH, 23322ee67178SXianjun Jiao NL80211_ATTR_STA_PLINK_STATE, 23332ee67178SXianjun Jiao 23342ee67178SXianjun Jiao NL80211_ATTR_WOWLAN_TRIGGERS, 23352ee67178SXianjun Jiao NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, 23362ee67178SXianjun Jiao 23372ee67178SXianjun Jiao NL80211_ATTR_SCHED_SCAN_INTERVAL, 23382ee67178SXianjun Jiao 23392ee67178SXianjun Jiao NL80211_ATTR_INTERFACE_COMBINATIONS, 23402ee67178SXianjun Jiao NL80211_ATTR_SOFTWARE_IFTYPES, 23412ee67178SXianjun Jiao 23422ee67178SXianjun Jiao NL80211_ATTR_REKEY_DATA, 23432ee67178SXianjun Jiao 23442ee67178SXianjun Jiao NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS, 23452ee67178SXianjun Jiao NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN, 23462ee67178SXianjun Jiao 23472ee67178SXianjun Jiao NL80211_ATTR_SCAN_SUPP_RATES, 23482ee67178SXianjun Jiao 23492ee67178SXianjun Jiao NL80211_ATTR_HIDDEN_SSID, 23502ee67178SXianjun Jiao 23512ee67178SXianjun Jiao NL80211_ATTR_IE_PROBE_RESP, 23522ee67178SXianjun Jiao NL80211_ATTR_IE_ASSOC_RESP, 23532ee67178SXianjun Jiao 23542ee67178SXianjun Jiao NL80211_ATTR_STA_WME, 23552ee67178SXianjun Jiao NL80211_ATTR_SUPPORT_AP_UAPSD, 23562ee67178SXianjun Jiao 23572ee67178SXianjun Jiao NL80211_ATTR_ROAM_SUPPORT, 23582ee67178SXianjun Jiao 23592ee67178SXianjun Jiao NL80211_ATTR_SCHED_SCAN_MATCH, 23602ee67178SXianjun Jiao NL80211_ATTR_MAX_MATCH_SETS, 23612ee67178SXianjun Jiao 23622ee67178SXianjun Jiao NL80211_ATTR_PMKSA_CANDIDATE, 23632ee67178SXianjun Jiao 23642ee67178SXianjun Jiao NL80211_ATTR_TX_NO_CCK_RATE, 23652ee67178SXianjun Jiao 23662ee67178SXianjun Jiao NL80211_ATTR_TDLS_ACTION, 23672ee67178SXianjun Jiao NL80211_ATTR_TDLS_DIALOG_TOKEN, 23682ee67178SXianjun Jiao NL80211_ATTR_TDLS_OPERATION, 23692ee67178SXianjun Jiao NL80211_ATTR_TDLS_SUPPORT, 23702ee67178SXianjun Jiao NL80211_ATTR_TDLS_EXTERNAL_SETUP, 23712ee67178SXianjun Jiao 23722ee67178SXianjun Jiao NL80211_ATTR_DEVICE_AP_SME, 23732ee67178SXianjun Jiao 23742ee67178SXianjun Jiao NL80211_ATTR_DONT_WAIT_FOR_ACK, 23752ee67178SXianjun Jiao 23762ee67178SXianjun Jiao NL80211_ATTR_FEATURE_FLAGS, 23772ee67178SXianjun Jiao 23782ee67178SXianjun Jiao NL80211_ATTR_PROBE_RESP_OFFLOAD, 23792ee67178SXianjun Jiao 23802ee67178SXianjun Jiao NL80211_ATTR_PROBE_RESP, 23812ee67178SXianjun Jiao 23822ee67178SXianjun Jiao NL80211_ATTR_DFS_REGION, 23832ee67178SXianjun Jiao 23842ee67178SXianjun Jiao NL80211_ATTR_DISABLE_HT, 23852ee67178SXianjun Jiao NL80211_ATTR_HT_CAPABILITY_MASK, 23862ee67178SXianjun Jiao 23872ee67178SXianjun Jiao NL80211_ATTR_NOACK_MAP, 23882ee67178SXianjun Jiao 23892ee67178SXianjun Jiao NL80211_ATTR_INACTIVITY_TIMEOUT, 23902ee67178SXianjun Jiao 23912ee67178SXianjun Jiao NL80211_ATTR_RX_SIGNAL_DBM, 23922ee67178SXianjun Jiao 23932ee67178SXianjun Jiao NL80211_ATTR_BG_SCAN_PERIOD, 23942ee67178SXianjun Jiao 23952ee67178SXianjun Jiao NL80211_ATTR_WDEV, 23962ee67178SXianjun Jiao 23972ee67178SXianjun Jiao NL80211_ATTR_USER_REG_HINT_TYPE, 23982ee67178SXianjun Jiao 23992ee67178SXianjun Jiao NL80211_ATTR_CONN_FAILED_REASON, 24002ee67178SXianjun Jiao 24014ecf49bbSJiao Xianjun NL80211_ATTR_AUTH_DATA, 24022ee67178SXianjun Jiao 24032ee67178SXianjun Jiao NL80211_ATTR_VHT_CAPABILITY, 24042ee67178SXianjun Jiao 24052ee67178SXianjun Jiao NL80211_ATTR_SCAN_FLAGS, 24062ee67178SXianjun Jiao 24072ee67178SXianjun Jiao NL80211_ATTR_CHANNEL_WIDTH, 24082ee67178SXianjun Jiao NL80211_ATTR_CENTER_FREQ1, 24092ee67178SXianjun Jiao NL80211_ATTR_CENTER_FREQ2, 24102ee67178SXianjun Jiao 24112ee67178SXianjun Jiao NL80211_ATTR_P2P_CTWINDOW, 24122ee67178SXianjun Jiao NL80211_ATTR_P2P_OPPPS, 24132ee67178SXianjun Jiao 24142ee67178SXianjun Jiao NL80211_ATTR_LOCAL_MESH_POWER_MODE, 24152ee67178SXianjun Jiao 24162ee67178SXianjun Jiao NL80211_ATTR_ACL_POLICY, 24172ee67178SXianjun Jiao 24182ee67178SXianjun Jiao NL80211_ATTR_MAC_ADDRS, 24192ee67178SXianjun Jiao 24202ee67178SXianjun Jiao NL80211_ATTR_MAC_ACL_MAX, 24212ee67178SXianjun Jiao 24222ee67178SXianjun Jiao NL80211_ATTR_RADAR_EVENT, 24232ee67178SXianjun Jiao 24242ee67178SXianjun Jiao NL80211_ATTR_EXT_CAPA, 24252ee67178SXianjun Jiao NL80211_ATTR_EXT_CAPA_MASK, 24262ee67178SXianjun Jiao 24272ee67178SXianjun Jiao NL80211_ATTR_STA_CAPABILITY, 24282ee67178SXianjun Jiao NL80211_ATTR_STA_EXT_CAPABILITY, 24292ee67178SXianjun Jiao 24302ee67178SXianjun Jiao NL80211_ATTR_PROTOCOL_FEATURES, 24312ee67178SXianjun Jiao NL80211_ATTR_SPLIT_WIPHY_DUMP, 24322ee67178SXianjun Jiao 24332ee67178SXianjun Jiao NL80211_ATTR_DISABLE_VHT, 24342ee67178SXianjun Jiao NL80211_ATTR_VHT_CAPABILITY_MASK, 24352ee67178SXianjun Jiao 24362ee67178SXianjun Jiao NL80211_ATTR_MDID, 24372ee67178SXianjun Jiao NL80211_ATTR_IE_RIC, 24382ee67178SXianjun Jiao 24392ee67178SXianjun Jiao NL80211_ATTR_CRIT_PROT_ID, 24402ee67178SXianjun Jiao NL80211_ATTR_MAX_CRIT_PROT_DURATION, 24412ee67178SXianjun Jiao 24422ee67178SXianjun Jiao NL80211_ATTR_PEER_AID, 24432ee67178SXianjun Jiao 24442ee67178SXianjun Jiao NL80211_ATTR_COALESCE_RULE, 24452ee67178SXianjun Jiao 24462ee67178SXianjun Jiao NL80211_ATTR_CH_SWITCH_COUNT, 24472ee67178SXianjun Jiao NL80211_ATTR_CH_SWITCH_BLOCK_TX, 24482ee67178SXianjun Jiao NL80211_ATTR_CSA_IES, 24492ee67178SXianjun Jiao NL80211_ATTR_CSA_C_OFF_BEACON, 24502ee67178SXianjun Jiao NL80211_ATTR_CSA_C_OFF_PRESP, 24512ee67178SXianjun Jiao 24522ee67178SXianjun Jiao NL80211_ATTR_RXMGMT_FLAGS, 24532ee67178SXianjun Jiao 24542ee67178SXianjun Jiao NL80211_ATTR_STA_SUPPORTED_CHANNELS, 24552ee67178SXianjun Jiao 24562ee67178SXianjun Jiao NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES, 24572ee67178SXianjun Jiao 24582ee67178SXianjun Jiao NL80211_ATTR_HANDLE_DFS, 24592ee67178SXianjun Jiao 24602ee67178SXianjun Jiao NL80211_ATTR_SUPPORT_5_MHZ, 24612ee67178SXianjun Jiao NL80211_ATTR_SUPPORT_10_MHZ, 24622ee67178SXianjun Jiao 24632ee67178SXianjun Jiao NL80211_ATTR_OPMODE_NOTIF, 24642ee67178SXianjun Jiao 24652ee67178SXianjun Jiao NL80211_ATTR_VENDOR_ID, 24662ee67178SXianjun Jiao NL80211_ATTR_VENDOR_SUBCMD, 24672ee67178SXianjun Jiao NL80211_ATTR_VENDOR_DATA, 24682ee67178SXianjun Jiao NL80211_ATTR_VENDOR_EVENTS, 24692ee67178SXianjun Jiao 24702ee67178SXianjun Jiao NL80211_ATTR_QOS_MAP, 24712ee67178SXianjun Jiao 24722ee67178SXianjun Jiao NL80211_ATTR_MAC_HINT, 24732ee67178SXianjun Jiao NL80211_ATTR_WIPHY_FREQ_HINT, 24742ee67178SXianjun Jiao 24752ee67178SXianjun Jiao NL80211_ATTR_MAX_AP_ASSOC_STA, 24762ee67178SXianjun Jiao 24772ee67178SXianjun Jiao NL80211_ATTR_TDLS_PEER_CAPABILITY, 24782ee67178SXianjun Jiao 24794ecf49bbSJiao Xianjun NL80211_ATTR_SOCKET_OWNER, 24802ee67178SXianjun Jiao 24812ee67178SXianjun Jiao NL80211_ATTR_CSA_C_OFFSETS_TX, 24822ee67178SXianjun Jiao NL80211_ATTR_MAX_CSA_COUNTERS, 24832ee67178SXianjun Jiao 24842ee67178SXianjun Jiao NL80211_ATTR_TDLS_INITIATOR, 24852ee67178SXianjun Jiao 24862ee67178SXianjun Jiao NL80211_ATTR_USE_RRM, 24872ee67178SXianjun Jiao 24882ee67178SXianjun Jiao NL80211_ATTR_WIPHY_DYN_ACK, 24892ee67178SXianjun Jiao 24902ee67178SXianjun Jiao NL80211_ATTR_TSID, 24912ee67178SXianjun Jiao NL80211_ATTR_USER_PRIO, 24922ee67178SXianjun Jiao NL80211_ATTR_ADMITTED_TIME, 24932ee67178SXianjun Jiao 24942ee67178SXianjun Jiao NL80211_ATTR_SMPS_MODE, 24952ee67178SXianjun Jiao 24964ecf49bbSJiao Xianjun NL80211_ATTR_OPER_CLASS, 24974ecf49bbSJiao Xianjun 24984ecf49bbSJiao Xianjun NL80211_ATTR_MAC_MASK, 24994ecf49bbSJiao Xianjun 25004ecf49bbSJiao Xianjun NL80211_ATTR_WIPHY_SELF_MANAGED_REG, 25014ecf49bbSJiao Xianjun 25024ecf49bbSJiao Xianjun NL80211_ATTR_EXT_FEATURES, 25034ecf49bbSJiao Xianjun 25044ecf49bbSJiao Xianjun NL80211_ATTR_SURVEY_RADIO_STATS, 25054ecf49bbSJiao Xianjun 25064ecf49bbSJiao Xianjun NL80211_ATTR_NETNS_FD, 25074ecf49bbSJiao Xianjun 25084ecf49bbSJiao Xianjun NL80211_ATTR_SCHED_SCAN_DELAY, 25094ecf49bbSJiao Xianjun 25104ecf49bbSJiao Xianjun NL80211_ATTR_REG_INDOOR, 25114ecf49bbSJiao Xianjun 25124ecf49bbSJiao Xianjun NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS, 25134ecf49bbSJiao Xianjun NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL, 25144ecf49bbSJiao Xianjun NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS, 25154ecf49bbSJiao Xianjun NL80211_ATTR_SCHED_SCAN_PLANS, 25164ecf49bbSJiao Xianjun 25174ecf49bbSJiao Xianjun NL80211_ATTR_PBSS, 25184ecf49bbSJiao Xianjun 25194ecf49bbSJiao Xianjun NL80211_ATTR_BSS_SELECT, 25204ecf49bbSJiao Xianjun 25214ecf49bbSJiao Xianjun NL80211_ATTR_STA_SUPPORT_P2P_PS, 25224ecf49bbSJiao Xianjun 25234ecf49bbSJiao Xianjun NL80211_ATTR_PAD, 25244ecf49bbSJiao Xianjun 25254ecf49bbSJiao Xianjun NL80211_ATTR_IFTYPE_EXT_CAPA, 25264ecf49bbSJiao Xianjun 25274ecf49bbSJiao Xianjun NL80211_ATTR_MU_MIMO_GROUP_DATA, 25284ecf49bbSJiao Xianjun NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR, 25294ecf49bbSJiao Xianjun 25304ecf49bbSJiao Xianjun NL80211_ATTR_SCAN_START_TIME_TSF, 25314ecf49bbSJiao Xianjun NL80211_ATTR_SCAN_START_TIME_TSF_BSSID, 25324ecf49bbSJiao Xianjun NL80211_ATTR_MEASUREMENT_DURATION, 25334ecf49bbSJiao Xianjun NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY, 25344ecf49bbSJiao Xianjun 25354ecf49bbSJiao Xianjun NL80211_ATTR_MESH_PEER_AID, 25364ecf49bbSJiao Xianjun 25374ecf49bbSJiao Xianjun NL80211_ATTR_NAN_MASTER_PREF, 25384ecf49bbSJiao Xianjun NL80211_ATTR_BANDS, 25394ecf49bbSJiao Xianjun NL80211_ATTR_NAN_FUNC, 25404ecf49bbSJiao Xianjun NL80211_ATTR_NAN_MATCH, 25414ecf49bbSJiao Xianjun 25424ecf49bbSJiao Xianjun NL80211_ATTR_FILS_KEK, 25434ecf49bbSJiao Xianjun NL80211_ATTR_FILS_NONCES, 25444ecf49bbSJiao Xianjun 25454ecf49bbSJiao Xianjun NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED, 25464ecf49bbSJiao Xianjun 25474ecf49bbSJiao Xianjun NL80211_ATTR_BSSID, 25484ecf49bbSJiao Xianjun 25494ecf49bbSJiao Xianjun NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI, 25504ecf49bbSJiao Xianjun NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST, 25514ecf49bbSJiao Xianjun 25524ecf49bbSJiao Xianjun NL80211_ATTR_TIMEOUT_REASON, 25534ecf49bbSJiao Xianjun 25544ecf49bbSJiao Xianjun NL80211_ATTR_FILS_ERP_USERNAME, 25554ecf49bbSJiao Xianjun NL80211_ATTR_FILS_ERP_REALM, 25564ecf49bbSJiao Xianjun NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM, 25574ecf49bbSJiao Xianjun NL80211_ATTR_FILS_ERP_RRK, 25584ecf49bbSJiao Xianjun NL80211_ATTR_FILS_CACHE_ID, 25594ecf49bbSJiao Xianjun 25604ecf49bbSJiao Xianjun NL80211_ATTR_PMK, 25614ecf49bbSJiao Xianjun 25624ecf49bbSJiao Xianjun NL80211_ATTR_SCHED_SCAN_MULTI, 25634ecf49bbSJiao Xianjun NL80211_ATTR_SCHED_SCAN_MAX_REQS, 25644ecf49bbSJiao Xianjun 25654ecf49bbSJiao Xianjun NL80211_ATTR_WANT_1X_4WAY_HS, 25664ecf49bbSJiao Xianjun NL80211_ATTR_PMKR0_NAME, 25674ecf49bbSJiao Xianjun NL80211_ATTR_PORT_AUTHORIZED, 25684ecf49bbSJiao Xianjun 25692ee67178SXianjun Jiao /* add attributes here, update the policy in nl80211.c */ 25702ee67178SXianjun Jiao 25712ee67178SXianjun Jiao __NL80211_ATTR_AFTER_LAST, 25724ecf49bbSJiao Xianjun NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST, 25732ee67178SXianjun Jiao NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 25742ee67178SXianjun Jiao }; 25752ee67178SXianjun Jiao 25762ee67178SXianjun Jiao /* source-level API compatibility */ 25772ee67178SXianjun Jiao #define NL80211_ATTR_SCAN_GENERATION NL80211_ATTR_GENERATION 25782ee67178SXianjun Jiao #define NL80211_ATTR_MESH_PARAMS NL80211_ATTR_MESH_CONFIG 25794ecf49bbSJiao Xianjun #define NL80211_ATTR_IFACE_SOCKET_OWNER NL80211_ATTR_SOCKET_OWNER 25804ecf49bbSJiao Xianjun #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA 25812ee67178SXianjun Jiao 25822ee67178SXianjun Jiao /* 25832ee67178SXianjun Jiao * Allow user space programs to use #ifdef on new attributes by defining them 25842ee67178SXianjun Jiao * here 25852ee67178SXianjun Jiao */ 25862ee67178SXianjun Jiao #define NL80211_CMD_CONNECT NL80211_CMD_CONNECT 25872ee67178SXianjun Jiao #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY 25882ee67178SXianjun Jiao #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES 25892ee67178SXianjun Jiao #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS 25902ee67178SXianjun Jiao #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ 25912ee67178SXianjun Jiao #define NL80211_ATTR_WIPHY_CHANNEL_TYPE NL80211_ATTR_WIPHY_CHANNEL_TYPE 25922ee67178SXianjun Jiao #define NL80211_ATTR_MGMT_SUBTYPE NL80211_ATTR_MGMT_SUBTYPE 25932ee67178SXianjun Jiao #define NL80211_ATTR_IE NL80211_ATTR_IE 25942ee67178SXianjun Jiao #define NL80211_ATTR_REG_INITIATOR NL80211_ATTR_REG_INITIATOR 25952ee67178SXianjun Jiao #define NL80211_ATTR_REG_TYPE NL80211_ATTR_REG_TYPE 25962ee67178SXianjun Jiao #define NL80211_ATTR_FRAME NL80211_ATTR_FRAME 25972ee67178SXianjun Jiao #define NL80211_ATTR_SSID NL80211_ATTR_SSID 25982ee67178SXianjun Jiao #define NL80211_ATTR_AUTH_TYPE NL80211_ATTR_AUTH_TYPE 25992ee67178SXianjun Jiao #define NL80211_ATTR_REASON_CODE NL80211_ATTR_REASON_CODE 26002ee67178SXianjun Jiao #define NL80211_ATTR_CIPHER_SUITES_PAIRWISE NL80211_ATTR_CIPHER_SUITES_PAIRWISE 26012ee67178SXianjun Jiao #define NL80211_ATTR_CIPHER_SUITE_GROUP NL80211_ATTR_CIPHER_SUITE_GROUP 26022ee67178SXianjun Jiao #define NL80211_ATTR_WPA_VERSIONS NL80211_ATTR_WPA_VERSIONS 26032ee67178SXianjun Jiao #define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES 26042ee67178SXianjun Jiao #define NL80211_ATTR_KEY NL80211_ATTR_KEY 26052ee67178SXianjun Jiao #define NL80211_ATTR_KEYS NL80211_ATTR_KEYS 26062ee67178SXianjun Jiao #define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS 26072ee67178SXianjun Jiao 26082ee67178SXianjun Jiao #define NL80211_MAX_SUPP_RATES 32 26092ee67178SXianjun Jiao #define NL80211_MAX_SUPP_HT_RATES 77 26104ecf49bbSJiao Xianjun #define NL80211_MAX_SUPP_REG_RULES 64 26112ee67178SXianjun Jiao #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0 26122ee67178SXianjun Jiao #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 26132ee67178SXianjun Jiao #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 26142ee67178SXianjun Jiao #define NL80211_HT_CAPABILITY_LEN 26 26152ee67178SXianjun Jiao #define NL80211_VHT_CAPABILITY_LEN 12 26162ee67178SXianjun Jiao 26172ee67178SXianjun Jiao #define NL80211_MAX_NR_CIPHER_SUITES 5 26182ee67178SXianjun Jiao #define NL80211_MAX_NR_AKM_SUITES 2 26192ee67178SXianjun Jiao 26202ee67178SXianjun Jiao #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME 10 26212ee67178SXianjun Jiao 26222ee67178SXianjun Jiao /* default RSSI threshold for scan results if none specified. */ 26232ee67178SXianjun Jiao #define NL80211_SCAN_RSSI_THOLD_OFF -300 26242ee67178SXianjun Jiao 26252ee67178SXianjun Jiao #define NL80211_CQM_TXE_MAX_INTVL 1800 26262ee67178SXianjun Jiao 26272ee67178SXianjun Jiao /** 26282ee67178SXianjun Jiao * enum nl80211_iftype - (virtual) interface types 26292ee67178SXianjun Jiao * 26302ee67178SXianjun Jiao * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides 26312ee67178SXianjun Jiao * @NL80211_IFTYPE_ADHOC: independent BSS member 26322ee67178SXianjun Jiao * @NL80211_IFTYPE_STATION: managed BSS member 26332ee67178SXianjun Jiao * @NL80211_IFTYPE_AP: access point 26342ee67178SXianjun Jiao * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points; VLAN interfaces 26352ee67178SXianjun Jiao * are a bit special in that they must always be tied to a pre-existing 26362ee67178SXianjun Jiao * AP type interface. 26372ee67178SXianjun Jiao * @NL80211_IFTYPE_WDS: wireless distribution interface 26382ee67178SXianjun Jiao * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames 26392ee67178SXianjun Jiao * @NL80211_IFTYPE_MESH_POINT: mesh point 26402ee67178SXianjun Jiao * @NL80211_IFTYPE_P2P_CLIENT: P2P client 26412ee67178SXianjun Jiao * @NL80211_IFTYPE_P2P_GO: P2P group owner 26422ee67178SXianjun Jiao * @NL80211_IFTYPE_P2P_DEVICE: P2P device interface type, this is not a netdev 26432ee67178SXianjun Jiao * and therefore can't be created in the normal ways, use the 26442ee67178SXianjun Jiao * %NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE 26452ee67178SXianjun Jiao * commands to create and destroy one 26464ecf49bbSJiao Xianjun * @NL80211_IF_TYPE_OCB: Outside Context of a BSS 26474ecf49bbSJiao Xianjun * This mode corresponds to the MIB variable dot11OCBActivated=true 26484ecf49bbSJiao Xianjun * @NL80211_IFTYPE_NAN: NAN device interface type (not a netdev) 26492ee67178SXianjun Jiao * @NL80211_IFTYPE_MAX: highest interface type number currently defined 26502ee67178SXianjun Jiao * @NUM_NL80211_IFTYPES: number of defined interface types 26512ee67178SXianjun Jiao * 26522ee67178SXianjun Jiao * These values are used with the %NL80211_ATTR_IFTYPE 26532ee67178SXianjun Jiao * to set the type of an interface. 26542ee67178SXianjun Jiao * 26552ee67178SXianjun Jiao */ 26562ee67178SXianjun Jiao enum nl80211_iftype { 26572ee67178SXianjun Jiao NL80211_IFTYPE_UNSPECIFIED, 26582ee67178SXianjun Jiao NL80211_IFTYPE_ADHOC, 26592ee67178SXianjun Jiao NL80211_IFTYPE_STATION, 26602ee67178SXianjun Jiao NL80211_IFTYPE_AP, 26612ee67178SXianjun Jiao NL80211_IFTYPE_AP_VLAN, 26622ee67178SXianjun Jiao NL80211_IFTYPE_WDS, 26632ee67178SXianjun Jiao NL80211_IFTYPE_MONITOR, 26642ee67178SXianjun Jiao NL80211_IFTYPE_MESH_POINT, 26652ee67178SXianjun Jiao NL80211_IFTYPE_P2P_CLIENT, 26662ee67178SXianjun Jiao NL80211_IFTYPE_P2P_GO, 26672ee67178SXianjun Jiao NL80211_IFTYPE_P2P_DEVICE, 26684ecf49bbSJiao Xianjun NL80211_IFTYPE_OCB, 26694ecf49bbSJiao Xianjun NL80211_IFTYPE_NAN, 26702ee67178SXianjun Jiao 26712ee67178SXianjun Jiao /* keep last */ 26722ee67178SXianjun Jiao NUM_NL80211_IFTYPES, 26732ee67178SXianjun Jiao NL80211_IFTYPE_MAX = NUM_NL80211_IFTYPES - 1 26742ee67178SXianjun Jiao }; 26752ee67178SXianjun Jiao 26762ee67178SXianjun Jiao /** 26772ee67178SXianjun Jiao * enum nl80211_sta_flags - station flags 26782ee67178SXianjun Jiao * 26792ee67178SXianjun Jiao * Station flags. When a station is added to an AP interface, it is 26802ee67178SXianjun Jiao * assumed to be already associated (and hence authenticated.) 26812ee67178SXianjun Jiao * 26822ee67178SXianjun Jiao * @__NL80211_STA_FLAG_INVALID: attribute number 0 is reserved 26832ee67178SXianjun Jiao * @NL80211_STA_FLAG_AUTHORIZED: station is authorized (802.1X) 26842ee67178SXianjun Jiao * @NL80211_STA_FLAG_SHORT_PREAMBLE: station is capable of receiving frames 26852ee67178SXianjun Jiao * with short barker preamble 26862ee67178SXianjun Jiao * @NL80211_STA_FLAG_WME: station is WME/QoS capable 26872ee67178SXianjun Jiao * @NL80211_STA_FLAG_MFP: station uses management frame protection 26882ee67178SXianjun Jiao * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated 26892ee67178SXianjun Jiao * @NL80211_STA_FLAG_TDLS_PEER: station is a TDLS peer -- this flag should 26902ee67178SXianjun Jiao * only be used in managed mode (even in the flags mask). Note that the 26912ee67178SXianjun Jiao * flag can't be changed, it is only valid while adding a station, and 26922ee67178SXianjun Jiao * attempts to change it will silently be ignored (rather than rejected 26932ee67178SXianjun Jiao * as errors.) 26942ee67178SXianjun Jiao * @NL80211_STA_FLAG_ASSOCIATED: station is associated; used with drivers 26952ee67178SXianjun Jiao * that support %NL80211_FEATURE_FULL_AP_CLIENT_STATE to transition a 26962ee67178SXianjun Jiao * previously added station into associated state 26972ee67178SXianjun Jiao * @NL80211_STA_FLAG_MAX: highest station flag number currently defined 26982ee67178SXianjun Jiao * @__NL80211_STA_FLAG_AFTER_LAST: internal use 26992ee67178SXianjun Jiao */ 27002ee67178SXianjun Jiao enum nl80211_sta_flags { 27012ee67178SXianjun Jiao __NL80211_STA_FLAG_INVALID, 27022ee67178SXianjun Jiao NL80211_STA_FLAG_AUTHORIZED, 27032ee67178SXianjun Jiao NL80211_STA_FLAG_SHORT_PREAMBLE, 27042ee67178SXianjun Jiao NL80211_STA_FLAG_WME, 27052ee67178SXianjun Jiao NL80211_STA_FLAG_MFP, 27062ee67178SXianjun Jiao NL80211_STA_FLAG_AUTHENTICATED, 27072ee67178SXianjun Jiao NL80211_STA_FLAG_TDLS_PEER, 27082ee67178SXianjun Jiao NL80211_STA_FLAG_ASSOCIATED, 27092ee67178SXianjun Jiao 27102ee67178SXianjun Jiao /* keep last */ 27112ee67178SXianjun Jiao __NL80211_STA_FLAG_AFTER_LAST, 27122ee67178SXianjun Jiao NL80211_STA_FLAG_MAX = __NL80211_STA_FLAG_AFTER_LAST - 1 27132ee67178SXianjun Jiao }; 27142ee67178SXianjun Jiao 27154ecf49bbSJiao Xianjun /** 27164ecf49bbSJiao Xianjun * enum nl80211_sta_p2p_ps_status - station support of P2P PS 27174ecf49bbSJiao Xianjun * 27184ecf49bbSJiao Xianjun * @NL80211_P2P_PS_UNSUPPORTED: station doesn't support P2P PS mechanism 27194ecf49bbSJiao Xianjun * @@NL80211_P2P_PS_SUPPORTED: station supports P2P PS mechanism 27204ecf49bbSJiao Xianjun * @NUM_NL80211_P2P_PS_STATUS: number of values 27214ecf49bbSJiao Xianjun */ 27224ecf49bbSJiao Xianjun enum nl80211_sta_p2p_ps_status { 27234ecf49bbSJiao Xianjun NL80211_P2P_PS_UNSUPPORTED = 0, 27244ecf49bbSJiao Xianjun NL80211_P2P_PS_SUPPORTED, 27254ecf49bbSJiao Xianjun 27264ecf49bbSJiao Xianjun NUM_NL80211_P2P_PS_STATUS, 27274ecf49bbSJiao Xianjun }; 27284ecf49bbSJiao Xianjun 27292ee67178SXianjun Jiao #define NL80211_STA_FLAG_MAX_OLD_API NL80211_STA_FLAG_TDLS_PEER 27302ee67178SXianjun Jiao 27312ee67178SXianjun Jiao /** 27322ee67178SXianjun Jiao * struct nl80211_sta_flag_update - station flags mask/set 27332ee67178SXianjun Jiao * @mask: mask of station flags to set 27342ee67178SXianjun Jiao * @set: which values to set them to 27352ee67178SXianjun Jiao * 27362ee67178SXianjun Jiao * Both mask and set contain bits as per &enum nl80211_sta_flags. 27372ee67178SXianjun Jiao */ 27382ee67178SXianjun Jiao struct nl80211_sta_flag_update { 27392ee67178SXianjun Jiao __u32 mask; 27402ee67178SXianjun Jiao __u32 set; 27412ee67178SXianjun Jiao } __attribute__((packed)); 27422ee67178SXianjun Jiao 27432ee67178SXianjun Jiao /** 27442ee67178SXianjun Jiao * enum nl80211_rate_info - bitrate information 27452ee67178SXianjun Jiao * 27462ee67178SXianjun Jiao * These attribute types are used with %NL80211_STA_INFO_TXRATE 27472ee67178SXianjun Jiao * when getting information about the bitrate of a station. 27482ee67178SXianjun Jiao * There are 2 attributes for bitrate, a legacy one that represents 27492ee67178SXianjun Jiao * a 16-bit value, and new one that represents a 32-bit value. 27502ee67178SXianjun Jiao * If the rate value fits into 16 bit, both attributes are reported 27512ee67178SXianjun Jiao * with the same value. If the rate is too high to fit into 16 bits 27522ee67178SXianjun Jiao * (>6.5535Gbps) only 32-bit attribute is included. 27532ee67178SXianjun Jiao * User space tools encouraged to use the 32-bit attribute and fall 27542ee67178SXianjun Jiao * back to the 16-bit one for compatibility with older kernels. 27552ee67178SXianjun Jiao * 27562ee67178SXianjun Jiao * @__NL80211_RATE_INFO_INVALID: attribute number 0 is reserved 27572ee67178SXianjun Jiao * @NL80211_RATE_INFO_BITRATE: total bitrate (u16, 100kbit/s) 27582ee67178SXianjun Jiao * @NL80211_RATE_INFO_MCS: mcs index for 802.11n (u8) 27592ee67178SXianjun Jiao * @NL80211_RATE_INFO_40_MHZ_WIDTH: 40 MHz dualchannel bitrate 27602ee67178SXianjun Jiao * @NL80211_RATE_INFO_SHORT_GI: 400ns guard interval 27612ee67178SXianjun Jiao * @NL80211_RATE_INFO_BITRATE32: total bitrate (u32, 100kbit/s) 27622ee67178SXianjun Jiao * @NL80211_RATE_INFO_MAX: highest rate_info number currently defined 27632ee67178SXianjun Jiao * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8) 27642ee67178SXianjun Jiao * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8) 27652ee67178SXianjun Jiao * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate 27664ecf49bbSJiao Xianjun * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: unused - 80+80 is treated the 27674ecf49bbSJiao Xianjun * same as 160 for purposes of the bitrates 27682ee67178SXianjun Jiao * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate 27694ecf49bbSJiao Xianjun * @NL80211_RATE_INFO_10_MHZ_WIDTH: 10 MHz width - note that this is 27704ecf49bbSJiao Xianjun * a legacy rate and will be reported as the actual bitrate, i.e. 27714ecf49bbSJiao Xianjun * half the base (20 MHz) rate 27724ecf49bbSJiao Xianjun * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is 27734ecf49bbSJiao Xianjun * a legacy rate and will be reported as the actual bitrate, i.e. 27744ecf49bbSJiao Xianjun * a quarter of the base (20 MHz) rate 27752ee67178SXianjun Jiao * @__NL80211_RATE_INFO_AFTER_LAST: internal use 27762ee67178SXianjun Jiao */ 27772ee67178SXianjun Jiao enum nl80211_rate_info { 27782ee67178SXianjun Jiao __NL80211_RATE_INFO_INVALID, 27792ee67178SXianjun Jiao NL80211_RATE_INFO_BITRATE, 27802ee67178SXianjun Jiao NL80211_RATE_INFO_MCS, 27812ee67178SXianjun Jiao NL80211_RATE_INFO_40_MHZ_WIDTH, 27822ee67178SXianjun Jiao NL80211_RATE_INFO_SHORT_GI, 27832ee67178SXianjun Jiao NL80211_RATE_INFO_BITRATE32, 27842ee67178SXianjun Jiao NL80211_RATE_INFO_VHT_MCS, 27852ee67178SXianjun Jiao NL80211_RATE_INFO_VHT_NSS, 27862ee67178SXianjun Jiao NL80211_RATE_INFO_80_MHZ_WIDTH, 27872ee67178SXianjun Jiao NL80211_RATE_INFO_80P80_MHZ_WIDTH, 27882ee67178SXianjun Jiao NL80211_RATE_INFO_160_MHZ_WIDTH, 27894ecf49bbSJiao Xianjun NL80211_RATE_INFO_10_MHZ_WIDTH, 27904ecf49bbSJiao Xianjun NL80211_RATE_INFO_5_MHZ_WIDTH, 27912ee67178SXianjun Jiao 27922ee67178SXianjun Jiao /* keep last */ 27932ee67178SXianjun Jiao __NL80211_RATE_INFO_AFTER_LAST, 27942ee67178SXianjun Jiao NL80211_RATE_INFO_MAX = __NL80211_RATE_INFO_AFTER_LAST - 1 27952ee67178SXianjun Jiao }; 27962ee67178SXianjun Jiao 27972ee67178SXianjun Jiao /** 27982ee67178SXianjun Jiao * enum nl80211_sta_bss_param - BSS information collected by STA 27992ee67178SXianjun Jiao * 28002ee67178SXianjun Jiao * These attribute types are used with %NL80211_STA_INFO_BSS_PARAM 28012ee67178SXianjun Jiao * when getting information about the bitrate of a station. 28022ee67178SXianjun Jiao * 28032ee67178SXianjun Jiao * @__NL80211_STA_BSS_PARAM_INVALID: attribute number 0 is reserved 28042ee67178SXianjun Jiao * @NL80211_STA_BSS_PARAM_CTS_PROT: whether CTS protection is enabled (flag) 28052ee67178SXianjun Jiao * @NL80211_STA_BSS_PARAM_SHORT_PREAMBLE: whether short preamble is enabled 28062ee67178SXianjun Jiao * (flag) 28072ee67178SXianjun Jiao * @NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME: whether short slot time is enabled 28082ee67178SXianjun Jiao * (flag) 28092ee67178SXianjun Jiao * @NL80211_STA_BSS_PARAM_DTIM_PERIOD: DTIM period for beaconing (u8) 28102ee67178SXianjun Jiao * @NL80211_STA_BSS_PARAM_BEACON_INTERVAL: Beacon interval (u16) 28112ee67178SXianjun Jiao * @NL80211_STA_BSS_PARAM_MAX: highest sta_bss_param number currently defined 28122ee67178SXianjun Jiao * @__NL80211_STA_BSS_PARAM_AFTER_LAST: internal use 28132ee67178SXianjun Jiao */ 28142ee67178SXianjun Jiao enum nl80211_sta_bss_param { 28152ee67178SXianjun Jiao __NL80211_STA_BSS_PARAM_INVALID, 28162ee67178SXianjun Jiao NL80211_STA_BSS_PARAM_CTS_PROT, 28172ee67178SXianjun Jiao NL80211_STA_BSS_PARAM_SHORT_PREAMBLE, 28182ee67178SXianjun Jiao NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME, 28192ee67178SXianjun Jiao NL80211_STA_BSS_PARAM_DTIM_PERIOD, 28202ee67178SXianjun Jiao NL80211_STA_BSS_PARAM_BEACON_INTERVAL, 28212ee67178SXianjun Jiao 28222ee67178SXianjun Jiao /* keep last */ 28232ee67178SXianjun Jiao __NL80211_STA_BSS_PARAM_AFTER_LAST, 28242ee67178SXianjun Jiao NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1 28252ee67178SXianjun Jiao }; 28262ee67178SXianjun Jiao 28272ee67178SXianjun Jiao /** 28282ee67178SXianjun Jiao * enum nl80211_sta_info - station information 28292ee67178SXianjun Jiao * 28302ee67178SXianjun Jiao * These attribute types are used with %NL80211_ATTR_STA_INFO 28312ee67178SXianjun Jiao * when getting information about a station. 28322ee67178SXianjun Jiao * 28332ee67178SXianjun Jiao * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved 28342ee67178SXianjun Jiao * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) 28354ecf49bbSJiao Xianjun * @NL80211_STA_INFO_RX_BYTES: total received bytes (MPDU length) 28364ecf49bbSJiao Xianjun * (u32, from this station) 28374ecf49bbSJiao Xianjun * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (MPDU length) 28384ecf49bbSJiao Xianjun * (u32, to this station) 28394ecf49bbSJiao Xianjun * @NL80211_STA_INFO_RX_BYTES64: total received bytes (MPDU length) 28404ecf49bbSJiao Xianjun * (u64, from this station) 28414ecf49bbSJiao Xianjun * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (MPDU length) 28424ecf49bbSJiao Xianjun * (u64, to this station) 28432ee67178SXianjun Jiao * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) 28442ee67178SXianjun Jiao * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute 28452ee67178SXianjun Jiao * containing info as possible, see &enum nl80211_rate_info 28464ecf49bbSJiao Xianjun * @NL80211_STA_INFO_RX_PACKETS: total received packet (MSDUs and MMPDUs) 28474ecf49bbSJiao Xianjun * (u32, from this station) 28484ecf49bbSJiao Xianjun * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (MSDUs and MMPDUs) 28494ecf49bbSJiao Xianjun * (u32, to this station) 28504ecf49bbSJiao Xianjun * @NL80211_STA_INFO_TX_RETRIES: total retries (MPDUs) (u32, to this station) 28514ecf49bbSJiao Xianjun * @NL80211_STA_INFO_TX_FAILED: total failed packets (MPDUs) 28524ecf49bbSJiao Xianjun * (u32, to this station) 28532ee67178SXianjun Jiao * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm) 28542ee67178SXianjun Jiao * @NL80211_STA_INFO_LLID: the station's mesh LLID 28552ee67178SXianjun Jiao * @NL80211_STA_INFO_PLID: the station's mesh PLID 28562ee67178SXianjun Jiao * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station 28572ee67178SXianjun Jiao * (see %enum nl80211_plink_state) 28582ee67178SXianjun Jiao * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested 28592ee67178SXianjun Jiao * attribute, like NL80211_STA_INFO_TX_BITRATE. 28602ee67178SXianjun Jiao * @NL80211_STA_INFO_BSS_PARAM: current station's view of BSS, nested attribute 28612ee67178SXianjun Jiao * containing info as possible, see &enum nl80211_sta_bss_param 28622ee67178SXianjun Jiao * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected 28632ee67178SXianjun Jiao * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. 28642ee67178SXianjun Jiao * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) 28652ee67178SXianjun Jiao * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64) 28662ee67178SXianjun Jiao * @NL80211_STA_INFO_LOCAL_PM: local mesh STA link-specific power mode 28672ee67178SXianjun Jiao * @NL80211_STA_INFO_PEER_PM: peer mesh STA link-specific power mode 28682ee67178SXianjun Jiao * @NL80211_STA_INFO_NONPEER_PM: neighbor mesh STA power save mode towards 28692ee67178SXianjun Jiao * non-peer STA 28702ee67178SXianjun Jiao * @NL80211_STA_INFO_CHAIN_SIGNAL: per-chain signal strength of last PPDU 28712ee67178SXianjun Jiao * Contains a nested array of signal strength attributes (u8, dBm) 28722ee67178SXianjun Jiao * @NL80211_STA_INFO_CHAIN_SIGNAL_AVG: per-chain signal strength average 28732ee67178SXianjun Jiao * Same format as NL80211_STA_INFO_CHAIN_SIGNAL. 28742ee67178SXianjun Jiao * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the 28752ee67178SXianjun Jiao * 802.11 header (u32, kbps) 28764ecf49bbSJiao Xianjun * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons 28774ecf49bbSJiao Xianjun * (u64) 28784ecf49bbSJiao Xianjun * @NL80211_STA_INFO_BEACON_RX: number of beacons received from this peer (u64) 28794ecf49bbSJiao Xianjun * @NL80211_STA_INFO_BEACON_SIGNAL_AVG: signal strength average 28804ecf49bbSJiao Xianjun * for beacons only (u8, dBm) 28814ecf49bbSJiao Xianjun * @NL80211_STA_INFO_TID_STATS: per-TID statistics (see &enum nl80211_tid_stats) 28824ecf49bbSJiao Xianjun * This is a nested attribute where each the inner attribute number is the 28834ecf49bbSJiao Xianjun * TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames; 28844ecf49bbSJiao Xianjun * each one of those is again nested with &enum nl80211_tid_stats 28854ecf49bbSJiao Xianjun * attributes carrying the actual values. 28864ecf49bbSJiao Xianjun * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames 28874ecf49bbSJiao Xianjun * received from the station (u64, usec) 28884ecf49bbSJiao Xianjun * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment 28892ee67178SXianjun Jiao * @__NL80211_STA_INFO_AFTER_LAST: internal 28902ee67178SXianjun Jiao * @NL80211_STA_INFO_MAX: highest possible station info attribute 28912ee67178SXianjun Jiao */ 28922ee67178SXianjun Jiao enum nl80211_sta_info { 28932ee67178SXianjun Jiao __NL80211_STA_INFO_INVALID, 28942ee67178SXianjun Jiao NL80211_STA_INFO_INACTIVE_TIME, 28952ee67178SXianjun Jiao NL80211_STA_INFO_RX_BYTES, 28962ee67178SXianjun Jiao NL80211_STA_INFO_TX_BYTES, 28972ee67178SXianjun Jiao NL80211_STA_INFO_LLID, 28982ee67178SXianjun Jiao NL80211_STA_INFO_PLID, 28992ee67178SXianjun Jiao NL80211_STA_INFO_PLINK_STATE, 29002ee67178SXianjun Jiao NL80211_STA_INFO_SIGNAL, 29012ee67178SXianjun Jiao NL80211_STA_INFO_TX_BITRATE, 29022ee67178SXianjun Jiao NL80211_STA_INFO_RX_PACKETS, 29032ee67178SXianjun Jiao NL80211_STA_INFO_TX_PACKETS, 29042ee67178SXianjun Jiao NL80211_STA_INFO_TX_RETRIES, 29052ee67178SXianjun Jiao NL80211_STA_INFO_TX_FAILED, 29062ee67178SXianjun Jiao NL80211_STA_INFO_SIGNAL_AVG, 29072ee67178SXianjun Jiao NL80211_STA_INFO_RX_BITRATE, 29082ee67178SXianjun Jiao NL80211_STA_INFO_BSS_PARAM, 29092ee67178SXianjun Jiao NL80211_STA_INFO_CONNECTED_TIME, 29102ee67178SXianjun Jiao NL80211_STA_INFO_STA_FLAGS, 29112ee67178SXianjun Jiao NL80211_STA_INFO_BEACON_LOSS, 29122ee67178SXianjun Jiao NL80211_STA_INFO_T_OFFSET, 29132ee67178SXianjun Jiao NL80211_STA_INFO_LOCAL_PM, 29142ee67178SXianjun Jiao NL80211_STA_INFO_PEER_PM, 29152ee67178SXianjun Jiao NL80211_STA_INFO_NONPEER_PM, 29162ee67178SXianjun Jiao NL80211_STA_INFO_RX_BYTES64, 29172ee67178SXianjun Jiao NL80211_STA_INFO_TX_BYTES64, 29182ee67178SXianjun Jiao NL80211_STA_INFO_CHAIN_SIGNAL, 29192ee67178SXianjun Jiao NL80211_STA_INFO_CHAIN_SIGNAL_AVG, 29202ee67178SXianjun Jiao NL80211_STA_INFO_EXPECTED_THROUGHPUT, 29214ecf49bbSJiao Xianjun NL80211_STA_INFO_RX_DROP_MISC, 29224ecf49bbSJiao Xianjun NL80211_STA_INFO_BEACON_RX, 29234ecf49bbSJiao Xianjun NL80211_STA_INFO_BEACON_SIGNAL_AVG, 29244ecf49bbSJiao Xianjun NL80211_STA_INFO_TID_STATS, 29254ecf49bbSJiao Xianjun NL80211_STA_INFO_RX_DURATION, 29264ecf49bbSJiao Xianjun NL80211_STA_INFO_PAD, 29272ee67178SXianjun Jiao 29282ee67178SXianjun Jiao /* keep last */ 29292ee67178SXianjun Jiao __NL80211_STA_INFO_AFTER_LAST, 29302ee67178SXianjun Jiao NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 29312ee67178SXianjun Jiao }; 29322ee67178SXianjun Jiao 29332ee67178SXianjun Jiao /** 29344ecf49bbSJiao Xianjun * enum nl80211_tid_stats - per TID statistics attributes 29354ecf49bbSJiao Xianjun * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved 29364ecf49bbSJiao Xianjun * @NL80211_TID_STATS_RX_MSDU: number of MSDUs received (u64) 29374ecf49bbSJiao Xianjun * @NL80211_TID_STATS_TX_MSDU: number of MSDUs transmitted (or 29384ecf49bbSJiao Xianjun * attempted to transmit; u64) 29394ecf49bbSJiao Xianjun * @NL80211_TID_STATS_TX_MSDU_RETRIES: number of retries for 29404ecf49bbSJiao Xianjun * transmitted MSDUs (not counting the first attempt; u64) 29414ecf49bbSJiao Xianjun * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted 29424ecf49bbSJiao Xianjun * MSDUs (u64) 29434ecf49bbSJiao Xianjun * @NL80211_TID_STATS_PAD: attribute used for padding for 64-bit alignment 29444ecf49bbSJiao Xianjun * @NUM_NL80211_TID_STATS: number of attributes here 29454ecf49bbSJiao Xianjun * @NL80211_TID_STATS_MAX: highest numbered attribute here 29464ecf49bbSJiao Xianjun */ 29474ecf49bbSJiao Xianjun enum nl80211_tid_stats { 29484ecf49bbSJiao Xianjun __NL80211_TID_STATS_INVALID, 29494ecf49bbSJiao Xianjun NL80211_TID_STATS_RX_MSDU, 29504ecf49bbSJiao Xianjun NL80211_TID_STATS_TX_MSDU, 29514ecf49bbSJiao Xianjun NL80211_TID_STATS_TX_MSDU_RETRIES, 29524ecf49bbSJiao Xianjun NL80211_TID_STATS_TX_MSDU_FAILED, 29534ecf49bbSJiao Xianjun NL80211_TID_STATS_PAD, 29544ecf49bbSJiao Xianjun 29554ecf49bbSJiao Xianjun /* keep last */ 29564ecf49bbSJiao Xianjun NUM_NL80211_TID_STATS, 29574ecf49bbSJiao Xianjun NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1 29584ecf49bbSJiao Xianjun }; 29594ecf49bbSJiao Xianjun 29604ecf49bbSJiao Xianjun /** 29612ee67178SXianjun Jiao * enum nl80211_mpath_flags - nl80211 mesh path flags 29622ee67178SXianjun Jiao * 29632ee67178SXianjun Jiao * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active 29642ee67178SXianjun Jiao * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running 29652ee67178SXianjun Jiao * @NL80211_MPATH_FLAG_SN_VALID: the mesh path contains a valid SN 29662ee67178SXianjun Jiao * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set 29672ee67178SXianjun Jiao * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded 29682ee67178SXianjun Jiao */ 29692ee67178SXianjun Jiao enum nl80211_mpath_flags { 29702ee67178SXianjun Jiao NL80211_MPATH_FLAG_ACTIVE = 1<<0, 29712ee67178SXianjun Jiao NL80211_MPATH_FLAG_RESOLVING = 1<<1, 29722ee67178SXianjun Jiao NL80211_MPATH_FLAG_SN_VALID = 1<<2, 29732ee67178SXianjun Jiao NL80211_MPATH_FLAG_FIXED = 1<<3, 29742ee67178SXianjun Jiao NL80211_MPATH_FLAG_RESOLVED = 1<<4, 29752ee67178SXianjun Jiao }; 29762ee67178SXianjun Jiao 29772ee67178SXianjun Jiao /** 29782ee67178SXianjun Jiao * enum nl80211_mpath_info - mesh path information 29792ee67178SXianjun Jiao * 29802ee67178SXianjun Jiao * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting 29812ee67178SXianjun Jiao * information about a mesh path. 29822ee67178SXianjun Jiao * 29832ee67178SXianjun Jiao * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved 29842ee67178SXianjun Jiao * @NL80211_MPATH_INFO_FRAME_QLEN: number of queued frames for this destination 29852ee67178SXianjun Jiao * @NL80211_MPATH_INFO_SN: destination sequence number 29862ee67178SXianjun Jiao * @NL80211_MPATH_INFO_METRIC: metric (cost) of this mesh path 29872ee67178SXianjun Jiao * @NL80211_MPATH_INFO_EXPTIME: expiration time for the path, in msec from now 29882ee67178SXianjun Jiao * @NL80211_MPATH_INFO_FLAGS: mesh path flags, enumerated in 29892ee67178SXianjun Jiao * &enum nl80211_mpath_flags; 29902ee67178SXianjun Jiao * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec 29912ee67178SXianjun Jiao * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries 29922ee67178SXianjun Jiao * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number 2993*b1dd94e3Sluz paz * currently defined 29942ee67178SXianjun Jiao * @__NL80211_MPATH_INFO_AFTER_LAST: internal use 29952ee67178SXianjun Jiao */ 29962ee67178SXianjun Jiao enum nl80211_mpath_info { 29972ee67178SXianjun Jiao __NL80211_MPATH_INFO_INVALID, 29982ee67178SXianjun Jiao NL80211_MPATH_INFO_FRAME_QLEN, 29992ee67178SXianjun Jiao NL80211_MPATH_INFO_SN, 30002ee67178SXianjun Jiao NL80211_MPATH_INFO_METRIC, 30012ee67178SXianjun Jiao NL80211_MPATH_INFO_EXPTIME, 30022ee67178SXianjun Jiao NL80211_MPATH_INFO_FLAGS, 30032ee67178SXianjun Jiao NL80211_MPATH_INFO_DISCOVERY_TIMEOUT, 30042ee67178SXianjun Jiao NL80211_MPATH_INFO_DISCOVERY_RETRIES, 30052ee67178SXianjun Jiao 30062ee67178SXianjun Jiao /* keep last */ 30072ee67178SXianjun Jiao __NL80211_MPATH_INFO_AFTER_LAST, 30082ee67178SXianjun Jiao NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 30092ee67178SXianjun Jiao }; 30102ee67178SXianjun Jiao 30112ee67178SXianjun Jiao /** 30122ee67178SXianjun Jiao * enum nl80211_band_attr - band attributes 30132ee67178SXianjun Jiao * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved 30142ee67178SXianjun Jiao * @NL80211_BAND_ATTR_FREQS: supported frequencies in this band, 30152ee67178SXianjun Jiao * an array of nested frequency attributes 30162ee67178SXianjun Jiao * @NL80211_BAND_ATTR_RATES: supported bitrates in this band, 30172ee67178SXianjun Jiao * an array of nested bitrate attributes 30182ee67178SXianjun Jiao * @NL80211_BAND_ATTR_HT_MCS_SET: 16-byte attribute containing the MCS set as 30192ee67178SXianjun Jiao * defined in 802.11n 30202ee67178SXianjun Jiao * @NL80211_BAND_ATTR_HT_CAPA: HT capabilities, as in the HT information IE 30212ee67178SXianjun Jiao * @NL80211_BAND_ATTR_HT_AMPDU_FACTOR: A-MPDU factor, as in 11n 30222ee67178SXianjun Jiao * @NL80211_BAND_ATTR_HT_AMPDU_DENSITY: A-MPDU density, as in 11n 30232ee67178SXianjun Jiao * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as 30242ee67178SXianjun Jiao * defined in 802.11ac 30252ee67178SXianjun Jiao * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE 30262ee67178SXianjun Jiao * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined 30272ee67178SXianjun Jiao * @__NL80211_BAND_ATTR_AFTER_LAST: internal use 30282ee67178SXianjun Jiao */ 30292ee67178SXianjun Jiao enum nl80211_band_attr { 30302ee67178SXianjun Jiao __NL80211_BAND_ATTR_INVALID, 30312ee67178SXianjun Jiao NL80211_BAND_ATTR_FREQS, 30322ee67178SXianjun Jiao NL80211_BAND_ATTR_RATES, 30332ee67178SXianjun Jiao 30342ee67178SXianjun Jiao NL80211_BAND_ATTR_HT_MCS_SET, 30352ee67178SXianjun Jiao NL80211_BAND_ATTR_HT_CAPA, 30362ee67178SXianjun Jiao NL80211_BAND_ATTR_HT_AMPDU_FACTOR, 30372ee67178SXianjun Jiao NL80211_BAND_ATTR_HT_AMPDU_DENSITY, 30382ee67178SXianjun Jiao 30392ee67178SXianjun Jiao NL80211_BAND_ATTR_VHT_MCS_SET, 30402ee67178SXianjun Jiao NL80211_BAND_ATTR_VHT_CAPA, 30412ee67178SXianjun Jiao 30422ee67178SXianjun Jiao /* keep last */ 30432ee67178SXianjun Jiao __NL80211_BAND_ATTR_AFTER_LAST, 30442ee67178SXianjun Jiao NL80211_BAND_ATTR_MAX = __NL80211_BAND_ATTR_AFTER_LAST - 1 30452ee67178SXianjun Jiao }; 30462ee67178SXianjun Jiao 30472ee67178SXianjun Jiao #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA 30482ee67178SXianjun Jiao 30492ee67178SXianjun Jiao /** 30502ee67178SXianjun Jiao * enum nl80211_frequency_attr - frequency attributes 30512ee67178SXianjun Jiao * @__NL80211_FREQUENCY_ATTR_INVALID: attribute number 0 is reserved 30522ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz 30532ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current 30542ee67178SXianjun Jiao * regulatory domain. 30552ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation 30562ee67178SXianjun Jiao * are permitted on this channel, this includes sending probe 30572ee67178SXianjun Jiao * requests, or modes of operation that require beaconing. 30582ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory 30592ee67178SXianjun Jiao * on this channel in current regulatory domain. 30602ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm 30612ee67178SXianjun Jiao * (100 * dBm). 30622ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS 30632ee67178SXianjun Jiao * (enum nl80211_dfs_state) 3064*b1dd94e3Sluz paz * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in milliseconds for how long 30652ee67178SXianjun Jiao * this channel is in this DFS state. 30662ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this 30672ee67178SXianjun Jiao * channel as the control channel 30682ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_HT40_PLUS: HT40+ isn't possible with this 30692ee67178SXianjun Jiao * channel as the control channel 30702ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_80MHZ: any 80 MHz channel using this channel 30712ee67178SXianjun Jiao * as the primary or any of the secondary channels isn't possible, 30722ee67178SXianjun Jiao * this includes 80+80 channels 30732ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel 30742ee67178SXianjun Jiao * using this channel as the primary or any of the secondary channels 30752ee67178SXianjun Jiao * isn't possible 30762ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. 30772ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_INDOOR_ONLY: Only indoor use is permitted on this 30782ee67178SXianjun Jiao * channel. A channel that has the INDOOR_ONLY attribute can only be 30792ee67178SXianjun Jiao * used when there is a clear assessment that the device is operating in 30802ee67178SXianjun Jiao * an indoor surroundings, i.e., it is connected to AC power (and not 30812ee67178SXianjun Jiao * through portable DC inverters) or is under the control of a master 30822ee67178SXianjun Jiao * that is acting as an AP and is connected to AC power. 30834ecf49bbSJiao Xianjun * @NL80211_FREQUENCY_ATTR_IR_CONCURRENT: IR operation is allowed on this 30842ee67178SXianjun Jiao * channel if it's connected concurrently to a BSS on the same channel on 30852ee67178SXianjun Jiao * the 2 GHz band or to a channel in the same UNII band (on the 5 GHz 30864ecf49bbSJiao Xianjun * band), and IEEE80211_CHAN_RADAR is not set. Instantiating a GO or TDLS 30874ecf49bbSJiao Xianjun * off-channel on a channel that has the IR_CONCURRENT attribute set can be 30884ecf49bbSJiao Xianjun * done when there is a clear assessment that the device is operating under 30894ecf49bbSJiao Xianjun * the guidance of an authorized master, i.e., setting up a GO or TDLS 30904ecf49bbSJiao Xianjun * off-channel while the device is also connected to an AP with DFS and 30914ecf49bbSJiao Xianjun * radar detection on the UNII band (it is up to user-space, i.e., 30924ecf49bbSJiao Xianjun * wpa_supplicant to perform the required verifications). Using this 30934ecf49bbSJiao Xianjun * attribute for IR is disallowed for master interfaces (IBSS, AP). 30942ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_20MHZ: 20 MHz operation is not allowed 30952ee67178SXianjun Jiao * on this channel in current regulatory domain. 30962ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_NO_10MHZ: 10 MHz operation is not allowed 30972ee67178SXianjun Jiao * on this channel in current regulatory domain. 30982ee67178SXianjun Jiao * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number 30992ee67178SXianjun Jiao * currently defined 31002ee67178SXianjun Jiao * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use 31012ee67178SXianjun Jiao * 31022ee67178SXianjun Jiao * See https://apps.fcc.gov/eas/comments/GetPublishedDocument.html?id=327&tn=528122 31032ee67178SXianjun Jiao * for more information on the FCC description of the relaxations allowed 31042ee67178SXianjun Jiao * by NL80211_FREQUENCY_ATTR_INDOOR_ONLY and 31054ecf49bbSJiao Xianjun * NL80211_FREQUENCY_ATTR_IR_CONCURRENT. 31062ee67178SXianjun Jiao */ 31072ee67178SXianjun Jiao enum nl80211_frequency_attr { 31082ee67178SXianjun Jiao __NL80211_FREQUENCY_ATTR_INVALID, 31092ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_FREQ, 31102ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_DISABLED, 31112ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_IR, 31122ee67178SXianjun Jiao __NL80211_FREQUENCY_ATTR_NO_IBSS, 31132ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_RADAR, 31142ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_MAX_TX_POWER, 31152ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_DFS_STATE, 31162ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_DFS_TIME, 31172ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_HT40_MINUS, 31182ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, 31192ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_80MHZ, 31202ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_160MHZ, 31212ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_DFS_CAC_TIME, 31222ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_INDOOR_ONLY, 31234ecf49bbSJiao Xianjun NL80211_FREQUENCY_ATTR_IR_CONCURRENT, 31242ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_20MHZ, 31252ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_NO_10MHZ, 31262ee67178SXianjun Jiao 31272ee67178SXianjun Jiao /* keep last */ 31282ee67178SXianjun Jiao __NL80211_FREQUENCY_ATTR_AFTER_LAST, 31292ee67178SXianjun Jiao NL80211_FREQUENCY_ATTR_MAX = __NL80211_FREQUENCY_ATTR_AFTER_LAST - 1 31302ee67178SXianjun Jiao }; 31312ee67178SXianjun Jiao 31322ee67178SXianjun Jiao #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER 31332ee67178SXianjun Jiao #define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR 31342ee67178SXianjun Jiao #define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR 31352ee67178SXianjun Jiao #define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR 31364ecf49bbSJiao Xianjun #define NL80211_FREQUENCY_ATTR_GO_CONCURRENT \ 31374ecf49bbSJiao Xianjun NL80211_FREQUENCY_ATTR_IR_CONCURRENT 31382ee67178SXianjun Jiao 31392ee67178SXianjun Jiao /** 31402ee67178SXianjun Jiao * enum nl80211_bitrate_attr - bitrate attributes 31412ee67178SXianjun Jiao * @__NL80211_BITRATE_ATTR_INVALID: attribute number 0 is reserved 31422ee67178SXianjun Jiao * @NL80211_BITRATE_ATTR_RATE: Bitrate in units of 100 kbps 31432ee67178SXianjun Jiao * @NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE: Short preamble supported 31442ee67178SXianjun Jiao * in 2.4 GHz band. 31452ee67178SXianjun Jiao * @NL80211_BITRATE_ATTR_MAX: highest bitrate attribute number 31462ee67178SXianjun Jiao * currently defined 31472ee67178SXianjun Jiao * @__NL80211_BITRATE_ATTR_AFTER_LAST: internal use 31482ee67178SXianjun Jiao */ 31492ee67178SXianjun Jiao enum nl80211_bitrate_attr { 31502ee67178SXianjun Jiao __NL80211_BITRATE_ATTR_INVALID, 31512ee67178SXianjun Jiao NL80211_BITRATE_ATTR_RATE, 31522ee67178SXianjun Jiao NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE, 31532ee67178SXianjun Jiao 31542ee67178SXianjun Jiao /* keep last */ 31552ee67178SXianjun Jiao __NL80211_BITRATE_ATTR_AFTER_LAST, 31562ee67178SXianjun Jiao NL80211_BITRATE_ATTR_MAX = __NL80211_BITRATE_ATTR_AFTER_LAST - 1 31572ee67178SXianjun Jiao }; 31582ee67178SXianjun Jiao 31592ee67178SXianjun Jiao /** 31602ee67178SXianjun Jiao * enum nl80211_initiator - Indicates the initiator of a reg domain request 31612ee67178SXianjun Jiao * @NL80211_REGDOM_SET_BY_CORE: Core queried CRDA for a dynamic world 31622ee67178SXianjun Jiao * regulatory domain. 31632ee67178SXianjun Jiao * @NL80211_REGDOM_SET_BY_USER: User asked the wireless core to set the 31642ee67178SXianjun Jiao * regulatory domain. 31652ee67178SXianjun Jiao * @NL80211_REGDOM_SET_BY_DRIVER: a wireless drivers has hinted to the 31662ee67178SXianjun Jiao * wireless core it thinks its knows the regulatory domain we should be in. 31672ee67178SXianjun Jiao * @NL80211_REGDOM_SET_BY_COUNTRY_IE: the wireless core has received an 31682ee67178SXianjun Jiao * 802.11 country information element with regulatory information it 31692ee67178SXianjun Jiao * thinks we should consider. cfg80211 only processes the country 31702ee67178SXianjun Jiao * code from the IE, and relies on the regulatory domain information 31712ee67178SXianjun Jiao * structure passed by userspace (CRDA) from our wireless-regdb. 31722ee67178SXianjun Jiao * If a channel is enabled but the country code indicates it should 31732ee67178SXianjun Jiao * be disabled we disable the channel and re-enable it upon disassociation. 31742ee67178SXianjun Jiao */ 31752ee67178SXianjun Jiao enum nl80211_reg_initiator { 31762ee67178SXianjun Jiao NL80211_REGDOM_SET_BY_CORE, 31772ee67178SXianjun Jiao NL80211_REGDOM_SET_BY_USER, 31782ee67178SXianjun Jiao NL80211_REGDOM_SET_BY_DRIVER, 31792ee67178SXianjun Jiao NL80211_REGDOM_SET_BY_COUNTRY_IE, 31802ee67178SXianjun Jiao }; 31812ee67178SXianjun Jiao 31822ee67178SXianjun Jiao /** 31832ee67178SXianjun Jiao * enum nl80211_reg_type - specifies the type of regulatory domain 31842ee67178SXianjun Jiao * @NL80211_REGDOM_TYPE_COUNTRY: the regulatory domain set is one that pertains 31852ee67178SXianjun Jiao * to a specific country. When this is set you can count on the 31862ee67178SXianjun Jiao * ISO / IEC 3166 alpha2 country code being valid. 31872ee67178SXianjun Jiao * @NL80211_REGDOM_TYPE_WORLD: the regulatory set domain is the world regulatory 31882ee67178SXianjun Jiao * domain. 31892ee67178SXianjun Jiao * @NL80211_REGDOM_TYPE_CUSTOM_WORLD: the regulatory domain set is a custom 31902ee67178SXianjun Jiao * driver specific world regulatory domain. These do not apply system-wide 31912ee67178SXianjun Jiao * and are only applicable to the individual devices which have requested 31922ee67178SXianjun Jiao * them to be applied. 31932ee67178SXianjun Jiao * @NL80211_REGDOM_TYPE_INTERSECTION: the regulatory domain set is the product 31942ee67178SXianjun Jiao * of an intersection between two regulatory domains -- the previously 31952ee67178SXianjun Jiao * set regulatory domain on the system and the last accepted regulatory 31962ee67178SXianjun Jiao * domain request to be processed. 31972ee67178SXianjun Jiao */ 31982ee67178SXianjun Jiao enum nl80211_reg_type { 31992ee67178SXianjun Jiao NL80211_REGDOM_TYPE_COUNTRY, 32002ee67178SXianjun Jiao NL80211_REGDOM_TYPE_WORLD, 32012ee67178SXianjun Jiao NL80211_REGDOM_TYPE_CUSTOM_WORLD, 32022ee67178SXianjun Jiao NL80211_REGDOM_TYPE_INTERSECTION, 32032ee67178SXianjun Jiao }; 32042ee67178SXianjun Jiao 32052ee67178SXianjun Jiao /** 32062ee67178SXianjun Jiao * enum nl80211_reg_rule_attr - regulatory rule attributes 32072ee67178SXianjun Jiao * @__NL80211_REG_RULE_ATTR_INVALID: attribute number 0 is reserved 32082ee67178SXianjun Jiao * @NL80211_ATTR_REG_RULE_FLAGS: a set of flags which specify additional 32092ee67178SXianjun Jiao * considerations for a given frequency range. These are the 32102ee67178SXianjun Jiao * &enum nl80211_reg_rule_flags. 32112ee67178SXianjun Jiao * @NL80211_ATTR_FREQ_RANGE_START: starting frequencry for the regulatory 32122ee67178SXianjun Jiao * rule in KHz. This is not a center of frequency but an actual regulatory 32132ee67178SXianjun Jiao * band edge. 32142ee67178SXianjun Jiao * @NL80211_ATTR_FREQ_RANGE_END: ending frequency for the regulatory rule 32152ee67178SXianjun Jiao * in KHz. This is not a center a frequency but an actual regulatory 32162ee67178SXianjun Jiao * band edge. 32172ee67178SXianjun Jiao * @NL80211_ATTR_FREQ_RANGE_MAX_BW: maximum allowed bandwidth for this 32182ee67178SXianjun Jiao * frequency range, in KHz. 32192ee67178SXianjun Jiao * @NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN: the maximum allowed antenna gain 32202ee67178SXianjun Jiao * for a given frequency range. The value is in mBi (100 * dBi). 32212ee67178SXianjun Jiao * If you don't have one then don't send this. 32222ee67178SXianjun Jiao * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for 32232ee67178SXianjun Jiao * a given frequency range. The value is in mBm (100 * dBm). 32242ee67178SXianjun Jiao * @NL80211_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. 32252ee67178SXianjun Jiao * If not present or 0 default CAC time will be used. 32262ee67178SXianjun Jiao * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number 32272ee67178SXianjun Jiao * currently defined 32282ee67178SXianjun Jiao * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use 32292ee67178SXianjun Jiao */ 32302ee67178SXianjun Jiao enum nl80211_reg_rule_attr { 32312ee67178SXianjun Jiao __NL80211_REG_RULE_ATTR_INVALID, 32322ee67178SXianjun Jiao NL80211_ATTR_REG_RULE_FLAGS, 32332ee67178SXianjun Jiao 32342ee67178SXianjun Jiao NL80211_ATTR_FREQ_RANGE_START, 32352ee67178SXianjun Jiao NL80211_ATTR_FREQ_RANGE_END, 32362ee67178SXianjun Jiao NL80211_ATTR_FREQ_RANGE_MAX_BW, 32372ee67178SXianjun Jiao 32382ee67178SXianjun Jiao NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, 32392ee67178SXianjun Jiao NL80211_ATTR_POWER_RULE_MAX_EIRP, 32402ee67178SXianjun Jiao 32412ee67178SXianjun Jiao NL80211_ATTR_DFS_CAC_TIME, 32422ee67178SXianjun Jiao 32432ee67178SXianjun Jiao /* keep last */ 32442ee67178SXianjun Jiao __NL80211_REG_RULE_ATTR_AFTER_LAST, 32452ee67178SXianjun Jiao NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 32462ee67178SXianjun Jiao }; 32472ee67178SXianjun Jiao 32482ee67178SXianjun Jiao /** 32492ee67178SXianjun Jiao * enum nl80211_sched_scan_match_attr - scheduled scan match attributes 32502ee67178SXianjun Jiao * @__NL80211_SCHED_SCAN_MATCH_ATTR_INVALID: attribute number 0 is reserved 32512ee67178SXianjun Jiao * @NL80211_SCHED_SCAN_MATCH_ATTR_SSID: SSID to be used for matching, 32522ee67178SXianjun Jiao * only report BSS with matching SSID. 32534ecf49bbSJiao Xianjun * (This cannot be used together with BSSID.) 32542ee67178SXianjun Jiao * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI: RSSI threshold (in dBm) for reporting a 32552ee67178SXianjun Jiao * BSS in scan results. Filtering is turned off if not specified. Note that 32562ee67178SXianjun Jiao * if this attribute is in a match set of its own, then it is treated as 32572ee67178SXianjun Jiao * the default value for all matchsets with an SSID, rather than being a 32582ee67178SXianjun Jiao * matchset of its own without an RSSI filter. This is due to problems with 32592ee67178SXianjun Jiao * how this API was implemented in the past. Also, due to the same problem, 32602ee67178SXianjun Jiao * the only way to create a matchset with only an RSSI filter (with this 32612ee67178SXianjun Jiao * attribute) is if there's only a single matchset with the RSSI attribute. 32624ecf49bbSJiao Xianjun * @NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI: Flag indicating whether 32634ecf49bbSJiao Xianjun * %NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to be used as absolute RSSI or 32644ecf49bbSJiao Xianjun * relative to current bss's RSSI. 32654ecf49bbSJiao Xianjun * @NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST: When present the RSSI level for 32664ecf49bbSJiao Xianjun * BSS-es in the specified band is to be adjusted before doing 32674ecf49bbSJiao Xianjun * RSSI-based BSS selection. The attribute value is a packed structure 32684ecf49bbSJiao Xianjun * value as specified by &struct nl80211_bss_select_rssi_adjust. 32694ecf49bbSJiao Xianjun * @NL80211_SCHED_SCAN_MATCH_ATTR_BSSID: BSSID to be used for matching 32704ecf49bbSJiao Xianjun * (this cannot be used together with SSID). 32712ee67178SXianjun Jiao * @NL80211_SCHED_SCAN_MATCH_ATTR_MAX: highest scheduled scan filter 32722ee67178SXianjun Jiao * attribute number currently defined 32732ee67178SXianjun Jiao * @__NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST: internal use 32742ee67178SXianjun Jiao */ 32752ee67178SXianjun Jiao enum nl80211_sched_scan_match_attr { 32762ee67178SXianjun Jiao __NL80211_SCHED_SCAN_MATCH_ATTR_INVALID, 32772ee67178SXianjun Jiao 32782ee67178SXianjun Jiao NL80211_SCHED_SCAN_MATCH_ATTR_SSID, 32792ee67178SXianjun Jiao NL80211_SCHED_SCAN_MATCH_ATTR_RSSI, 32804ecf49bbSJiao Xianjun NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI, 32814ecf49bbSJiao Xianjun NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST, 32824ecf49bbSJiao Xianjun NL80211_SCHED_SCAN_MATCH_ATTR_BSSID, 32832ee67178SXianjun Jiao 32842ee67178SXianjun Jiao /* keep last */ 32852ee67178SXianjun Jiao __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST, 32862ee67178SXianjun Jiao NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 32872ee67178SXianjun Jiao __NL80211_SCHED_SCAN_MATCH_ATTR_AFTER_LAST - 1 32882ee67178SXianjun Jiao }; 32892ee67178SXianjun Jiao 32902ee67178SXianjun Jiao /* only for backward compatibility */ 32912ee67178SXianjun Jiao #define NL80211_ATTR_SCHED_SCAN_MATCH_SSID NL80211_SCHED_SCAN_MATCH_ATTR_SSID 32922ee67178SXianjun Jiao 32932ee67178SXianjun Jiao /** 32942ee67178SXianjun Jiao * enum nl80211_reg_rule_flags - regulatory rule flags 32952ee67178SXianjun Jiao * 32962ee67178SXianjun Jiao * @NL80211_RRF_NO_OFDM: OFDM modulation not allowed 32972ee67178SXianjun Jiao * @NL80211_RRF_NO_CCK: CCK modulation not allowed 32982ee67178SXianjun Jiao * @NL80211_RRF_NO_INDOOR: indoor operation not allowed 32992ee67178SXianjun Jiao * @NL80211_RRF_NO_OUTDOOR: outdoor operation not allowed 33002ee67178SXianjun Jiao * @NL80211_RRF_DFS: DFS support is required to be used 33012ee67178SXianjun Jiao * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links 33022ee67178SXianjun Jiao * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links 33032ee67178SXianjun Jiao * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed, 33042ee67178SXianjun Jiao * this includes probe requests or modes of operation that require 33052ee67178SXianjun Jiao * beaconing. 33062ee67178SXianjun Jiao * @NL80211_RRF_AUTO_BW: maximum available bandwidth should be calculated 33072ee67178SXianjun Jiao * base on contiguous rules and wider channels will be allowed to cross 33082ee67178SXianjun Jiao * multiple contiguous/overlapping frequency ranges. 33094ecf49bbSJiao Xianjun * @NL80211_RRF_IR_CONCURRENT: See &NL80211_FREQUENCY_ATTR_IR_CONCURRENT 33104ecf49bbSJiao Xianjun * @NL80211_RRF_NO_HT40MINUS: channels can't be used in HT40- operation 33114ecf49bbSJiao Xianjun * @NL80211_RRF_NO_HT40PLUS: channels can't be used in HT40+ operation 33124ecf49bbSJiao Xianjun * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed 33134ecf49bbSJiao Xianjun * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed 33142ee67178SXianjun Jiao */ 33152ee67178SXianjun Jiao enum nl80211_reg_rule_flags { 33162ee67178SXianjun Jiao NL80211_RRF_NO_OFDM = 1<<0, 33172ee67178SXianjun Jiao NL80211_RRF_NO_CCK = 1<<1, 33182ee67178SXianjun Jiao NL80211_RRF_NO_INDOOR = 1<<2, 33192ee67178SXianjun Jiao NL80211_RRF_NO_OUTDOOR = 1<<3, 33202ee67178SXianjun Jiao NL80211_RRF_DFS = 1<<4, 33212ee67178SXianjun Jiao NL80211_RRF_PTP_ONLY = 1<<5, 33222ee67178SXianjun Jiao NL80211_RRF_PTMP_ONLY = 1<<6, 33232ee67178SXianjun Jiao NL80211_RRF_NO_IR = 1<<7, 33242ee67178SXianjun Jiao __NL80211_RRF_NO_IBSS = 1<<8, 33252ee67178SXianjun Jiao NL80211_RRF_AUTO_BW = 1<<11, 33264ecf49bbSJiao Xianjun NL80211_RRF_IR_CONCURRENT = 1<<12, 33274ecf49bbSJiao Xianjun NL80211_RRF_NO_HT40MINUS = 1<<13, 33284ecf49bbSJiao Xianjun NL80211_RRF_NO_HT40PLUS = 1<<14, 33294ecf49bbSJiao Xianjun NL80211_RRF_NO_80MHZ = 1<<15, 33304ecf49bbSJiao Xianjun NL80211_RRF_NO_160MHZ = 1<<16, 33312ee67178SXianjun Jiao }; 33322ee67178SXianjun Jiao 33332ee67178SXianjun Jiao #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR 33342ee67178SXianjun Jiao #define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR 33352ee67178SXianjun Jiao #define NL80211_RRF_NO_IR NL80211_RRF_NO_IR 33364ecf49bbSJiao Xianjun #define NL80211_RRF_NO_HT40 (NL80211_RRF_NO_HT40MINUS |\ 33374ecf49bbSJiao Xianjun NL80211_RRF_NO_HT40PLUS) 33384ecf49bbSJiao Xianjun #define NL80211_RRF_GO_CONCURRENT NL80211_RRF_IR_CONCURRENT 33392ee67178SXianjun Jiao 33402ee67178SXianjun Jiao /* For backport compatibility with older userspace */ 33412ee67178SXianjun Jiao #define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS) 33422ee67178SXianjun Jiao 33432ee67178SXianjun Jiao /** 33442ee67178SXianjun Jiao * enum nl80211_dfs_regions - regulatory DFS regions 33452ee67178SXianjun Jiao * 33462ee67178SXianjun Jiao * @NL80211_DFS_UNSET: Country has no DFS master region specified 33472ee67178SXianjun Jiao * @NL80211_DFS_FCC: Country follows DFS master rules from FCC 33482ee67178SXianjun Jiao * @NL80211_DFS_ETSI: Country follows DFS master rules from ETSI 33492ee67178SXianjun Jiao * @NL80211_DFS_JP: Country follows DFS master rules from JP/MKK/Telec 33502ee67178SXianjun Jiao */ 33512ee67178SXianjun Jiao enum nl80211_dfs_regions { 33522ee67178SXianjun Jiao NL80211_DFS_UNSET = 0, 33532ee67178SXianjun Jiao NL80211_DFS_FCC = 1, 33542ee67178SXianjun Jiao NL80211_DFS_ETSI = 2, 33552ee67178SXianjun Jiao NL80211_DFS_JP = 3, 33562ee67178SXianjun Jiao }; 33572ee67178SXianjun Jiao 33582ee67178SXianjun Jiao /** 33592ee67178SXianjun Jiao * enum nl80211_user_reg_hint_type - type of user regulatory hint 33602ee67178SXianjun Jiao * 33612ee67178SXianjun Jiao * @NL80211_USER_REG_HINT_USER: a user sent the hint. This is always 33622ee67178SXianjun Jiao * assumed if the attribute is not set. 33632ee67178SXianjun Jiao * @NL80211_USER_REG_HINT_CELL_BASE: the hint comes from a cellular 33642ee67178SXianjun Jiao * base station. Device drivers that have been tested to work 33652ee67178SXianjun Jiao * properly to support this type of hint can enable these hints 33662ee67178SXianjun Jiao * by setting the NL80211_FEATURE_CELL_BASE_REG_HINTS feature 33672ee67178SXianjun Jiao * capability on the struct wiphy. The wireless core will 33682ee67178SXianjun Jiao * ignore all cell base station hints until at least one device 33692ee67178SXianjun Jiao * present has been registered with the wireless core that 33702ee67178SXianjun Jiao * has listed NL80211_FEATURE_CELL_BASE_REG_HINTS as a 33712ee67178SXianjun Jiao * supported feature. 33722ee67178SXianjun Jiao * @NL80211_USER_REG_HINT_INDOOR: a user sent an hint indicating that the 33732ee67178SXianjun Jiao * platform is operating in an indoor environment. 33742ee67178SXianjun Jiao */ 33752ee67178SXianjun Jiao enum nl80211_user_reg_hint_type { 33762ee67178SXianjun Jiao NL80211_USER_REG_HINT_USER = 0, 33772ee67178SXianjun Jiao NL80211_USER_REG_HINT_CELL_BASE = 1, 33782ee67178SXianjun Jiao NL80211_USER_REG_HINT_INDOOR = 2, 33792ee67178SXianjun Jiao }; 33802ee67178SXianjun Jiao 33812ee67178SXianjun Jiao /** 33822ee67178SXianjun Jiao * enum nl80211_survey_info - survey information 33832ee67178SXianjun Jiao * 33842ee67178SXianjun Jiao * These attribute types are used with %NL80211_ATTR_SURVEY_INFO 33852ee67178SXianjun Jiao * when getting information about a survey. 33862ee67178SXianjun Jiao * 33872ee67178SXianjun Jiao * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved 33882ee67178SXianjun Jiao * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel 33892ee67178SXianjun Jiao * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm) 33902ee67178SXianjun Jiao * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used 33914ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_TIME: amount of time (in ms) that the radio 33924ecf49bbSJiao Xianjun * was turned on (on channel or globally) 33934ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_TIME_BUSY: amount of the time the primary 33942ee67178SXianjun Jiao * channel was sensed busy (either due to activity or energy detect) 33954ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_TIME_EXT_BUSY: amount of time the extension 33962ee67178SXianjun Jiao * channel was sensed busy 33974ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_TIME_RX: amount of time the radio spent 33984ecf49bbSJiao Xianjun * receiving data (on channel or globally) 33994ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_TIME_TX: amount of time the radio spent 34004ecf49bbSJiao Xianjun * transmitting data (on channel or globally) 34014ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan 34024ecf49bbSJiao Xianjun * (on this channel or globally) 34034ecf49bbSJiao Xianjun * @NL80211_SURVEY_INFO_PAD: attribute used for padding for 64-bit alignment 34042ee67178SXianjun Jiao * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number 34052ee67178SXianjun Jiao * currently defined 34062ee67178SXianjun Jiao * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use 34072ee67178SXianjun Jiao */ 34082ee67178SXianjun Jiao enum nl80211_survey_info { 34092ee67178SXianjun Jiao __NL80211_SURVEY_INFO_INVALID, 34102ee67178SXianjun Jiao NL80211_SURVEY_INFO_FREQUENCY, 34112ee67178SXianjun Jiao NL80211_SURVEY_INFO_NOISE, 34122ee67178SXianjun Jiao NL80211_SURVEY_INFO_IN_USE, 34134ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_TIME, 34144ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_TIME_BUSY, 34154ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_TIME_EXT_BUSY, 34164ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_TIME_RX, 34174ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_TIME_TX, 34184ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_TIME_SCAN, 34194ecf49bbSJiao Xianjun NL80211_SURVEY_INFO_PAD, 34202ee67178SXianjun Jiao 34212ee67178SXianjun Jiao /* keep last */ 34222ee67178SXianjun Jiao __NL80211_SURVEY_INFO_AFTER_LAST, 34232ee67178SXianjun Jiao NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1 34242ee67178SXianjun Jiao }; 34252ee67178SXianjun Jiao 34264ecf49bbSJiao Xianjun /* keep old names for compatibility */ 34274ecf49bbSJiao Xianjun #define NL80211_SURVEY_INFO_CHANNEL_TIME NL80211_SURVEY_INFO_TIME 34284ecf49bbSJiao Xianjun #define NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY NL80211_SURVEY_INFO_TIME_BUSY 34294ecf49bbSJiao Xianjun #define NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY NL80211_SURVEY_INFO_TIME_EXT_BUSY 34304ecf49bbSJiao Xianjun #define NL80211_SURVEY_INFO_CHANNEL_TIME_RX NL80211_SURVEY_INFO_TIME_RX 34314ecf49bbSJiao Xianjun #define NL80211_SURVEY_INFO_CHANNEL_TIME_TX NL80211_SURVEY_INFO_TIME_TX 34324ecf49bbSJiao Xianjun 34332ee67178SXianjun Jiao /** 34342ee67178SXianjun Jiao * enum nl80211_mntr_flags - monitor configuration flags 34352ee67178SXianjun Jiao * 34362ee67178SXianjun Jiao * Monitor configuration flags. 34372ee67178SXianjun Jiao * 34382ee67178SXianjun Jiao * @__NL80211_MNTR_FLAG_INVALID: reserved 34392ee67178SXianjun Jiao * 34402ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_FCSFAIL: pass frames with bad FCS 34412ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP 34422ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_CONTROL: pass control frames 34432ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering 34442ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing. 34452ee67178SXianjun Jiao * overrides all other flags. 34462ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address 34472ee67178SXianjun Jiao * and ACK incoming unicast packets. 34482ee67178SXianjun Jiao * 34492ee67178SXianjun Jiao * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use 34502ee67178SXianjun Jiao * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag 34512ee67178SXianjun Jiao */ 34522ee67178SXianjun Jiao enum nl80211_mntr_flags { 34532ee67178SXianjun Jiao __NL80211_MNTR_FLAG_INVALID, 34542ee67178SXianjun Jiao NL80211_MNTR_FLAG_FCSFAIL, 34552ee67178SXianjun Jiao NL80211_MNTR_FLAG_PLCPFAIL, 34562ee67178SXianjun Jiao NL80211_MNTR_FLAG_CONTROL, 34572ee67178SXianjun Jiao NL80211_MNTR_FLAG_OTHER_BSS, 34582ee67178SXianjun Jiao NL80211_MNTR_FLAG_COOK_FRAMES, 34592ee67178SXianjun Jiao NL80211_MNTR_FLAG_ACTIVE, 34602ee67178SXianjun Jiao 34612ee67178SXianjun Jiao /* keep last */ 34622ee67178SXianjun Jiao __NL80211_MNTR_FLAG_AFTER_LAST, 34632ee67178SXianjun Jiao NL80211_MNTR_FLAG_MAX = __NL80211_MNTR_FLAG_AFTER_LAST - 1 34642ee67178SXianjun Jiao }; 34652ee67178SXianjun Jiao 34662ee67178SXianjun Jiao /** 34672ee67178SXianjun Jiao * enum nl80211_mesh_power_mode - mesh power save modes 34682ee67178SXianjun Jiao * 34692ee67178SXianjun Jiao * @NL80211_MESH_POWER_UNKNOWN: The mesh power mode of the mesh STA is 34702ee67178SXianjun Jiao * not known or has not been set yet. 34712ee67178SXianjun Jiao * @NL80211_MESH_POWER_ACTIVE: Active mesh power mode. The mesh STA is 34722ee67178SXianjun Jiao * in Awake state all the time. 34732ee67178SXianjun Jiao * @NL80211_MESH_POWER_LIGHT_SLEEP: Light sleep mode. The mesh STA will 34742ee67178SXianjun Jiao * alternate between Active and Doze states, but will wake up for 34752ee67178SXianjun Jiao * neighbor's beacons. 34762ee67178SXianjun Jiao * @NL80211_MESH_POWER_DEEP_SLEEP: Deep sleep mode. The mesh STA will 34772ee67178SXianjun Jiao * alternate between Active and Doze states, but may not wake up 34782ee67178SXianjun Jiao * for neighbor's beacons. 34792ee67178SXianjun Jiao * 34802ee67178SXianjun Jiao * @__NL80211_MESH_POWER_AFTER_LAST - internal use 34812ee67178SXianjun Jiao * @NL80211_MESH_POWER_MAX - highest possible power save level 34822ee67178SXianjun Jiao */ 34832ee67178SXianjun Jiao 34842ee67178SXianjun Jiao enum nl80211_mesh_power_mode { 34852ee67178SXianjun Jiao NL80211_MESH_POWER_UNKNOWN, 34862ee67178SXianjun Jiao NL80211_MESH_POWER_ACTIVE, 34872ee67178SXianjun Jiao NL80211_MESH_POWER_LIGHT_SLEEP, 34882ee67178SXianjun Jiao NL80211_MESH_POWER_DEEP_SLEEP, 34892ee67178SXianjun Jiao 34902ee67178SXianjun Jiao __NL80211_MESH_POWER_AFTER_LAST, 34912ee67178SXianjun Jiao NL80211_MESH_POWER_MAX = __NL80211_MESH_POWER_AFTER_LAST - 1 34922ee67178SXianjun Jiao }; 34932ee67178SXianjun Jiao 34942ee67178SXianjun Jiao /** 34952ee67178SXianjun Jiao * enum nl80211_meshconf_params - mesh configuration parameters 34962ee67178SXianjun Jiao * 34972ee67178SXianjun Jiao * Mesh configuration parameters. These can be changed while the mesh is 34982ee67178SXianjun Jiao * active. 34992ee67178SXianjun Jiao * 35002ee67178SXianjun Jiao * @__NL80211_MESHCONF_INVALID: internal use 35012ee67178SXianjun Jiao * 35022ee67178SXianjun Jiao * @NL80211_MESHCONF_RETRY_TIMEOUT: specifies the initial retry timeout in 35032ee67178SXianjun Jiao * millisecond units, used by the Peer Link Open message 35042ee67178SXianjun Jiao * 35052ee67178SXianjun Jiao * @NL80211_MESHCONF_CONFIRM_TIMEOUT: specifies the initial confirm timeout, in 35062ee67178SXianjun Jiao * millisecond units, used by the peer link management to close a peer link 35072ee67178SXianjun Jiao * 35082ee67178SXianjun Jiao * @NL80211_MESHCONF_HOLDING_TIMEOUT: specifies the holding timeout, in 35092ee67178SXianjun Jiao * millisecond units 35102ee67178SXianjun Jiao * 35112ee67178SXianjun Jiao * @NL80211_MESHCONF_MAX_PEER_LINKS: maximum number of peer links allowed 35122ee67178SXianjun Jiao * on this mesh interface 35132ee67178SXianjun Jiao * 35142ee67178SXianjun Jiao * @NL80211_MESHCONF_MAX_RETRIES: specifies the maximum number of peer link 35152ee67178SXianjun Jiao * open retries that can be sent to establish a new peer link instance in a 35162ee67178SXianjun Jiao * mesh 35172ee67178SXianjun Jiao * 35182ee67178SXianjun Jiao * @NL80211_MESHCONF_TTL: specifies the value of TTL field set at a source mesh 35192ee67178SXianjun Jiao * point. 35202ee67178SXianjun Jiao * 35212ee67178SXianjun Jiao * @NL80211_MESHCONF_AUTO_OPEN_PLINKS: whether we should automatically open 35222ee67178SXianjun Jiao * peer links when we detect compatible mesh peers. Disabled if 35232ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_MPM or @NL80211_MESH_SETUP_USERSPACE_AMPE are 35242ee67178SXianjun Jiao * set. 35252ee67178SXianjun Jiao * 35262ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES: the number of action frames 35272ee67178SXianjun Jiao * containing a PREQ that an MP can send to a particular destination (path 35282ee67178SXianjun Jiao * target) 35292ee67178SXianjun Jiao * 35302ee67178SXianjun Jiao * @NL80211_MESHCONF_PATH_REFRESH_TIME: how frequently to refresh mesh paths 35312ee67178SXianjun Jiao * (in milliseconds) 35322ee67178SXianjun Jiao * 35332ee67178SXianjun Jiao * @NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT: minimum length of time to wait 35342ee67178SXianjun Jiao * until giving up on a path discovery (in milliseconds) 35352ee67178SXianjun Jiao * 35362ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT: The time (in TUs) for which mesh 35372ee67178SXianjun Jiao * points receiving a PREQ shall consider the forwarding information from 35382ee67178SXianjun Jiao * the root to be valid. (TU = time unit) 35392ee67178SXianjun Jiao * 35402ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL: The minimum interval of time (in 35412ee67178SXianjun Jiao * TUs) during which an MP can send only one action frame containing a PREQ 35422ee67178SXianjun Jiao * reference element 35432ee67178SXianjun Jiao * 35442ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME: The interval of time (in TUs) 35452ee67178SXianjun Jiao * that it takes for an HWMP information element to propagate across the 35462ee67178SXianjun Jiao * mesh 35472ee67178SXianjun Jiao * 35482ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_ROOTMODE: whether root mode is enabled or not 35492ee67178SXianjun Jiao * 35502ee67178SXianjun Jiao * @NL80211_MESHCONF_ELEMENT_TTL: specifies the value of TTL field set at a 35512ee67178SXianjun Jiao * source mesh point for path selection elements. 35522ee67178SXianjun Jiao * 35532ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_RANN_INTERVAL: The interval of time (in TUs) between 35542ee67178SXianjun Jiao * root announcements are transmitted. 35552ee67178SXianjun Jiao * 35562ee67178SXianjun Jiao * @NL80211_MESHCONF_GATE_ANNOUNCEMENTS: Advertise that this mesh station has 35572ee67178SXianjun Jiao * access to a broader network beyond the MBSS. This is done via Root 35582ee67178SXianjun Jiao * Announcement frames. 35592ee67178SXianjun Jiao * 35602ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL: The minimum interval of time (in 35612ee67178SXianjun Jiao * TUs) during which a mesh STA can send only one Action frame containing a 35622ee67178SXianjun Jiao * PERR element. 35632ee67178SXianjun Jiao * 35642ee67178SXianjun Jiao * @NL80211_MESHCONF_FORWARDING: set Mesh STA as forwarding or non-forwarding 35652ee67178SXianjun Jiao * or forwarding entity (default is TRUE - forwarding entity) 35662ee67178SXianjun Jiao * 35672ee67178SXianjun Jiao * @NL80211_MESHCONF_RSSI_THRESHOLD: RSSI threshold in dBm. This specifies the 35682ee67178SXianjun Jiao * threshold for average signal strength of candidate station to establish 35692ee67178SXianjun Jiao * a peer link. 35702ee67178SXianjun Jiao * 35712ee67178SXianjun Jiao * @NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR: maximum number of neighbors 35722ee67178SXianjun Jiao * to synchronize to for 11s default synchronization method 35732ee67178SXianjun Jiao * (see 11C.12.2.2) 35742ee67178SXianjun Jiao * 35752ee67178SXianjun Jiao * @NL80211_MESHCONF_HT_OPMODE: set mesh HT protection mode. 35762ee67178SXianjun Jiao * 35772ee67178SXianjun Jiao * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute 35782ee67178SXianjun Jiao * 35792ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT: The time (in TUs) for 35802ee67178SXianjun Jiao * which mesh STAs receiving a proactive PREQ shall consider the forwarding 35812ee67178SXianjun Jiao * information to the root mesh STA to be valid. 35822ee67178SXianjun Jiao * 35832ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_ROOT_INTERVAL: The interval of time (in TUs) between 35842ee67178SXianjun Jiao * proactive PREQs are transmitted. 35852ee67178SXianjun Jiao * 35862ee67178SXianjun Jiao * @NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL: The minimum interval of time 35872ee67178SXianjun Jiao * (in TUs) during which a mesh STA can send only one Action frame 35882ee67178SXianjun Jiao * containing a PREQ element for root path confirmation. 35892ee67178SXianjun Jiao * 35902ee67178SXianjun Jiao * @NL80211_MESHCONF_POWER_MODE: Default mesh power mode for new peer links. 35912ee67178SXianjun Jiao * type &enum nl80211_mesh_power_mode (u32) 35922ee67178SXianjun Jiao * 35932ee67178SXianjun Jiao * @NL80211_MESHCONF_AWAKE_WINDOW: awake window duration (in TUs) 35942ee67178SXianjun Jiao * 35952ee67178SXianjun Jiao * @NL80211_MESHCONF_PLINK_TIMEOUT: If no tx activity is seen from a STA we've 35962ee67178SXianjun Jiao * established peering with for longer than this time (in seconds), then 35974ecf49bbSJiao Xianjun * remove it from the STA's list of peers. You may set this to 0 to disable 35984ecf49bbSJiao Xianjun * the removal of the STA. Default is 30 minutes. 35992ee67178SXianjun Jiao * 36002ee67178SXianjun Jiao * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use 36012ee67178SXianjun Jiao */ 36022ee67178SXianjun Jiao enum nl80211_meshconf_params { 36032ee67178SXianjun Jiao __NL80211_MESHCONF_INVALID, 36042ee67178SXianjun Jiao NL80211_MESHCONF_RETRY_TIMEOUT, 36052ee67178SXianjun Jiao NL80211_MESHCONF_CONFIRM_TIMEOUT, 36062ee67178SXianjun Jiao NL80211_MESHCONF_HOLDING_TIMEOUT, 36072ee67178SXianjun Jiao NL80211_MESHCONF_MAX_PEER_LINKS, 36082ee67178SXianjun Jiao NL80211_MESHCONF_MAX_RETRIES, 36092ee67178SXianjun Jiao NL80211_MESHCONF_TTL, 36102ee67178SXianjun Jiao NL80211_MESHCONF_AUTO_OPEN_PLINKS, 36112ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES, 36122ee67178SXianjun Jiao NL80211_MESHCONF_PATH_REFRESH_TIME, 36132ee67178SXianjun Jiao NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT, 36142ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT, 36152ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL, 36162ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME, 36172ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_ROOTMODE, 36182ee67178SXianjun Jiao NL80211_MESHCONF_ELEMENT_TTL, 36192ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_RANN_INTERVAL, 36202ee67178SXianjun Jiao NL80211_MESHCONF_GATE_ANNOUNCEMENTS, 36212ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL, 36222ee67178SXianjun Jiao NL80211_MESHCONF_FORWARDING, 36232ee67178SXianjun Jiao NL80211_MESHCONF_RSSI_THRESHOLD, 36242ee67178SXianjun Jiao NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR, 36252ee67178SXianjun Jiao NL80211_MESHCONF_HT_OPMODE, 36262ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT, 36272ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_ROOT_INTERVAL, 36282ee67178SXianjun Jiao NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL, 36292ee67178SXianjun Jiao NL80211_MESHCONF_POWER_MODE, 36302ee67178SXianjun Jiao NL80211_MESHCONF_AWAKE_WINDOW, 36312ee67178SXianjun Jiao NL80211_MESHCONF_PLINK_TIMEOUT, 36322ee67178SXianjun Jiao 36332ee67178SXianjun Jiao /* keep last */ 36342ee67178SXianjun Jiao __NL80211_MESHCONF_ATTR_AFTER_LAST, 36352ee67178SXianjun Jiao NL80211_MESHCONF_ATTR_MAX = __NL80211_MESHCONF_ATTR_AFTER_LAST - 1 36362ee67178SXianjun Jiao }; 36372ee67178SXianjun Jiao 36382ee67178SXianjun Jiao /** 36392ee67178SXianjun Jiao * enum nl80211_mesh_setup_params - mesh setup parameters 36402ee67178SXianjun Jiao * 36412ee67178SXianjun Jiao * Mesh setup parameters. These are used to start/join a mesh and cannot be 36422ee67178SXianjun Jiao * changed while the mesh is active. 36432ee67178SXianjun Jiao * 36442ee67178SXianjun Jiao * @__NL80211_MESH_SETUP_INVALID: Internal use 36452ee67178SXianjun Jiao * 36462ee67178SXianjun Jiao * @NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL: Enable this option to use a 36472ee67178SXianjun Jiao * vendor specific path selection algorithm or disable it to use the 36482ee67178SXianjun Jiao * default HWMP. 36492ee67178SXianjun Jiao * 36502ee67178SXianjun Jiao * @NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC: Enable this option to use a 36512ee67178SXianjun Jiao * vendor specific path metric or disable it to use the default Airtime 36522ee67178SXianjun Jiao * metric. 36532ee67178SXianjun Jiao * 36542ee67178SXianjun Jiao * @NL80211_MESH_SETUP_IE: Information elements for this mesh, for instance, a 36552ee67178SXianjun Jiao * robust security network ie, or a vendor specific information element 36562ee67178SXianjun Jiao * that vendors will use to identify the path selection methods and 36572ee67178SXianjun Jiao * metrics in use. 36582ee67178SXianjun Jiao * 36592ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication 36602ee67178SXianjun Jiao * daemon will be authenticating mesh candidates. 36612ee67178SXianjun Jiao * 36622ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_AMPE: Enable this option if an authentication 36632ee67178SXianjun Jiao * daemon will be securing peer link frames. AMPE is a secured version of 36642ee67178SXianjun Jiao * Mesh Peering Management (MPM) and is implemented with the assistance of 36652ee67178SXianjun Jiao * a userspace daemon. When this flag is set, the kernel will send peer 36662ee67178SXianjun Jiao * management frames to a userspace daemon that will implement AMPE 36672ee67178SXianjun Jiao * functionality (security capabilities selection, key confirmation, and 36682ee67178SXianjun Jiao * key management). When the flag is unset (default), the kernel can 36692ee67178SXianjun Jiao * autonomously complete (unsecured) mesh peering without the need of a 36702ee67178SXianjun Jiao * userspace daemon. 36712ee67178SXianjun Jiao * 36722ee67178SXianjun Jiao * @NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC: Enable this option to use a 36732ee67178SXianjun Jiao * vendor specific synchronization method or disable it to use the default 36742ee67178SXianjun Jiao * neighbor offset synchronization 36752ee67178SXianjun Jiao * 36762ee67178SXianjun Jiao * @NL80211_MESH_SETUP_USERSPACE_MPM: Enable this option if userspace will 36772ee67178SXianjun Jiao * implement an MPM which handles peer allocation and state. 36782ee67178SXianjun Jiao * 36792ee67178SXianjun Jiao * @NL80211_MESH_SETUP_AUTH_PROTOCOL: Inform the kernel of the authentication 36802ee67178SXianjun Jiao * method (u8, as defined in IEEE 8.4.2.100.6, e.g. 0x1 for SAE). 36812ee67178SXianjun Jiao * Default is no authentication method required. 36822ee67178SXianjun Jiao * 36832ee67178SXianjun Jiao * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number 36842ee67178SXianjun Jiao * 36852ee67178SXianjun Jiao * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use 36862ee67178SXianjun Jiao */ 36872ee67178SXianjun Jiao enum nl80211_mesh_setup_params { 36882ee67178SXianjun Jiao __NL80211_MESH_SETUP_INVALID, 36892ee67178SXianjun Jiao NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL, 36902ee67178SXianjun Jiao NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC, 36912ee67178SXianjun Jiao NL80211_MESH_SETUP_IE, 36922ee67178SXianjun Jiao NL80211_MESH_SETUP_USERSPACE_AUTH, 36932ee67178SXianjun Jiao NL80211_MESH_SETUP_USERSPACE_AMPE, 36942ee67178SXianjun Jiao NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC, 36952ee67178SXianjun Jiao NL80211_MESH_SETUP_USERSPACE_MPM, 36962ee67178SXianjun Jiao NL80211_MESH_SETUP_AUTH_PROTOCOL, 36972ee67178SXianjun Jiao 36982ee67178SXianjun Jiao /* keep last */ 36992ee67178SXianjun Jiao __NL80211_MESH_SETUP_ATTR_AFTER_LAST, 37002ee67178SXianjun Jiao NL80211_MESH_SETUP_ATTR_MAX = __NL80211_MESH_SETUP_ATTR_AFTER_LAST - 1 37012ee67178SXianjun Jiao }; 37022ee67178SXianjun Jiao 37032ee67178SXianjun Jiao /** 37042ee67178SXianjun Jiao * enum nl80211_txq_attr - TX queue parameter attributes 37052ee67178SXianjun Jiao * @__NL80211_TXQ_ATTR_INVALID: Attribute number 0 is reserved 37062ee67178SXianjun Jiao * @NL80211_TXQ_ATTR_AC: AC identifier (NL80211_AC_*) 37072ee67178SXianjun Jiao * @NL80211_TXQ_ATTR_TXOP: Maximum burst time in units of 32 usecs, 0 meaning 37082ee67178SXianjun Jiao * disabled 37092ee67178SXianjun Jiao * @NL80211_TXQ_ATTR_CWMIN: Minimum contention window [a value of the form 37102ee67178SXianjun Jiao * 2^n-1 in the range 1..32767] 37112ee67178SXianjun Jiao * @NL80211_TXQ_ATTR_CWMAX: Maximum contention window [a value of the form 37122ee67178SXianjun Jiao * 2^n-1 in the range 1..32767] 37132ee67178SXianjun Jiao * @NL80211_TXQ_ATTR_AIFS: Arbitration interframe space [0..255] 37142ee67178SXianjun Jiao * @__NL80211_TXQ_ATTR_AFTER_LAST: Internal 37152ee67178SXianjun Jiao * @NL80211_TXQ_ATTR_MAX: Maximum TXQ attribute number 37162ee67178SXianjun Jiao */ 37172ee67178SXianjun Jiao enum nl80211_txq_attr { 37182ee67178SXianjun Jiao __NL80211_TXQ_ATTR_INVALID, 37192ee67178SXianjun Jiao NL80211_TXQ_ATTR_AC, 37202ee67178SXianjun Jiao NL80211_TXQ_ATTR_TXOP, 37212ee67178SXianjun Jiao NL80211_TXQ_ATTR_CWMIN, 37222ee67178SXianjun Jiao NL80211_TXQ_ATTR_CWMAX, 37232ee67178SXianjun Jiao NL80211_TXQ_ATTR_AIFS, 37242ee67178SXianjun Jiao 37252ee67178SXianjun Jiao /* keep last */ 37262ee67178SXianjun Jiao __NL80211_TXQ_ATTR_AFTER_LAST, 37272ee67178SXianjun Jiao NL80211_TXQ_ATTR_MAX = __NL80211_TXQ_ATTR_AFTER_LAST - 1 37282ee67178SXianjun Jiao }; 37292ee67178SXianjun Jiao 37302ee67178SXianjun Jiao enum nl80211_ac { 37312ee67178SXianjun Jiao NL80211_AC_VO, 37322ee67178SXianjun Jiao NL80211_AC_VI, 37332ee67178SXianjun Jiao NL80211_AC_BE, 37342ee67178SXianjun Jiao NL80211_AC_BK, 37352ee67178SXianjun Jiao NL80211_NUM_ACS 37362ee67178SXianjun Jiao }; 37372ee67178SXianjun Jiao 37382ee67178SXianjun Jiao /* backward compat */ 37392ee67178SXianjun Jiao #define NL80211_TXQ_ATTR_QUEUE NL80211_TXQ_ATTR_AC 37402ee67178SXianjun Jiao #define NL80211_TXQ_Q_VO NL80211_AC_VO 37412ee67178SXianjun Jiao #define NL80211_TXQ_Q_VI NL80211_AC_VI 37422ee67178SXianjun Jiao #define NL80211_TXQ_Q_BE NL80211_AC_BE 37432ee67178SXianjun Jiao #define NL80211_TXQ_Q_BK NL80211_AC_BK 37442ee67178SXianjun Jiao 37452ee67178SXianjun Jiao /** 37462ee67178SXianjun Jiao * enum nl80211_channel_type - channel type 37472ee67178SXianjun Jiao * @NL80211_CHAN_NO_HT: 20 MHz, non-HT channel 37482ee67178SXianjun Jiao * @NL80211_CHAN_HT20: 20 MHz HT channel 37492ee67178SXianjun Jiao * @NL80211_CHAN_HT40MINUS: HT40 channel, secondary channel 37502ee67178SXianjun Jiao * below the control channel 37512ee67178SXianjun Jiao * @NL80211_CHAN_HT40PLUS: HT40 channel, secondary channel 37522ee67178SXianjun Jiao * above the control channel 37532ee67178SXianjun Jiao */ 37542ee67178SXianjun Jiao enum nl80211_channel_type { 37552ee67178SXianjun Jiao NL80211_CHAN_NO_HT, 37562ee67178SXianjun Jiao NL80211_CHAN_HT20, 37572ee67178SXianjun Jiao NL80211_CHAN_HT40MINUS, 37582ee67178SXianjun Jiao NL80211_CHAN_HT40PLUS 37592ee67178SXianjun Jiao }; 37602ee67178SXianjun Jiao 37612ee67178SXianjun Jiao /** 37622ee67178SXianjun Jiao * enum nl80211_chan_width - channel width definitions 37632ee67178SXianjun Jiao * 37642ee67178SXianjun Jiao * These values are used with the %NL80211_ATTR_CHANNEL_WIDTH 37652ee67178SXianjun Jiao * attribute. 37662ee67178SXianjun Jiao * 37672ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_20_NOHT: 20 MHz, non-HT channel 37682ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_20: 20 MHz HT channel 37692ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_40: 40 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 37702ee67178SXianjun Jiao * attribute must be provided as well 37712ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_80: 80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 37722ee67178SXianjun Jiao * attribute must be provided as well 37732ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_80P80: 80+80 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 37742ee67178SXianjun Jiao * and %NL80211_ATTR_CENTER_FREQ2 attributes must be provided as well 37752ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_160: 160 MHz channel, the %NL80211_ATTR_CENTER_FREQ1 37762ee67178SXianjun Jiao * attribute must be provided as well 37772ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_5: 5 MHz OFDM channel 37782ee67178SXianjun Jiao * @NL80211_CHAN_WIDTH_10: 10 MHz OFDM channel 37792ee67178SXianjun Jiao */ 37802ee67178SXianjun Jiao enum nl80211_chan_width { 37812ee67178SXianjun Jiao NL80211_CHAN_WIDTH_20_NOHT, 37822ee67178SXianjun Jiao NL80211_CHAN_WIDTH_20, 37832ee67178SXianjun Jiao NL80211_CHAN_WIDTH_40, 37842ee67178SXianjun Jiao NL80211_CHAN_WIDTH_80, 37852ee67178SXianjun Jiao NL80211_CHAN_WIDTH_80P80, 37862ee67178SXianjun Jiao NL80211_CHAN_WIDTH_160, 37872ee67178SXianjun Jiao NL80211_CHAN_WIDTH_5, 37882ee67178SXianjun Jiao NL80211_CHAN_WIDTH_10, 37892ee67178SXianjun Jiao }; 37902ee67178SXianjun Jiao 37912ee67178SXianjun Jiao /** 37922ee67178SXianjun Jiao * enum nl80211_bss_scan_width - control channel width for a BSS 37932ee67178SXianjun Jiao * 37942ee67178SXianjun Jiao * These values are used with the %NL80211_BSS_CHAN_WIDTH attribute. 37952ee67178SXianjun Jiao * 37962ee67178SXianjun Jiao * @NL80211_BSS_CHAN_WIDTH_20: control channel is 20 MHz wide or compatible 37972ee67178SXianjun Jiao * @NL80211_BSS_CHAN_WIDTH_10: control channel is 10 MHz wide 37982ee67178SXianjun Jiao * @NL80211_BSS_CHAN_WIDTH_5: control channel is 5 MHz wide 37992ee67178SXianjun Jiao */ 38002ee67178SXianjun Jiao enum nl80211_bss_scan_width { 38012ee67178SXianjun Jiao NL80211_BSS_CHAN_WIDTH_20, 38022ee67178SXianjun Jiao NL80211_BSS_CHAN_WIDTH_10, 38032ee67178SXianjun Jiao NL80211_BSS_CHAN_WIDTH_5, 38042ee67178SXianjun Jiao }; 38052ee67178SXianjun Jiao 38062ee67178SXianjun Jiao /** 38072ee67178SXianjun Jiao * enum nl80211_bss - netlink attributes for a BSS 38082ee67178SXianjun Jiao * 38092ee67178SXianjun Jiao * @__NL80211_BSS_INVALID: invalid 38102ee67178SXianjun Jiao * @NL80211_BSS_BSSID: BSSID of the BSS (6 octets) 38112ee67178SXianjun Jiao * @NL80211_BSS_FREQUENCY: frequency in MHz (u32) 38122ee67178SXianjun Jiao * @NL80211_BSS_TSF: TSF of the received probe response/beacon (u64) 38132ee67178SXianjun Jiao * (if @NL80211_BSS_PRESP_DATA is present then this is known to be 38142ee67178SXianjun Jiao * from a probe response, otherwise it may be from the same beacon 38152ee67178SXianjun Jiao * that the NL80211_BSS_BEACON_TSF will be from) 38162ee67178SXianjun Jiao * @NL80211_BSS_BEACON_INTERVAL: beacon interval of the (I)BSS (u16) 38172ee67178SXianjun Jiao * @NL80211_BSS_CAPABILITY: capability field (CPU order, u16) 38182ee67178SXianjun Jiao * @NL80211_BSS_INFORMATION_ELEMENTS: binary attribute containing the 38192ee67178SXianjun Jiao * raw information elements from the probe response/beacon (bin); 38202ee67178SXianjun Jiao * if the %NL80211_BSS_BEACON_IES attribute is present and the data is 38212ee67178SXianjun Jiao * different then the IEs here are from a Probe Response frame; otherwise 38222ee67178SXianjun Jiao * they are from a Beacon frame. 38232ee67178SXianjun Jiao * However, if the driver does not indicate the source of the IEs, these 38242ee67178SXianjun Jiao * IEs may be from either frame subtype. 38252ee67178SXianjun Jiao * If present, the @NL80211_BSS_PRESP_DATA attribute indicates that the 38262ee67178SXianjun Jiao * data here is known to be from a probe response, without any heuristics. 38272ee67178SXianjun Jiao * @NL80211_BSS_SIGNAL_MBM: signal strength of probe response/beacon 38282ee67178SXianjun Jiao * in mBm (100 * dBm) (s32) 38292ee67178SXianjun Jiao * @NL80211_BSS_SIGNAL_UNSPEC: signal strength of the probe response/beacon 38302ee67178SXianjun Jiao * in unspecified units, scaled to 0..100 (u8) 38312ee67178SXianjun Jiao * @NL80211_BSS_STATUS: status, if this BSS is "used" 38322ee67178SXianjun Jiao * @NL80211_BSS_SEEN_MS_AGO: age of this BSS entry in ms 38332ee67178SXianjun Jiao * @NL80211_BSS_BEACON_IES: binary attribute containing the raw information 38342ee67178SXianjun Jiao * elements from a Beacon frame (bin); not present if no Beacon frame has 38352ee67178SXianjun Jiao * yet been received 38362ee67178SXianjun Jiao * @NL80211_BSS_CHAN_WIDTH: channel width of the control channel 38372ee67178SXianjun Jiao * (u32, enum nl80211_bss_scan_width) 38382ee67178SXianjun Jiao * @NL80211_BSS_BEACON_TSF: TSF of the last received beacon (u64) 38392ee67178SXianjun Jiao * (not present if no beacon frame has been received yet) 38402ee67178SXianjun Jiao * @NL80211_BSS_PRESP_DATA: the data in @NL80211_BSS_INFORMATION_ELEMENTS and 38412ee67178SXianjun Jiao * @NL80211_BSS_TSF is known to be from a probe response (flag attribute) 38424ecf49bbSJiao Xianjun * @NL80211_BSS_LAST_SEEN_BOOTTIME: CLOCK_BOOTTIME timestamp when this entry 38434ecf49bbSJiao Xianjun * was last updated by a received frame. The value is expected to be 38444ecf49bbSJiao Xianjun * accurate to about 10ms. (u64, nanoseconds) 38454ecf49bbSJiao Xianjun * @NL80211_BSS_PAD: attribute used for padding for 64-bit alignment 38464ecf49bbSJiao Xianjun * @NL80211_BSS_PARENT_TSF: the time at the start of reception of the first 38474ecf49bbSJiao Xianjun * octet of the timestamp field of the last beacon/probe received for 38484ecf49bbSJiao Xianjun * this BSS. The time is the TSF of the BSS specified by 38494ecf49bbSJiao Xianjun * @NL80211_BSS_PARENT_BSSID. (u64). 38504ecf49bbSJiao Xianjun * @NL80211_BSS_PARENT_BSSID: the BSS according to which @NL80211_BSS_PARENT_TSF 38514ecf49bbSJiao Xianjun * is set. 38522ee67178SXianjun Jiao * @__NL80211_BSS_AFTER_LAST: internal 38532ee67178SXianjun Jiao * @NL80211_BSS_MAX: highest BSS attribute 38542ee67178SXianjun Jiao */ 38552ee67178SXianjun Jiao enum nl80211_bss { 38562ee67178SXianjun Jiao __NL80211_BSS_INVALID, 38572ee67178SXianjun Jiao NL80211_BSS_BSSID, 38582ee67178SXianjun Jiao NL80211_BSS_FREQUENCY, 38592ee67178SXianjun Jiao NL80211_BSS_TSF, 38602ee67178SXianjun Jiao NL80211_BSS_BEACON_INTERVAL, 38612ee67178SXianjun Jiao NL80211_BSS_CAPABILITY, 38622ee67178SXianjun Jiao NL80211_BSS_INFORMATION_ELEMENTS, 38632ee67178SXianjun Jiao NL80211_BSS_SIGNAL_MBM, 38642ee67178SXianjun Jiao NL80211_BSS_SIGNAL_UNSPEC, 38652ee67178SXianjun Jiao NL80211_BSS_STATUS, 38662ee67178SXianjun Jiao NL80211_BSS_SEEN_MS_AGO, 38672ee67178SXianjun Jiao NL80211_BSS_BEACON_IES, 38682ee67178SXianjun Jiao NL80211_BSS_CHAN_WIDTH, 38692ee67178SXianjun Jiao NL80211_BSS_BEACON_TSF, 38702ee67178SXianjun Jiao NL80211_BSS_PRESP_DATA, 38714ecf49bbSJiao Xianjun NL80211_BSS_LAST_SEEN_BOOTTIME, 38724ecf49bbSJiao Xianjun NL80211_BSS_PAD, 38734ecf49bbSJiao Xianjun NL80211_BSS_PARENT_TSF, 38744ecf49bbSJiao Xianjun NL80211_BSS_PARENT_BSSID, 38752ee67178SXianjun Jiao 38762ee67178SXianjun Jiao /* keep last */ 38772ee67178SXianjun Jiao __NL80211_BSS_AFTER_LAST, 38782ee67178SXianjun Jiao NL80211_BSS_MAX = __NL80211_BSS_AFTER_LAST - 1 38792ee67178SXianjun Jiao }; 38802ee67178SXianjun Jiao 38812ee67178SXianjun Jiao /** 38822ee67178SXianjun Jiao * enum nl80211_bss_status - BSS "status" 38832ee67178SXianjun Jiao * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS. 38844ecf49bbSJiao Xianjun * Note that this is no longer used since cfg80211 no longer 38854ecf49bbSJiao Xianjun * keeps track of whether or not authentication was done with 38864ecf49bbSJiao Xianjun * a given BSS. 38872ee67178SXianjun Jiao * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS. 38882ee67178SXianjun Jiao * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS. 38892ee67178SXianjun Jiao * 38902ee67178SXianjun Jiao * The BSS status is a BSS attribute in scan dumps, which 38912ee67178SXianjun Jiao * indicates the status the interface has wrt. this BSS. 38922ee67178SXianjun Jiao */ 38932ee67178SXianjun Jiao enum nl80211_bss_status { 38942ee67178SXianjun Jiao NL80211_BSS_STATUS_AUTHENTICATED, 38952ee67178SXianjun Jiao NL80211_BSS_STATUS_ASSOCIATED, 38962ee67178SXianjun Jiao NL80211_BSS_STATUS_IBSS_JOINED, 38972ee67178SXianjun Jiao }; 38982ee67178SXianjun Jiao 38992ee67178SXianjun Jiao /** 39002ee67178SXianjun Jiao * enum nl80211_auth_type - AuthenticationType 39012ee67178SXianjun Jiao * 39022ee67178SXianjun Jiao * @NL80211_AUTHTYPE_OPEN_SYSTEM: Open System authentication 39032ee67178SXianjun Jiao * @NL80211_AUTHTYPE_SHARED_KEY: Shared Key authentication (WEP only) 39042ee67178SXianjun Jiao * @NL80211_AUTHTYPE_FT: Fast BSS Transition (IEEE 802.11r) 39052ee67178SXianjun Jiao * @NL80211_AUTHTYPE_NETWORK_EAP: Network EAP (some Cisco APs and mainly LEAP) 39062ee67178SXianjun Jiao * @NL80211_AUTHTYPE_SAE: Simultaneous authentication of equals 39074ecf49bbSJiao Xianjun * @NL80211_AUTHTYPE_FILS_SK: Fast Initial Link Setup shared key 39084ecf49bbSJiao Xianjun * @NL80211_AUTHTYPE_FILS_SK_PFS: Fast Initial Link Setup shared key with PFS 39094ecf49bbSJiao Xianjun * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key 39102ee67178SXianjun Jiao * @__NL80211_AUTHTYPE_NUM: internal 39112ee67178SXianjun Jiao * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm 39122ee67178SXianjun Jiao * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by 39132ee67178SXianjun Jiao * trying multiple times); this is invalid in netlink -- leave out 39142ee67178SXianjun Jiao * the attribute for this on CONNECT commands. 39152ee67178SXianjun Jiao */ 39162ee67178SXianjun Jiao enum nl80211_auth_type { 39172ee67178SXianjun Jiao NL80211_AUTHTYPE_OPEN_SYSTEM, 39182ee67178SXianjun Jiao NL80211_AUTHTYPE_SHARED_KEY, 39192ee67178SXianjun Jiao NL80211_AUTHTYPE_FT, 39202ee67178SXianjun Jiao NL80211_AUTHTYPE_NETWORK_EAP, 39212ee67178SXianjun Jiao NL80211_AUTHTYPE_SAE, 39224ecf49bbSJiao Xianjun NL80211_AUTHTYPE_FILS_SK, 39234ecf49bbSJiao Xianjun NL80211_AUTHTYPE_FILS_SK_PFS, 39244ecf49bbSJiao Xianjun NL80211_AUTHTYPE_FILS_PK, 39252ee67178SXianjun Jiao 39262ee67178SXianjun Jiao /* keep last */ 39272ee67178SXianjun Jiao __NL80211_AUTHTYPE_NUM, 39282ee67178SXianjun Jiao NL80211_AUTHTYPE_MAX = __NL80211_AUTHTYPE_NUM - 1, 39292ee67178SXianjun Jiao NL80211_AUTHTYPE_AUTOMATIC 39302ee67178SXianjun Jiao }; 39312ee67178SXianjun Jiao 39322ee67178SXianjun Jiao /** 39332ee67178SXianjun Jiao * enum nl80211_key_type - Key Type 39342ee67178SXianjun Jiao * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key 39352ee67178SXianjun Jiao * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key 39362ee67178SXianjun Jiao * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS) 39372ee67178SXianjun Jiao * @NUM_NL80211_KEYTYPES: number of defined key types 39382ee67178SXianjun Jiao */ 39392ee67178SXianjun Jiao enum nl80211_key_type { 39402ee67178SXianjun Jiao NL80211_KEYTYPE_GROUP, 39412ee67178SXianjun Jiao NL80211_KEYTYPE_PAIRWISE, 39422ee67178SXianjun Jiao NL80211_KEYTYPE_PEERKEY, 39432ee67178SXianjun Jiao 39442ee67178SXianjun Jiao NUM_NL80211_KEYTYPES 39452ee67178SXianjun Jiao }; 39462ee67178SXianjun Jiao 39472ee67178SXianjun Jiao /** 39482ee67178SXianjun Jiao * enum nl80211_mfp - Management frame protection state 39492ee67178SXianjun Jiao * @NL80211_MFP_NO: Management frame protection not used 39502ee67178SXianjun Jiao * @NL80211_MFP_REQUIRED: Management frame protection required 39512ee67178SXianjun Jiao */ 39522ee67178SXianjun Jiao enum nl80211_mfp { 39532ee67178SXianjun Jiao NL80211_MFP_NO, 39542ee67178SXianjun Jiao NL80211_MFP_REQUIRED, 39552ee67178SXianjun Jiao }; 39562ee67178SXianjun Jiao 39572ee67178SXianjun Jiao enum nl80211_wpa_versions { 39582ee67178SXianjun Jiao NL80211_WPA_VERSION_1 = 1 << 0, 39592ee67178SXianjun Jiao NL80211_WPA_VERSION_2 = 1 << 1, 39602ee67178SXianjun Jiao }; 39612ee67178SXianjun Jiao 39622ee67178SXianjun Jiao /** 39632ee67178SXianjun Jiao * enum nl80211_key_default_types - key default types 39642ee67178SXianjun Jiao * @__NL80211_KEY_DEFAULT_TYPE_INVALID: invalid 39652ee67178SXianjun Jiao * @NL80211_KEY_DEFAULT_TYPE_UNICAST: key should be used as default 39662ee67178SXianjun Jiao * unicast key 39672ee67178SXianjun Jiao * @NL80211_KEY_DEFAULT_TYPE_MULTICAST: key should be used as default 39682ee67178SXianjun Jiao * multicast key 39692ee67178SXianjun Jiao * @NUM_NL80211_KEY_DEFAULT_TYPES: number of default types 39702ee67178SXianjun Jiao */ 39712ee67178SXianjun Jiao enum nl80211_key_default_types { 39722ee67178SXianjun Jiao __NL80211_KEY_DEFAULT_TYPE_INVALID, 39732ee67178SXianjun Jiao NL80211_KEY_DEFAULT_TYPE_UNICAST, 39742ee67178SXianjun Jiao NL80211_KEY_DEFAULT_TYPE_MULTICAST, 39752ee67178SXianjun Jiao 39762ee67178SXianjun Jiao NUM_NL80211_KEY_DEFAULT_TYPES 39772ee67178SXianjun Jiao }; 39782ee67178SXianjun Jiao 39792ee67178SXianjun Jiao /** 39802ee67178SXianjun Jiao * enum nl80211_key_attributes - key attributes 39812ee67178SXianjun Jiao * @__NL80211_KEY_INVALID: invalid 39822ee67178SXianjun Jiao * @NL80211_KEY_DATA: (temporal) key data; for TKIP this consists of 39832ee67178SXianjun Jiao * 16 bytes encryption key followed by 8 bytes each for TX and RX MIC 39842ee67178SXianjun Jiao * keys 39852ee67178SXianjun Jiao * @NL80211_KEY_IDX: key ID (u8, 0-3) 39862ee67178SXianjun Jiao * @NL80211_KEY_CIPHER: key cipher suite (u32, as defined by IEEE 802.11 39872ee67178SXianjun Jiao * section 7.3.2.25.1, e.g. 0x000FAC04) 39882ee67178SXianjun Jiao * @NL80211_KEY_SEQ: transmit key sequence number (IV/PN) for TKIP and 39892ee67178SXianjun Jiao * CCMP keys, each six bytes in little endian 39902ee67178SXianjun Jiao * @NL80211_KEY_DEFAULT: flag indicating default key 39912ee67178SXianjun Jiao * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key 39922ee67178SXianjun Jiao * @NL80211_KEY_TYPE: the key type from enum nl80211_key_type, if not 39932ee67178SXianjun Jiao * specified the default depends on whether a MAC address was 39942ee67178SXianjun Jiao * given with the command using the key or not (u32) 39952ee67178SXianjun Jiao * @NL80211_KEY_DEFAULT_TYPES: A nested attribute containing flags 39962ee67178SXianjun Jiao * attributes, specifying what a key should be set as default as. 39972ee67178SXianjun Jiao * See &enum nl80211_key_default_types. 39982ee67178SXianjun Jiao * @__NL80211_KEY_AFTER_LAST: internal 39992ee67178SXianjun Jiao * @NL80211_KEY_MAX: highest key attribute 40002ee67178SXianjun Jiao */ 40012ee67178SXianjun Jiao enum nl80211_key_attributes { 40022ee67178SXianjun Jiao __NL80211_KEY_INVALID, 40032ee67178SXianjun Jiao NL80211_KEY_DATA, 40042ee67178SXianjun Jiao NL80211_KEY_IDX, 40052ee67178SXianjun Jiao NL80211_KEY_CIPHER, 40062ee67178SXianjun Jiao NL80211_KEY_SEQ, 40072ee67178SXianjun Jiao NL80211_KEY_DEFAULT, 40082ee67178SXianjun Jiao NL80211_KEY_DEFAULT_MGMT, 40092ee67178SXianjun Jiao NL80211_KEY_TYPE, 40102ee67178SXianjun Jiao NL80211_KEY_DEFAULT_TYPES, 40112ee67178SXianjun Jiao 40122ee67178SXianjun Jiao /* keep last */ 40132ee67178SXianjun Jiao __NL80211_KEY_AFTER_LAST, 40142ee67178SXianjun Jiao NL80211_KEY_MAX = __NL80211_KEY_AFTER_LAST - 1 40152ee67178SXianjun Jiao }; 40162ee67178SXianjun Jiao 40172ee67178SXianjun Jiao /** 40182ee67178SXianjun Jiao * enum nl80211_tx_rate_attributes - TX rate set attributes 40192ee67178SXianjun Jiao * @__NL80211_TXRATE_INVALID: invalid 40202ee67178SXianjun Jiao * @NL80211_TXRATE_LEGACY: Legacy (non-MCS) rates allowed for TX rate selection 40212ee67178SXianjun Jiao * in an array of rates as defined in IEEE 802.11 7.3.2.2 (u8 values with 40222ee67178SXianjun Jiao * 1 = 500 kbps) but without the IE length restriction (at most 40232ee67178SXianjun Jiao * %NL80211_MAX_SUPP_RATES in a single array). 40242ee67178SXianjun Jiao * @NL80211_TXRATE_HT: HT (MCS) rates allowed for TX rate selection 40252ee67178SXianjun Jiao * in an array of MCS numbers. 40262ee67178SXianjun Jiao * @NL80211_TXRATE_VHT: VHT rates allowed for TX rate selection, 40272ee67178SXianjun Jiao * see &struct nl80211_txrate_vht 40282ee67178SXianjun Jiao * @NL80211_TXRATE_GI: configure GI, see &enum nl80211_txrate_gi 40292ee67178SXianjun Jiao * @__NL80211_TXRATE_AFTER_LAST: internal 40302ee67178SXianjun Jiao * @NL80211_TXRATE_MAX: highest TX rate attribute 40312ee67178SXianjun Jiao */ 40322ee67178SXianjun Jiao enum nl80211_tx_rate_attributes { 40332ee67178SXianjun Jiao __NL80211_TXRATE_INVALID, 40342ee67178SXianjun Jiao NL80211_TXRATE_LEGACY, 40352ee67178SXianjun Jiao NL80211_TXRATE_HT, 40362ee67178SXianjun Jiao NL80211_TXRATE_VHT, 40372ee67178SXianjun Jiao NL80211_TXRATE_GI, 40382ee67178SXianjun Jiao 40392ee67178SXianjun Jiao /* keep last */ 40402ee67178SXianjun Jiao __NL80211_TXRATE_AFTER_LAST, 40412ee67178SXianjun Jiao NL80211_TXRATE_MAX = __NL80211_TXRATE_AFTER_LAST - 1 40422ee67178SXianjun Jiao }; 40432ee67178SXianjun Jiao 40442ee67178SXianjun Jiao #define NL80211_TXRATE_MCS NL80211_TXRATE_HT 40452ee67178SXianjun Jiao #define NL80211_VHT_NSS_MAX 8 40462ee67178SXianjun Jiao 40472ee67178SXianjun Jiao /** 40482ee67178SXianjun Jiao * struct nl80211_txrate_vht - VHT MCS/NSS txrate bitmap 40492ee67178SXianjun Jiao * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.) 40502ee67178SXianjun Jiao */ 40512ee67178SXianjun Jiao struct nl80211_txrate_vht { 40522ee67178SXianjun Jiao __u16 mcs[NL80211_VHT_NSS_MAX]; 40532ee67178SXianjun Jiao }; 40542ee67178SXianjun Jiao 40552ee67178SXianjun Jiao enum nl80211_txrate_gi { 40562ee67178SXianjun Jiao NL80211_TXRATE_DEFAULT_GI, 40572ee67178SXianjun Jiao NL80211_TXRATE_FORCE_SGI, 40582ee67178SXianjun Jiao NL80211_TXRATE_FORCE_LGI, 40592ee67178SXianjun Jiao }; 40602ee67178SXianjun Jiao 40612ee67178SXianjun Jiao /** 40622ee67178SXianjun Jiao * enum nl80211_band - Frequency band 40632ee67178SXianjun Jiao * @NL80211_BAND_2GHZ: 2.4 GHz ISM band 40642ee67178SXianjun Jiao * @NL80211_BAND_5GHZ: around 5 GHz band (4.9 - 5.7 GHz) 40652ee67178SXianjun Jiao * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 64.80 GHz) 40664ecf49bbSJiao Xianjun * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace 40674ecf49bbSJiao Xianjun * since newer kernel versions may support more bands 40682ee67178SXianjun Jiao */ 40692ee67178SXianjun Jiao enum nl80211_band { 40702ee67178SXianjun Jiao NL80211_BAND_2GHZ, 40712ee67178SXianjun Jiao NL80211_BAND_5GHZ, 40722ee67178SXianjun Jiao NL80211_BAND_60GHZ, 40734ecf49bbSJiao Xianjun 40744ecf49bbSJiao Xianjun NUM_NL80211_BANDS, 40752ee67178SXianjun Jiao }; 40762ee67178SXianjun Jiao 40772ee67178SXianjun Jiao /** 40782ee67178SXianjun Jiao * enum nl80211_ps_state - powersave state 40792ee67178SXianjun Jiao * @NL80211_PS_DISABLED: powersave is disabled 40802ee67178SXianjun Jiao * @NL80211_PS_ENABLED: powersave is enabled 40812ee67178SXianjun Jiao */ 40822ee67178SXianjun Jiao enum nl80211_ps_state { 40832ee67178SXianjun Jiao NL80211_PS_DISABLED, 40842ee67178SXianjun Jiao NL80211_PS_ENABLED, 40852ee67178SXianjun Jiao }; 40862ee67178SXianjun Jiao 40872ee67178SXianjun Jiao /** 40882ee67178SXianjun Jiao * enum nl80211_attr_cqm - connection quality monitor attributes 40892ee67178SXianjun Jiao * @__NL80211_ATTR_CQM_INVALID: invalid 40902ee67178SXianjun Jiao * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm. This value specifies 40912ee67178SXianjun Jiao * the threshold for the RSSI level at which an event will be sent. Zero 40924ecf49bbSJiao Xianjun * to disable. Alternatively, if %NL80211_EXT_FEATURE_CQM_RSSI_LIST is 40934ecf49bbSJiao Xianjun * set, multiple values can be supplied as a low-to-high sorted array of 40944ecf49bbSJiao Xianjun * threshold values in dBm. Events will be sent when the RSSI value 40954ecf49bbSJiao Xianjun * crosses any of the thresholds. 40962ee67178SXianjun Jiao * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm. This value specifies 40972ee67178SXianjun Jiao * the minimum amount the RSSI level must change after an event before a 40982ee67178SXianjun Jiao * new event may be issued (to reduce effects of RSSI oscillation). 40992ee67178SXianjun Jiao * @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT: RSSI threshold event 41002ee67178SXianjun Jiao * @NL80211_ATTR_CQM_PKT_LOSS_EVENT: a u32 value indicating that this many 41012ee67178SXianjun Jiao * consecutive packets were not acknowledged by the peer 41022ee67178SXianjun Jiao * @NL80211_ATTR_CQM_TXE_RATE: TX error rate in %. Minimum % of TX failures 41032ee67178SXianjun Jiao * during the given %NL80211_ATTR_CQM_TXE_INTVL before an 41042ee67178SXianjun Jiao * %NL80211_CMD_NOTIFY_CQM with reported %NL80211_ATTR_CQM_TXE_RATE and 41052ee67178SXianjun Jiao * %NL80211_ATTR_CQM_TXE_PKTS is generated. 41062ee67178SXianjun Jiao * @NL80211_ATTR_CQM_TXE_PKTS: number of attempted packets in a given 41072ee67178SXianjun Jiao * %NL80211_ATTR_CQM_TXE_INTVL before %NL80211_ATTR_CQM_TXE_RATE is 41082ee67178SXianjun Jiao * checked. 41092ee67178SXianjun Jiao * @NL80211_ATTR_CQM_TXE_INTVL: interval in seconds. Specifies the periodic 41102ee67178SXianjun Jiao * interval in which %NL80211_ATTR_CQM_TXE_PKTS and 41112ee67178SXianjun Jiao * %NL80211_ATTR_CQM_TXE_RATE must be satisfied before generating an 41122ee67178SXianjun Jiao * %NL80211_CMD_NOTIFY_CQM. Set to 0 to turn off TX error reporting. 41134ecf49bbSJiao Xianjun * @NL80211_ATTR_CQM_BEACON_LOSS_EVENT: flag attribute that's set in a beacon 41144ecf49bbSJiao Xianjun * loss event 41154ecf49bbSJiao Xianjun * @NL80211_ATTR_CQM_RSSI_LEVEL: the RSSI value in dBm that triggered the 41164ecf49bbSJiao Xianjun * RSSI threshold event. 41172ee67178SXianjun Jiao * @__NL80211_ATTR_CQM_AFTER_LAST: internal 41182ee67178SXianjun Jiao * @NL80211_ATTR_CQM_MAX: highest key attribute 41192ee67178SXianjun Jiao */ 41202ee67178SXianjun Jiao enum nl80211_attr_cqm { 41212ee67178SXianjun Jiao __NL80211_ATTR_CQM_INVALID, 41222ee67178SXianjun Jiao NL80211_ATTR_CQM_RSSI_THOLD, 41232ee67178SXianjun Jiao NL80211_ATTR_CQM_RSSI_HYST, 41242ee67178SXianjun Jiao NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT, 41252ee67178SXianjun Jiao NL80211_ATTR_CQM_PKT_LOSS_EVENT, 41262ee67178SXianjun Jiao NL80211_ATTR_CQM_TXE_RATE, 41272ee67178SXianjun Jiao NL80211_ATTR_CQM_TXE_PKTS, 41282ee67178SXianjun Jiao NL80211_ATTR_CQM_TXE_INTVL, 41294ecf49bbSJiao Xianjun NL80211_ATTR_CQM_BEACON_LOSS_EVENT, 41304ecf49bbSJiao Xianjun NL80211_ATTR_CQM_RSSI_LEVEL, 41312ee67178SXianjun Jiao 41322ee67178SXianjun Jiao /* keep last */ 41332ee67178SXianjun Jiao __NL80211_ATTR_CQM_AFTER_LAST, 41342ee67178SXianjun Jiao NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1 41352ee67178SXianjun Jiao }; 41362ee67178SXianjun Jiao 41372ee67178SXianjun Jiao /** 41382ee67178SXianjun Jiao * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event 41392ee67178SXianjun Jiao * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW: The RSSI level is lower than the 41402ee67178SXianjun Jiao * configured threshold 41412ee67178SXianjun Jiao * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH: The RSSI is higher than the 41422ee67178SXianjun Jiao * configured threshold 41434ecf49bbSJiao Xianjun * @NL80211_CQM_RSSI_BEACON_LOSS_EVENT: (reserved, never sent) 41442ee67178SXianjun Jiao */ 41452ee67178SXianjun Jiao enum nl80211_cqm_rssi_threshold_event { 41462ee67178SXianjun Jiao NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW, 41472ee67178SXianjun Jiao NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH, 41482ee67178SXianjun Jiao NL80211_CQM_RSSI_BEACON_LOSS_EVENT, 41492ee67178SXianjun Jiao }; 41502ee67178SXianjun Jiao 41512ee67178SXianjun Jiao 41522ee67178SXianjun Jiao /** 41532ee67178SXianjun Jiao * enum nl80211_tx_power_setting - TX power adjustment 41542ee67178SXianjun Jiao * @NL80211_TX_POWER_AUTOMATIC: automatically determine transmit power 41552ee67178SXianjun Jiao * @NL80211_TX_POWER_LIMITED: limit TX power by the mBm parameter 41562ee67178SXianjun Jiao * @NL80211_TX_POWER_FIXED: fix TX power to the mBm parameter 41572ee67178SXianjun Jiao */ 41582ee67178SXianjun Jiao enum nl80211_tx_power_setting { 41592ee67178SXianjun Jiao NL80211_TX_POWER_AUTOMATIC, 41602ee67178SXianjun Jiao NL80211_TX_POWER_LIMITED, 41612ee67178SXianjun Jiao NL80211_TX_POWER_FIXED, 41622ee67178SXianjun Jiao }; 41632ee67178SXianjun Jiao 41642ee67178SXianjun Jiao /** 41652ee67178SXianjun Jiao * enum nl80211_packet_pattern_attr - packet pattern attribute 41662ee67178SXianjun Jiao * @__NL80211_PKTPAT_INVALID: invalid number for nested attribute 41672ee67178SXianjun Jiao * @NL80211_PKTPAT_PATTERN: the pattern, values where the mask has 41682ee67178SXianjun Jiao * a zero bit are ignored 41692ee67178SXianjun Jiao * @NL80211_PKTPAT_MASK: pattern mask, must be long enough to have 41702ee67178SXianjun Jiao * a bit for each byte in the pattern. The lowest-order bit corresponds 41712ee67178SXianjun Jiao * to the first byte of the pattern, but the bytes of the pattern are 41722ee67178SXianjun Jiao * in a little-endian-like format, i.e. the 9th byte of the pattern 41732ee67178SXianjun Jiao * corresponds to the lowest-order bit in the second byte of the mask. 41742ee67178SXianjun Jiao * For example: The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where 41752ee67178SXianjun Jiao * xx indicates "don't care") would be represented by a pattern of 41762ee67178SXianjun Jiao * twelve zero bytes, and a mask of "0xed,0x01". 41772ee67178SXianjun Jiao * Note that the pattern matching is done as though frames were not 41782ee67178SXianjun Jiao * 802.11 frames but 802.3 frames, i.e. the frame is fully unpacked 41792ee67178SXianjun Jiao * first (including SNAP header unpacking) and then matched. 41802ee67178SXianjun Jiao * @NL80211_PKTPAT_OFFSET: packet offset, pattern is matched after 41812ee67178SXianjun Jiao * these fixed number of bytes of received packet 41822ee67178SXianjun Jiao * @NUM_NL80211_PKTPAT: number of attributes 41832ee67178SXianjun Jiao * @MAX_NL80211_PKTPAT: max attribute number 41842ee67178SXianjun Jiao */ 41852ee67178SXianjun Jiao enum nl80211_packet_pattern_attr { 41862ee67178SXianjun Jiao __NL80211_PKTPAT_INVALID, 41872ee67178SXianjun Jiao NL80211_PKTPAT_MASK, 41882ee67178SXianjun Jiao NL80211_PKTPAT_PATTERN, 41892ee67178SXianjun Jiao NL80211_PKTPAT_OFFSET, 41902ee67178SXianjun Jiao 41912ee67178SXianjun Jiao NUM_NL80211_PKTPAT, 41922ee67178SXianjun Jiao MAX_NL80211_PKTPAT = NUM_NL80211_PKTPAT - 1, 41932ee67178SXianjun Jiao }; 41942ee67178SXianjun Jiao 41952ee67178SXianjun Jiao /** 41962ee67178SXianjun Jiao * struct nl80211_pattern_support - packet pattern support information 41972ee67178SXianjun Jiao * @max_patterns: maximum number of patterns supported 41982ee67178SXianjun Jiao * @min_pattern_len: minimum length of each pattern 41992ee67178SXianjun Jiao * @max_pattern_len: maximum length of each pattern 42002ee67178SXianjun Jiao * @max_pkt_offset: maximum Rx packet offset 42012ee67178SXianjun Jiao * 42022ee67178SXianjun Jiao * This struct is carried in %NL80211_WOWLAN_TRIG_PKT_PATTERN when 42032ee67178SXianjun Jiao * that is part of %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED or in 42042ee67178SXianjun Jiao * %NL80211_ATTR_COALESCE_RULE_PKT_PATTERN when that is part of 42052ee67178SXianjun Jiao * %NL80211_ATTR_COALESCE_RULE in the capability information given 42062ee67178SXianjun Jiao * by the kernel to userspace. 42072ee67178SXianjun Jiao */ 42082ee67178SXianjun Jiao struct nl80211_pattern_support { 42092ee67178SXianjun Jiao __u32 max_patterns; 42102ee67178SXianjun Jiao __u32 min_pattern_len; 42112ee67178SXianjun Jiao __u32 max_pattern_len; 42122ee67178SXianjun Jiao __u32 max_pkt_offset; 42132ee67178SXianjun Jiao } __attribute__((packed)); 42142ee67178SXianjun Jiao 42152ee67178SXianjun Jiao /* only for backward compatibility */ 42162ee67178SXianjun Jiao #define __NL80211_WOWLAN_PKTPAT_INVALID __NL80211_PKTPAT_INVALID 42172ee67178SXianjun Jiao #define NL80211_WOWLAN_PKTPAT_MASK NL80211_PKTPAT_MASK 42182ee67178SXianjun Jiao #define NL80211_WOWLAN_PKTPAT_PATTERN NL80211_PKTPAT_PATTERN 42192ee67178SXianjun Jiao #define NL80211_WOWLAN_PKTPAT_OFFSET NL80211_PKTPAT_OFFSET 42202ee67178SXianjun Jiao #define NUM_NL80211_WOWLAN_PKTPAT NUM_NL80211_PKTPAT 42212ee67178SXianjun Jiao #define MAX_NL80211_WOWLAN_PKTPAT MAX_NL80211_PKTPAT 42222ee67178SXianjun Jiao #define nl80211_wowlan_pattern_support nl80211_pattern_support 42232ee67178SXianjun Jiao 42242ee67178SXianjun Jiao /** 42252ee67178SXianjun Jiao * enum nl80211_wowlan_triggers - WoWLAN trigger definitions 42262ee67178SXianjun Jiao * @__NL80211_WOWLAN_TRIG_INVALID: invalid number for nested attributes 42272ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_ANY: wake up on any activity, do not really put 42282ee67178SXianjun Jiao * the chip into a special state -- works best with chips that have 42292ee67178SXianjun Jiao * support for low-power operation already (flag) 42304ecf49bbSJiao Xianjun * Note that this mode is incompatible with all of the others, if 42314ecf49bbSJiao Xianjun * any others are even supported by the device. 42322ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_DISCONNECT: wake up on disconnect, the way disconnect 42332ee67178SXianjun Jiao * is detected is implementation-specific (flag) 42342ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_MAGIC_PKT: wake up on magic packet (6x 0xff, followed 42352ee67178SXianjun Jiao * by 16 repetitions of MAC addr, anywhere in payload) (flag) 42362ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_PKT_PATTERN: wake up on the specified packet patterns 42372ee67178SXianjun Jiao * which are passed in an array of nested attributes, each nested attribute 42382ee67178SXianjun Jiao * defining a with attributes from &struct nl80211_wowlan_trig_pkt_pattern. 42392ee67178SXianjun Jiao * Each pattern defines a wakeup packet. Packet offset is associated with 42402ee67178SXianjun Jiao * each pattern which is used while matching the pattern. The matching is 42412ee67178SXianjun Jiao * done on the MSDU, i.e. as though the packet was an 802.3 packet, so the 42422ee67178SXianjun Jiao * pattern matching is done after the packet is converted to the MSDU. 42432ee67178SXianjun Jiao * 42442ee67178SXianjun Jiao * In %NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED, it is a binary attribute 42452ee67178SXianjun Jiao * carrying a &struct nl80211_pattern_support. 42462ee67178SXianjun Jiao * 42472ee67178SXianjun Jiao * When reporting wakeup. it is a u32 attribute containing the 0-based 42482ee67178SXianjun Jiao * index of the pattern that caused the wakeup, in the patterns passed 42492ee67178SXianjun Jiao * to the kernel when configuring. 42502ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED: Not a real trigger, and cannot be 42512ee67178SXianjun Jiao * used when setting, used only to indicate that GTK rekeying is supported 42522ee67178SXianjun Jiao * by the device (flag) 42532ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE: wake up on GTK rekey failure (if 42542ee67178SXianjun Jiao * done by the device) (flag) 42552ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST: wake up on EAP Identity Request 42562ee67178SXianjun Jiao * packet (flag) 42572ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE: wake up on 4-way handshake (flag) 42582ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_RFKILL_RELEASE: wake up when rfkill is released 42592ee67178SXianjun Jiao * (on devices that have rfkill in the device) (flag) 42602ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211: For wakeup reporting only, contains 42612ee67178SXianjun Jiao * the 802.11 packet that caused the wakeup, e.g. a deauth frame. The frame 42622ee67178SXianjun Jiao * may be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN 42632ee67178SXianjun Jiao * attribute contains the original length. 42642ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN: Original length of the 802.11 42652ee67178SXianjun Jiao * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 42662ee67178SXianjun Jiao * attribute if the packet was truncated somewhere. 42672ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023: For wakeup reporting only, contains the 42682ee67178SXianjun Jiao * 802.11 packet that caused the wakeup, e.g. a magic packet. The frame may 42692ee67178SXianjun Jiao * be truncated, the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN attribute 42702ee67178SXianjun Jiao * contains the original length. 42712ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN: Original length of the 802.3 42722ee67178SXianjun Jiao * packet, may be bigger than the @NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 42732ee67178SXianjun Jiao * attribute if the packet was truncated somewhere. 42742ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_TCP_CONNECTION: TCP connection wake, see DOC section 42752ee67178SXianjun Jiao * "TCP connection wakeup" for more details. This is a nested attribute 42762ee67178SXianjun Jiao * containing the exact information for establishing and keeping alive 42772ee67178SXianjun Jiao * the TCP connection. 42782ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_TCP_WAKEUP_MATCH: For wakeup reporting only, the 42792ee67178SXianjun Jiao * wakeup packet was received on the TCP connection 42802ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST: For wakeup reporting only, the 42812ee67178SXianjun Jiao * TCP connection was lost or failed to be established 42822ee67178SXianjun Jiao * @NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS: For wakeup reporting only, 42832ee67178SXianjun Jiao * the TCP connection ran out of tokens to use for data to send to the 42842ee67178SXianjun Jiao * service 42854ecf49bbSJiao Xianjun * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network 42864ecf49bbSJiao Xianjun * is detected. This is a nested attribute that contains the 42874ecf49bbSJiao Xianjun * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It 42884ecf49bbSJiao Xianjun * specifies how the scan is performed (e.g. the interval, the 42894ecf49bbSJiao Xianjun * channels to scan and the initial delay) as well as the scan 42904ecf49bbSJiao Xianjun * results that will trigger a wake (i.e. the matchsets). This 42914ecf49bbSJiao Xianjun * attribute is also sent in a response to 42924ecf49bbSJiao Xianjun * @NL80211_CMD_GET_WIPHY, indicating the number of match sets 42934ecf49bbSJiao Xianjun * supported by the driver (u32). 42944ecf49bbSJiao Xianjun * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute 42954ecf49bbSJiao Xianjun * containing an array with information about what triggered the 42964ecf49bbSJiao Xianjun * wake up. If no elements are present in the array, it means 42974ecf49bbSJiao Xianjun * that the information is not available. If more than one 42984ecf49bbSJiao Xianjun * element is present, it means that more than one match 42994ecf49bbSJiao Xianjun * occurred. 43004ecf49bbSJiao Xianjun * Each element in the array is a nested attribute that contains 43014ecf49bbSJiao Xianjun * one optional %NL80211_ATTR_SSID attribute and one optional 43024ecf49bbSJiao Xianjun * %NL80211_ATTR_SCAN_FREQUENCIES attribute. At least one of 43034ecf49bbSJiao Xianjun * these attributes must be present. If 43044ecf49bbSJiao Xianjun * %NL80211_ATTR_SCAN_FREQUENCIES contains more than one 43054ecf49bbSJiao Xianjun * frequency, it means that the match occurred in more than one 43064ecf49bbSJiao Xianjun * channel. 43072ee67178SXianjun Jiao * @NUM_NL80211_WOWLAN_TRIG: number of wake on wireless triggers 43082ee67178SXianjun Jiao * @MAX_NL80211_WOWLAN_TRIG: highest wowlan trigger attribute number 43092ee67178SXianjun Jiao * 43102ee67178SXianjun Jiao * These nested attributes are used to configure the wakeup triggers and 43112ee67178SXianjun Jiao * to report the wakeup reason(s). 43122ee67178SXianjun Jiao */ 43132ee67178SXianjun Jiao enum nl80211_wowlan_triggers { 43142ee67178SXianjun Jiao __NL80211_WOWLAN_TRIG_INVALID, 43152ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_ANY, 43162ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_DISCONNECT, 43172ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_MAGIC_PKT, 43182ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_PKT_PATTERN, 43192ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED, 43202ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE, 43212ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST, 43222ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE, 43232ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_RFKILL_RELEASE, 43242ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211, 43252ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN, 43262ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023, 43272ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN, 43282ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_TCP_CONNECTION, 43292ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH, 43302ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST, 43312ee67178SXianjun Jiao NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS, 43324ecf49bbSJiao Xianjun NL80211_WOWLAN_TRIG_NET_DETECT, 43334ecf49bbSJiao Xianjun NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS, 43342ee67178SXianjun Jiao 43352ee67178SXianjun Jiao /* keep last */ 43362ee67178SXianjun Jiao NUM_NL80211_WOWLAN_TRIG, 43372ee67178SXianjun Jiao MAX_NL80211_WOWLAN_TRIG = NUM_NL80211_WOWLAN_TRIG - 1 43382ee67178SXianjun Jiao }; 43392ee67178SXianjun Jiao 43402ee67178SXianjun Jiao /** 43412ee67178SXianjun Jiao * DOC: TCP connection wakeup 43422ee67178SXianjun Jiao * 43432ee67178SXianjun Jiao * Some devices can establish a TCP connection in order to be woken up by a 43442ee67178SXianjun Jiao * packet coming in from outside their network segment, or behind NAT. If 43452ee67178SXianjun Jiao * configured, the device will establish a TCP connection to the given 43462ee67178SXianjun Jiao * service, and periodically send data to that service. The first data 43472ee67178SXianjun Jiao * packet is usually transmitted after SYN/ACK, also ACKing the SYN/ACK. 43482ee67178SXianjun Jiao * The data packets can optionally include a (little endian) sequence 43492ee67178SXianjun Jiao * number (in the TCP payload!) that is generated by the device, and, also 43502ee67178SXianjun Jiao * optionally, a token from a list of tokens. This serves as a keep-alive 43512ee67178SXianjun Jiao * with the service, and for NATed connections, etc. 43522ee67178SXianjun Jiao * 43532ee67178SXianjun Jiao * During this keep-alive period, the server doesn't send any data to the 43542ee67178SXianjun Jiao * client. When receiving data, it is compared against the wakeup pattern 43552ee67178SXianjun Jiao * (and mask) and if it matches, the host is woken up. Similarly, if the 43562ee67178SXianjun Jiao * connection breaks or cannot be established to start with, the host is 43572ee67178SXianjun Jiao * also woken up. 43582ee67178SXianjun Jiao * 43592ee67178SXianjun Jiao * Developer's note: ARP offload is required for this, otherwise TCP 43602ee67178SXianjun Jiao * response packets might not go through correctly. 43612ee67178SXianjun Jiao */ 43622ee67178SXianjun Jiao 43632ee67178SXianjun Jiao /** 43642ee67178SXianjun Jiao * struct nl80211_wowlan_tcp_data_seq - WoWLAN TCP data sequence 43652ee67178SXianjun Jiao * @start: starting value 43662ee67178SXianjun Jiao * @offset: offset of sequence number in packet 43672ee67178SXianjun Jiao * @len: length of the sequence value to write, 1 through 4 43682ee67178SXianjun Jiao * 43692ee67178SXianjun Jiao * Note: don't confuse with the TCP sequence number(s), this is for the 43702ee67178SXianjun Jiao * keepalive packet payload. The actual value is written into the packet 43712ee67178SXianjun Jiao * in little endian. 43722ee67178SXianjun Jiao */ 43732ee67178SXianjun Jiao struct nl80211_wowlan_tcp_data_seq { 43742ee67178SXianjun Jiao __u32 start, offset, len; 43752ee67178SXianjun Jiao }; 43762ee67178SXianjun Jiao 43772ee67178SXianjun Jiao /** 43782ee67178SXianjun Jiao * struct nl80211_wowlan_tcp_data_token - WoWLAN TCP data token config 43792ee67178SXianjun Jiao * @offset: offset of token in packet 43802ee67178SXianjun Jiao * @len: length of each token 43812ee67178SXianjun Jiao * @token_stream: stream of data to be used for the tokens, the length must 43822ee67178SXianjun Jiao * be a multiple of @len for this to make sense 43832ee67178SXianjun Jiao */ 43842ee67178SXianjun Jiao struct nl80211_wowlan_tcp_data_token { 43852ee67178SXianjun Jiao __u32 offset, len; 43862ee67178SXianjun Jiao __u8 token_stream[]; 43872ee67178SXianjun Jiao }; 43882ee67178SXianjun Jiao 43892ee67178SXianjun Jiao /** 43902ee67178SXianjun Jiao * struct nl80211_wowlan_tcp_data_token_feature - data token features 43912ee67178SXianjun Jiao * @min_len: minimum token length 43922ee67178SXianjun Jiao * @max_len: maximum token length 43932ee67178SXianjun Jiao * @bufsize: total available token buffer size (max size of @token_stream) 43942ee67178SXianjun Jiao */ 43952ee67178SXianjun Jiao struct nl80211_wowlan_tcp_data_token_feature { 43962ee67178SXianjun Jiao __u32 min_len, max_len, bufsize; 43972ee67178SXianjun Jiao }; 43982ee67178SXianjun Jiao 43992ee67178SXianjun Jiao /** 44002ee67178SXianjun Jiao * enum nl80211_wowlan_tcp_attrs - WoWLAN TCP connection parameters 44012ee67178SXianjun Jiao * @__NL80211_WOWLAN_TCP_INVALID: invalid number for nested attributes 44022ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_SRC_IPV4: source IPv4 address (in network byte order) 44032ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DST_IPV4: destination IPv4 address 44042ee67178SXianjun Jiao * (in network byte order) 44052ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DST_MAC: destination MAC address, this is given because 44062ee67178SXianjun Jiao * route lookup when configured might be invalid by the time we suspend, 44072ee67178SXianjun Jiao * and doing a route lookup when suspending is no longer possible as it 44082ee67178SXianjun Jiao * might require ARP querying. 44092ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_SRC_PORT: source port (u16); optional, if not given a 44102ee67178SXianjun Jiao * socket and port will be allocated 44112ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DST_PORT: destination port (u16) 44122ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DATA_PAYLOAD: data packet payload, at least one byte. 44132ee67178SXianjun Jiao * For feature advertising, a u32 attribute holding the maximum length 44142ee67178SXianjun Jiao * of the data payload. 44152ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ: data packet sequence configuration 44162ee67178SXianjun Jiao * (if desired), a &struct nl80211_wowlan_tcp_data_seq. For feature 44172ee67178SXianjun Jiao * advertising it is just a flag 44182ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN: data packet token configuration, 44192ee67178SXianjun Jiao * see &struct nl80211_wowlan_tcp_data_token and for advertising see 44202ee67178SXianjun Jiao * &struct nl80211_wowlan_tcp_data_token_feature. 44212ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_DATA_INTERVAL: data interval in seconds, maximum 44222ee67178SXianjun Jiao * interval in feature advertising (u32) 44232ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_WAKE_PAYLOAD: wake packet payload, for advertising a 44242ee67178SXianjun Jiao * u32 attribute holding the maximum length 44252ee67178SXianjun Jiao * @NL80211_WOWLAN_TCP_WAKE_MASK: Wake packet payload mask, not used for 44262ee67178SXianjun Jiao * feature advertising. The mask works like @NL80211_PKTPAT_MASK 44272ee67178SXianjun Jiao * but on the TCP payload only. 44282ee67178SXianjun Jiao * @NUM_NL80211_WOWLAN_TCP: number of TCP attributes 44292ee67178SXianjun Jiao * @MAX_NL80211_WOWLAN_TCP: highest attribute number 44302ee67178SXianjun Jiao */ 44312ee67178SXianjun Jiao enum nl80211_wowlan_tcp_attrs { 44322ee67178SXianjun Jiao __NL80211_WOWLAN_TCP_INVALID, 44332ee67178SXianjun Jiao NL80211_WOWLAN_TCP_SRC_IPV4, 44342ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DST_IPV4, 44352ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DST_MAC, 44362ee67178SXianjun Jiao NL80211_WOWLAN_TCP_SRC_PORT, 44372ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DST_PORT, 44382ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DATA_PAYLOAD, 44392ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ, 44402ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN, 44412ee67178SXianjun Jiao NL80211_WOWLAN_TCP_DATA_INTERVAL, 44422ee67178SXianjun Jiao NL80211_WOWLAN_TCP_WAKE_PAYLOAD, 44432ee67178SXianjun Jiao NL80211_WOWLAN_TCP_WAKE_MASK, 44442ee67178SXianjun Jiao 44452ee67178SXianjun Jiao /* keep last */ 44462ee67178SXianjun Jiao NUM_NL80211_WOWLAN_TCP, 44472ee67178SXianjun Jiao MAX_NL80211_WOWLAN_TCP = NUM_NL80211_WOWLAN_TCP - 1 44482ee67178SXianjun Jiao }; 44492ee67178SXianjun Jiao 44502ee67178SXianjun Jiao /** 44512ee67178SXianjun Jiao * struct nl80211_coalesce_rule_support - coalesce rule support information 44522ee67178SXianjun Jiao * @max_rules: maximum number of rules supported 44532ee67178SXianjun Jiao * @pat: packet pattern support information 44542ee67178SXianjun Jiao * @max_delay: maximum supported coalescing delay in msecs 44552ee67178SXianjun Jiao * 44562ee67178SXianjun Jiao * This struct is carried in %NL80211_ATTR_COALESCE_RULE in the 44572ee67178SXianjun Jiao * capability information given by the kernel to userspace. 44582ee67178SXianjun Jiao */ 44592ee67178SXianjun Jiao struct nl80211_coalesce_rule_support { 44602ee67178SXianjun Jiao __u32 max_rules; 44612ee67178SXianjun Jiao struct nl80211_pattern_support pat; 44622ee67178SXianjun Jiao __u32 max_delay; 44632ee67178SXianjun Jiao } __attribute__((packed)); 44642ee67178SXianjun Jiao 44652ee67178SXianjun Jiao /** 44662ee67178SXianjun Jiao * enum nl80211_attr_coalesce_rule - coalesce rule attribute 44672ee67178SXianjun Jiao * @__NL80211_COALESCE_RULE_INVALID: invalid number for nested attribute 44682ee67178SXianjun Jiao * @NL80211_ATTR_COALESCE_RULE_DELAY: delay in msecs used for packet coalescing 44692ee67178SXianjun Jiao * @NL80211_ATTR_COALESCE_RULE_CONDITION: condition for packet coalescence, 44702ee67178SXianjun Jiao * see &enum nl80211_coalesce_condition. 44712ee67178SXianjun Jiao * @NL80211_ATTR_COALESCE_RULE_PKT_PATTERN: packet offset, pattern is matched 44722ee67178SXianjun Jiao * after these fixed number of bytes of received packet 44732ee67178SXianjun Jiao * @NUM_NL80211_ATTR_COALESCE_RULE: number of attributes 44742ee67178SXianjun Jiao * @NL80211_ATTR_COALESCE_RULE_MAX: max attribute number 44752ee67178SXianjun Jiao */ 44762ee67178SXianjun Jiao enum nl80211_attr_coalesce_rule { 44772ee67178SXianjun Jiao __NL80211_COALESCE_RULE_INVALID, 44782ee67178SXianjun Jiao NL80211_ATTR_COALESCE_RULE_DELAY, 44792ee67178SXianjun Jiao NL80211_ATTR_COALESCE_RULE_CONDITION, 44802ee67178SXianjun Jiao NL80211_ATTR_COALESCE_RULE_PKT_PATTERN, 44812ee67178SXianjun Jiao 44822ee67178SXianjun Jiao /* keep last */ 44832ee67178SXianjun Jiao NUM_NL80211_ATTR_COALESCE_RULE, 44842ee67178SXianjun Jiao NL80211_ATTR_COALESCE_RULE_MAX = NUM_NL80211_ATTR_COALESCE_RULE - 1 44852ee67178SXianjun Jiao }; 44862ee67178SXianjun Jiao 44872ee67178SXianjun Jiao /** 44882ee67178SXianjun Jiao * enum nl80211_coalesce_condition - coalesce rule conditions 4489*b1dd94e3Sluz paz * @NL80211_COALESCE_CONDITION_MATCH: coalesce Rx packets when patterns 44902ee67178SXianjun Jiao * in a rule are matched. 44912ee67178SXianjun Jiao * @NL80211_COALESCE_CONDITION_NO_MATCH: coalesce Rx packets when patterns 44922ee67178SXianjun Jiao * in a rule are not matched. 44932ee67178SXianjun Jiao */ 44942ee67178SXianjun Jiao enum nl80211_coalesce_condition { 44952ee67178SXianjun Jiao NL80211_COALESCE_CONDITION_MATCH, 44962ee67178SXianjun Jiao NL80211_COALESCE_CONDITION_NO_MATCH 44972ee67178SXianjun Jiao }; 44982ee67178SXianjun Jiao 44992ee67178SXianjun Jiao /** 45002ee67178SXianjun Jiao * enum nl80211_iface_limit_attrs - limit attributes 45012ee67178SXianjun Jiao * @NL80211_IFACE_LIMIT_UNSPEC: (reserved) 45022ee67178SXianjun Jiao * @NL80211_IFACE_LIMIT_MAX: maximum number of interfaces that 45032ee67178SXianjun Jiao * can be chosen from this set of interface types (u32) 45042ee67178SXianjun Jiao * @NL80211_IFACE_LIMIT_TYPES: nested attribute containing a 45052ee67178SXianjun Jiao * flag attribute for each interface type in this set 45062ee67178SXianjun Jiao * @NUM_NL80211_IFACE_LIMIT: number of attributes 45072ee67178SXianjun Jiao * @MAX_NL80211_IFACE_LIMIT: highest attribute number 45082ee67178SXianjun Jiao */ 45092ee67178SXianjun Jiao enum nl80211_iface_limit_attrs { 45102ee67178SXianjun Jiao NL80211_IFACE_LIMIT_UNSPEC, 45112ee67178SXianjun Jiao NL80211_IFACE_LIMIT_MAX, 45122ee67178SXianjun Jiao NL80211_IFACE_LIMIT_TYPES, 45132ee67178SXianjun Jiao 45142ee67178SXianjun Jiao /* keep last */ 45152ee67178SXianjun Jiao NUM_NL80211_IFACE_LIMIT, 45162ee67178SXianjun Jiao MAX_NL80211_IFACE_LIMIT = NUM_NL80211_IFACE_LIMIT - 1 45172ee67178SXianjun Jiao }; 45182ee67178SXianjun Jiao 45192ee67178SXianjun Jiao /** 45202ee67178SXianjun Jiao * enum nl80211_if_combination_attrs -- interface combination attributes 45212ee67178SXianjun Jiao * 45222ee67178SXianjun Jiao * @NL80211_IFACE_COMB_UNSPEC: (reserved) 45232ee67178SXianjun Jiao * @NL80211_IFACE_COMB_LIMITS: Nested attributes containing the limits 45242ee67178SXianjun Jiao * for given interface types, see &enum nl80211_iface_limit_attrs. 45252ee67178SXianjun Jiao * @NL80211_IFACE_COMB_MAXNUM: u32 attribute giving the total number of 45262ee67178SXianjun Jiao * interfaces that can be created in this group. This number doesn't 45272ee67178SXianjun Jiao * apply to interfaces purely managed in software, which are listed 45282ee67178SXianjun Jiao * in a separate attribute %NL80211_ATTR_INTERFACES_SOFTWARE. 45292ee67178SXianjun Jiao * @NL80211_IFACE_COMB_STA_AP_BI_MATCH: flag attribute specifying that 45302ee67178SXianjun Jiao * beacon intervals within this group must be all the same even for 45312ee67178SXianjun Jiao * infrastructure and AP/GO combinations, i.e. the GO(s) must adopt 45322ee67178SXianjun Jiao * the infrastructure network's beacon interval. 45332ee67178SXianjun Jiao * @NL80211_IFACE_COMB_NUM_CHANNELS: u32 attribute specifying how many 45342ee67178SXianjun Jiao * different channels may be used within this group. 45352ee67178SXianjun Jiao * @NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS: u32 attribute containing the bitmap 45362ee67178SXianjun Jiao * of supported channel widths for radar detection. 45372ee67178SXianjun Jiao * @NL80211_IFACE_COMB_RADAR_DETECT_REGIONS: u32 attribute containing the bitmap 45382ee67178SXianjun Jiao * of supported regulatory regions for radar detection. 45394ecf49bbSJiao Xianjun * @NL80211_IFACE_COMB_BI_MIN_GCD: u32 attribute specifying the minimum GCD of 45404ecf49bbSJiao Xianjun * different beacon intervals supported by all the interface combinations 45414ecf49bbSJiao Xianjun * in this group (if not present, all beacon intervals be identical). 45422ee67178SXianjun Jiao * @NUM_NL80211_IFACE_COMB: number of attributes 45432ee67178SXianjun Jiao * @MAX_NL80211_IFACE_COMB: highest attribute number 45442ee67178SXianjun Jiao * 45452ee67178SXianjun Jiao * Examples: 45462ee67178SXianjun Jiao * limits = [ #{STA} <= 1, #{AP} <= 1 ], matching BI, channels = 1, max = 2 45472ee67178SXianjun Jiao * => allows an AP and a STA that must match BIs 45482ee67178SXianjun Jiao * 45494ecf49bbSJiao Xianjun * numbers = [ #{AP, P2P-GO} <= 8 ], BI min gcd, channels = 1, max = 8, 45504ecf49bbSJiao Xianjun * => allows 8 of AP/GO that can have BI gcd >= min gcd 45512ee67178SXianjun Jiao * 45522ee67178SXianjun Jiao * numbers = [ #{STA} <= 2 ], channels = 2, max = 2 45532ee67178SXianjun Jiao * => allows two STAs on different channels 45542ee67178SXianjun Jiao * 45552ee67178SXianjun Jiao * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4 45562ee67178SXianjun Jiao * => allows a STA plus three P2P interfaces 45572ee67178SXianjun Jiao * 4558*b1dd94e3Sluz paz * The list of these four possibilities could completely be contained 45592ee67178SXianjun Jiao * within the %NL80211_ATTR_INTERFACE_COMBINATIONS attribute to indicate 45602ee67178SXianjun Jiao * that any of these groups must match. 45612ee67178SXianjun Jiao * 45622ee67178SXianjun Jiao * "Combinations" of just a single interface will not be listed here, 45632ee67178SXianjun Jiao * a single interface of any valid interface type is assumed to always 45642ee67178SXianjun Jiao * be possible by itself. This means that implicitly, for each valid 45652ee67178SXianjun Jiao * interface type, the following group always exists: 45662ee67178SXianjun Jiao * numbers = [ #{<type>} <= 1 ], channels = 1, max = 1 45672ee67178SXianjun Jiao */ 45682ee67178SXianjun Jiao enum nl80211_if_combination_attrs { 45692ee67178SXianjun Jiao NL80211_IFACE_COMB_UNSPEC, 45702ee67178SXianjun Jiao NL80211_IFACE_COMB_LIMITS, 45712ee67178SXianjun Jiao NL80211_IFACE_COMB_MAXNUM, 45722ee67178SXianjun Jiao NL80211_IFACE_COMB_STA_AP_BI_MATCH, 45732ee67178SXianjun Jiao NL80211_IFACE_COMB_NUM_CHANNELS, 45742ee67178SXianjun Jiao NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, 45752ee67178SXianjun Jiao NL80211_IFACE_COMB_RADAR_DETECT_REGIONS, 45764ecf49bbSJiao Xianjun NL80211_IFACE_COMB_BI_MIN_GCD, 45772ee67178SXianjun Jiao 45782ee67178SXianjun Jiao /* keep last */ 45792ee67178SXianjun Jiao NUM_NL80211_IFACE_COMB, 45802ee67178SXianjun Jiao MAX_NL80211_IFACE_COMB = NUM_NL80211_IFACE_COMB - 1 45812ee67178SXianjun Jiao }; 45822ee67178SXianjun Jiao 45832ee67178SXianjun Jiao 45842ee67178SXianjun Jiao /** 45852ee67178SXianjun Jiao * enum nl80211_plink_state - state of a mesh peer link finite state machine 45862ee67178SXianjun Jiao * 45872ee67178SXianjun Jiao * @NL80211_PLINK_LISTEN: initial state, considered the implicit 4588*b1dd94e3Sluz paz * state of non existent mesh peer links 45892ee67178SXianjun Jiao * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to 45902ee67178SXianjun Jiao * this mesh peer 45912ee67178SXianjun Jiao * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received 45922ee67178SXianjun Jiao * from this mesh peer 45932ee67178SXianjun Jiao * @NL80211_PLINK_CNF_RCVD: mesh plink confirm frame has been 45942ee67178SXianjun Jiao * received from this mesh peer 45952ee67178SXianjun Jiao * @NL80211_PLINK_ESTAB: mesh peer link is established 45962ee67178SXianjun Jiao * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled 45972ee67178SXianjun Jiao * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh 45982ee67178SXianjun Jiao * plink are discarded 45992ee67178SXianjun Jiao * @NUM_NL80211_PLINK_STATES: number of peer link states 46002ee67178SXianjun Jiao * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states 46012ee67178SXianjun Jiao */ 46022ee67178SXianjun Jiao enum nl80211_plink_state { 46032ee67178SXianjun Jiao NL80211_PLINK_LISTEN, 46042ee67178SXianjun Jiao NL80211_PLINK_OPN_SNT, 46052ee67178SXianjun Jiao NL80211_PLINK_OPN_RCVD, 46062ee67178SXianjun Jiao NL80211_PLINK_CNF_RCVD, 46072ee67178SXianjun Jiao NL80211_PLINK_ESTAB, 46082ee67178SXianjun Jiao NL80211_PLINK_HOLDING, 46092ee67178SXianjun Jiao NL80211_PLINK_BLOCKED, 46102ee67178SXianjun Jiao 46112ee67178SXianjun Jiao /* keep last */ 46122ee67178SXianjun Jiao NUM_NL80211_PLINK_STATES, 46132ee67178SXianjun Jiao MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1 46142ee67178SXianjun Jiao }; 46152ee67178SXianjun Jiao 46162ee67178SXianjun Jiao /** 46172ee67178SXianjun Jiao * enum nl80211_plink_action - actions to perform in mesh peers 46182ee67178SXianjun Jiao * 46192ee67178SXianjun Jiao * @NL80211_PLINK_ACTION_NO_ACTION: perform no action 46202ee67178SXianjun Jiao * @NL80211_PLINK_ACTION_OPEN: start mesh peer link establishment 46212ee67178SXianjun Jiao * @NL80211_PLINK_ACTION_BLOCK: block traffic from this mesh peer 46222ee67178SXianjun Jiao * @NUM_NL80211_PLINK_ACTIONS: number of possible actions 46232ee67178SXianjun Jiao */ 46242ee67178SXianjun Jiao enum plink_actions { 46252ee67178SXianjun Jiao NL80211_PLINK_ACTION_NO_ACTION, 46262ee67178SXianjun Jiao NL80211_PLINK_ACTION_OPEN, 46272ee67178SXianjun Jiao NL80211_PLINK_ACTION_BLOCK, 46282ee67178SXianjun Jiao 46292ee67178SXianjun Jiao NUM_NL80211_PLINK_ACTIONS, 46302ee67178SXianjun Jiao }; 46312ee67178SXianjun Jiao 46322ee67178SXianjun Jiao 46332ee67178SXianjun Jiao #define NL80211_KCK_LEN 16 46342ee67178SXianjun Jiao #define NL80211_KEK_LEN 16 46352ee67178SXianjun Jiao #define NL80211_REPLAY_CTR_LEN 8 46362ee67178SXianjun Jiao 46372ee67178SXianjun Jiao /** 46382ee67178SXianjun Jiao * enum nl80211_rekey_data - attributes for GTK rekey offload 46392ee67178SXianjun Jiao * @__NL80211_REKEY_DATA_INVALID: invalid number for nested attributes 46402ee67178SXianjun Jiao * @NL80211_REKEY_DATA_KEK: key encryption key (binary) 46412ee67178SXianjun Jiao * @NL80211_REKEY_DATA_KCK: key confirmation key (binary) 46422ee67178SXianjun Jiao * @NL80211_REKEY_DATA_REPLAY_CTR: replay counter (binary) 46432ee67178SXianjun Jiao * @NUM_NL80211_REKEY_DATA: number of rekey attributes (internal) 46442ee67178SXianjun Jiao * @MAX_NL80211_REKEY_DATA: highest rekey attribute (internal) 46452ee67178SXianjun Jiao */ 46462ee67178SXianjun Jiao enum nl80211_rekey_data { 46472ee67178SXianjun Jiao __NL80211_REKEY_DATA_INVALID, 46482ee67178SXianjun Jiao NL80211_REKEY_DATA_KEK, 46492ee67178SXianjun Jiao NL80211_REKEY_DATA_KCK, 46502ee67178SXianjun Jiao NL80211_REKEY_DATA_REPLAY_CTR, 46512ee67178SXianjun Jiao 46522ee67178SXianjun Jiao /* keep last */ 46532ee67178SXianjun Jiao NUM_NL80211_REKEY_DATA, 46542ee67178SXianjun Jiao MAX_NL80211_REKEY_DATA = NUM_NL80211_REKEY_DATA - 1 46552ee67178SXianjun Jiao }; 46562ee67178SXianjun Jiao 46572ee67178SXianjun Jiao /** 46582ee67178SXianjun Jiao * enum nl80211_hidden_ssid - values for %NL80211_ATTR_HIDDEN_SSID 46592ee67178SXianjun Jiao * @NL80211_HIDDEN_SSID_NOT_IN_USE: do not hide SSID (i.e., broadcast it in 46602ee67178SXianjun Jiao * Beacon frames) 46612ee67178SXianjun Jiao * @NL80211_HIDDEN_SSID_ZERO_LEN: hide SSID by using zero-length SSID element 46622ee67178SXianjun Jiao * in Beacon frames 46632ee67178SXianjun Jiao * @NL80211_HIDDEN_SSID_ZERO_CONTENTS: hide SSID by using correct length of SSID 46642ee67178SXianjun Jiao * element in Beacon frames but zero out each byte in the SSID 46652ee67178SXianjun Jiao */ 46662ee67178SXianjun Jiao enum nl80211_hidden_ssid { 46672ee67178SXianjun Jiao NL80211_HIDDEN_SSID_NOT_IN_USE, 46682ee67178SXianjun Jiao NL80211_HIDDEN_SSID_ZERO_LEN, 46692ee67178SXianjun Jiao NL80211_HIDDEN_SSID_ZERO_CONTENTS 46702ee67178SXianjun Jiao }; 46712ee67178SXianjun Jiao 46722ee67178SXianjun Jiao /** 46732ee67178SXianjun Jiao * enum nl80211_sta_wme_attr - station WME attributes 46742ee67178SXianjun Jiao * @__NL80211_STA_WME_INVALID: invalid number for nested attribute 46752ee67178SXianjun Jiao * @NL80211_STA_WME_UAPSD_QUEUES: bitmap of uapsd queues. the format 46762ee67178SXianjun Jiao * is the same as the AC bitmap in the QoS info field. 46772ee67178SXianjun Jiao * @NL80211_STA_WME_MAX_SP: max service period. the format is the same 46782ee67178SXianjun Jiao * as the MAX_SP field in the QoS info field (but already shifted down). 46792ee67178SXianjun Jiao * @__NL80211_STA_WME_AFTER_LAST: internal 46802ee67178SXianjun Jiao * @NL80211_STA_WME_MAX: highest station WME attribute 46812ee67178SXianjun Jiao */ 46822ee67178SXianjun Jiao enum nl80211_sta_wme_attr { 46832ee67178SXianjun Jiao __NL80211_STA_WME_INVALID, 46842ee67178SXianjun Jiao NL80211_STA_WME_UAPSD_QUEUES, 46852ee67178SXianjun Jiao NL80211_STA_WME_MAX_SP, 46862ee67178SXianjun Jiao 46872ee67178SXianjun Jiao /* keep last */ 46882ee67178SXianjun Jiao __NL80211_STA_WME_AFTER_LAST, 46892ee67178SXianjun Jiao NL80211_STA_WME_MAX = __NL80211_STA_WME_AFTER_LAST - 1 46902ee67178SXianjun Jiao }; 46912ee67178SXianjun Jiao 46922ee67178SXianjun Jiao /** 46932ee67178SXianjun Jiao * enum nl80211_pmksa_candidate_attr - attributes for PMKSA caching candidates 46942ee67178SXianjun Jiao * @__NL80211_PMKSA_CANDIDATE_INVALID: invalid number for nested attributes 46952ee67178SXianjun Jiao * @NL80211_PMKSA_CANDIDATE_INDEX: candidate index (u32; the smaller, the higher 46962ee67178SXianjun Jiao * priority) 46972ee67178SXianjun Jiao * @NL80211_PMKSA_CANDIDATE_BSSID: candidate BSSID (6 octets) 46982ee67178SXianjun Jiao * @NL80211_PMKSA_CANDIDATE_PREAUTH: RSN pre-authentication supported (flag) 46992ee67178SXianjun Jiao * @NUM_NL80211_PMKSA_CANDIDATE: number of PMKSA caching candidate attributes 47002ee67178SXianjun Jiao * (internal) 47012ee67178SXianjun Jiao * @MAX_NL80211_PMKSA_CANDIDATE: highest PMKSA caching candidate attribute 47022ee67178SXianjun Jiao * (internal) 47032ee67178SXianjun Jiao */ 47042ee67178SXianjun Jiao enum nl80211_pmksa_candidate_attr { 47052ee67178SXianjun Jiao __NL80211_PMKSA_CANDIDATE_INVALID, 47062ee67178SXianjun Jiao NL80211_PMKSA_CANDIDATE_INDEX, 47072ee67178SXianjun Jiao NL80211_PMKSA_CANDIDATE_BSSID, 47082ee67178SXianjun Jiao NL80211_PMKSA_CANDIDATE_PREAUTH, 47092ee67178SXianjun Jiao 47102ee67178SXianjun Jiao /* keep last */ 47112ee67178SXianjun Jiao NUM_NL80211_PMKSA_CANDIDATE, 47122ee67178SXianjun Jiao MAX_NL80211_PMKSA_CANDIDATE = NUM_NL80211_PMKSA_CANDIDATE - 1 47132ee67178SXianjun Jiao }; 47142ee67178SXianjun Jiao 47152ee67178SXianjun Jiao /** 47162ee67178SXianjun Jiao * enum nl80211_tdls_operation - values for %NL80211_ATTR_TDLS_OPERATION 47172ee67178SXianjun Jiao * @NL80211_TDLS_DISCOVERY_REQ: Send a TDLS discovery request 47182ee67178SXianjun Jiao * @NL80211_TDLS_SETUP: Setup TDLS link 47192ee67178SXianjun Jiao * @NL80211_TDLS_TEARDOWN: Teardown a TDLS link which is already established 47202ee67178SXianjun Jiao * @NL80211_TDLS_ENABLE_LINK: Enable TDLS link 47212ee67178SXianjun Jiao * @NL80211_TDLS_DISABLE_LINK: Disable TDLS link 47222ee67178SXianjun Jiao */ 47232ee67178SXianjun Jiao enum nl80211_tdls_operation { 47242ee67178SXianjun Jiao NL80211_TDLS_DISCOVERY_REQ, 47252ee67178SXianjun Jiao NL80211_TDLS_SETUP, 47262ee67178SXianjun Jiao NL80211_TDLS_TEARDOWN, 47272ee67178SXianjun Jiao NL80211_TDLS_ENABLE_LINK, 47282ee67178SXianjun Jiao NL80211_TDLS_DISABLE_LINK, 47292ee67178SXianjun Jiao }; 47302ee67178SXianjun Jiao 47312ee67178SXianjun Jiao /* 47322ee67178SXianjun Jiao * enum nl80211_ap_sme_features - device-integrated AP features 47332ee67178SXianjun Jiao * Reserved for future use, no bits are defined in 47342ee67178SXianjun Jiao * NL80211_ATTR_DEVICE_AP_SME yet. 47352ee67178SXianjun Jiao enum nl80211_ap_sme_features { 47362ee67178SXianjun Jiao }; 47372ee67178SXianjun Jiao */ 47382ee67178SXianjun Jiao 47392ee67178SXianjun Jiao /** 47402ee67178SXianjun Jiao * enum nl80211_feature_flags - device/driver features 47412ee67178SXianjun Jiao * @NL80211_FEATURE_SK_TX_STATUS: This driver supports reflecting back 47422ee67178SXianjun Jiao * TX status to the socket error queue when requested with the 47432ee67178SXianjun Jiao * socket option. 47442ee67178SXianjun Jiao * @NL80211_FEATURE_HT_IBSS: This driver supports IBSS with HT datarates. 47452ee67178SXianjun Jiao * @NL80211_FEATURE_INACTIVITY_TIMER: This driver takes care of freeing up 47462ee67178SXianjun Jiao * the connected inactive stations in AP mode. 47472ee67178SXianjun Jiao * @NL80211_FEATURE_CELL_BASE_REG_HINTS: This driver has been tested 4748*b1dd94e3Sluz paz * to work properly to support receiving regulatory hints from 47492ee67178SXianjun Jiao * cellular base stations. 47502ee67178SXianjun Jiao * @NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL: (no longer available, only 47512ee67178SXianjun Jiao * here to reserve the value for API/ABI compatibility) 47522ee67178SXianjun Jiao * @NL80211_FEATURE_SAE: This driver supports simultaneous authentication of 47532ee67178SXianjun Jiao * equals (SAE) with user space SME (NL80211_CMD_AUTHENTICATE) in station 47542ee67178SXianjun Jiao * mode 47552ee67178SXianjun Jiao * @NL80211_FEATURE_LOW_PRIORITY_SCAN: This driver supports low priority scan 47562ee67178SXianjun Jiao * @NL80211_FEATURE_SCAN_FLUSH: Scan flush is supported 47572ee67178SXianjun Jiao * @NL80211_FEATURE_AP_SCAN: Support scanning using an AP vif 47582ee67178SXianjun Jiao * @NL80211_FEATURE_VIF_TXPOWER: The driver supports per-vif TX power setting 47592ee67178SXianjun Jiao * @NL80211_FEATURE_NEED_OBSS_SCAN: The driver expects userspace to perform 47602ee67178SXianjun Jiao * OBSS scans and generate 20/40 BSS coex reports. This flag is used only 47612ee67178SXianjun Jiao * for drivers implementing the CONNECT API, for AUTH/ASSOC it is implied. 47622ee67178SXianjun Jiao * @NL80211_FEATURE_P2P_GO_CTWIN: P2P GO implementation supports CT Window 47632ee67178SXianjun Jiao * setting 47642ee67178SXianjun Jiao * @NL80211_FEATURE_P2P_GO_OPPPS: P2P GO implementation supports opportunistic 47652ee67178SXianjun Jiao * powersave 47662ee67178SXianjun Jiao * @NL80211_FEATURE_FULL_AP_CLIENT_STATE: The driver supports full state 47672ee67178SXianjun Jiao * transitions for AP clients. Without this flag (and if the driver 47682ee67178SXianjun Jiao * doesn't have the AP SME in the device) the driver supports adding 47692ee67178SXianjun Jiao * stations only when they're associated and adds them in associated 47702ee67178SXianjun Jiao * state (to later be transitioned into authorized), with this flag 47712ee67178SXianjun Jiao * they should be added before even sending the authentication reply 47722ee67178SXianjun Jiao * and then transitioned into authenticated, associated and authorized 47732ee67178SXianjun Jiao * states using station flags. 47742ee67178SXianjun Jiao * Note that even for drivers that support this, the default is to add 47752ee67178SXianjun Jiao * stations in authenticated/associated state, so to add unauthenticated 47762ee67178SXianjun Jiao * stations the authenticated/associated bits have to be set in the mask. 47772ee67178SXianjun Jiao * @NL80211_FEATURE_ADVERTISE_CHAN_LIMITS: cfg80211 advertises channel limits 47782ee67178SXianjun Jiao * (HT40, VHT 80/160 MHz) if this flag is set 47792ee67178SXianjun Jiao * @NL80211_FEATURE_USERSPACE_MPM: This driver supports a userspace Mesh 47802ee67178SXianjun Jiao * Peering Management entity which may be implemented by registering for 47812ee67178SXianjun Jiao * beacons or NL80211_CMD_NEW_PEER_CANDIDATE events. The mesh beacon is 47822ee67178SXianjun Jiao * still generated by the driver. 47832ee67178SXianjun Jiao * @NL80211_FEATURE_ACTIVE_MONITOR: This driver supports an active monitor 47842ee67178SXianjun Jiao * interface. An active monitor interface behaves like a normal monitor 47852ee67178SXianjun Jiao * interface, but gets added to the driver. It ensures that incoming 47862ee67178SXianjun Jiao * unicast packets directed at the configured interface address get ACKed. 47872ee67178SXianjun Jiao * @NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE: This driver supports dynamic 47882ee67178SXianjun Jiao * channel bandwidth change (e.g., HT 20 <-> 40 MHz channel) during the 47892ee67178SXianjun Jiao * lifetime of a BSS. 47902ee67178SXianjun Jiao * @NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES: This device adds a DS Parameter 47912ee67178SXianjun Jiao * Set IE to probe requests. 47922ee67178SXianjun Jiao * @NL80211_FEATURE_WFA_TPC_IE_IN_PROBES: This device adds a WFA TPC Report IE 47932ee67178SXianjun Jiao * to probe requests. 47942ee67178SXianjun Jiao * @NL80211_FEATURE_QUIET: This device, in client mode, supports Quiet Period 47952ee67178SXianjun Jiao * requests sent to it by an AP. 47962ee67178SXianjun Jiao * @NL80211_FEATURE_TX_POWER_INSERTION: This device is capable of inserting the 47972ee67178SXianjun Jiao * current tx power value into the TPC Report IE in the spectrum 47982ee67178SXianjun Jiao * management TPC Report action frame, and in the Radio Measurement Link 47992ee67178SXianjun Jiao * Measurement Report action frame. 48002ee67178SXianjun Jiao * @NL80211_FEATURE_ACKTO_ESTIMATION: This driver supports dynamic ACK timeout 48012ee67178SXianjun Jiao * estimation (dynack). %NL80211_ATTR_WIPHY_DYN_ACK flag attribute is used 48022ee67178SXianjun Jiao * to enable dynack. 48032ee67178SXianjun Jiao * @NL80211_FEATURE_STATIC_SMPS: Device supports static spatial 48042ee67178SXianjun Jiao * multiplexing powersave, ie. can turn off all but one chain 48052ee67178SXianjun Jiao * even on HT connections that should be using more chains. 48062ee67178SXianjun Jiao * @NL80211_FEATURE_DYNAMIC_SMPS: Device supports dynamic spatial 48072ee67178SXianjun Jiao * multiplexing powersave, ie. can turn off all but one chain 48082ee67178SXianjun Jiao * and then wake the rest up as required after, for example, 48092ee67178SXianjun Jiao * rts/cts handshake. 48104ecf49bbSJiao Xianjun * @NL80211_FEATURE_SUPPORTS_WMM_ADMISSION: the device supports setting up WMM 48114ecf49bbSJiao Xianjun * TSPEC sessions (TID aka TSID 0-7) with the %NL80211_CMD_ADD_TX_TS 48124ecf49bbSJiao Xianjun * command. Standard IEEE 802.11 TSPEC setup is not yet supported, it 48134ecf49bbSJiao Xianjun * needs to be able to handle Block-Ack agreements and other things. 48144ecf49bbSJiao Xianjun * @NL80211_FEATURE_MAC_ON_CREATE: Device supports configuring 48154ecf49bbSJiao Xianjun * the vif's MAC address upon creation. 48164ecf49bbSJiao Xianjun * See 'macaddr' field in the vif_params (cfg80211.h). 48174ecf49bbSJiao Xianjun * @NL80211_FEATURE_TDLS_CHANNEL_SWITCH: Driver supports channel switching when 48184ecf49bbSJiao Xianjun * operating as a TDLS peer. 48194ecf49bbSJiao Xianjun * @NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR: This device/driver supports using a 48204ecf49bbSJiao Xianjun * random MAC address during scan (if the device is unassociated); the 48214ecf49bbSJiao Xianjun * %NL80211_SCAN_FLAG_RANDOM_ADDR flag may be set for scans and the MAC 48224ecf49bbSJiao Xianjun * address mask/value will be used. 48234ecf49bbSJiao Xianjun * @NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR: This device/driver supports 48244ecf49bbSJiao Xianjun * using a random MAC address for every scan iteration during scheduled 48254ecf49bbSJiao Xianjun * scan (while not associated), the %NL80211_SCAN_FLAG_RANDOM_ADDR may 48264ecf49bbSJiao Xianjun * be set for scheduled scan and the MAC address mask/value will be used. 48274ecf49bbSJiao Xianjun * @NL80211_FEATURE_ND_RANDOM_MAC_ADDR: This device/driver supports using a 48284ecf49bbSJiao Xianjun * random MAC address for every scan iteration during "net detect", i.e. 48294ecf49bbSJiao Xianjun * scan in unassociated WoWLAN, the %NL80211_SCAN_FLAG_RANDOM_ADDR may 48304ecf49bbSJiao Xianjun * be set for scheduled scan and the MAC address mask/value will be used. 48312ee67178SXianjun Jiao */ 48322ee67178SXianjun Jiao enum nl80211_feature_flags { 48332ee67178SXianjun Jiao NL80211_FEATURE_SK_TX_STATUS = 1 << 0, 48342ee67178SXianjun Jiao NL80211_FEATURE_HT_IBSS = 1 << 1, 48352ee67178SXianjun Jiao NL80211_FEATURE_INACTIVITY_TIMER = 1 << 2, 48362ee67178SXianjun Jiao NL80211_FEATURE_CELL_BASE_REG_HINTS = 1 << 3, 48372ee67178SXianjun Jiao NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 1 << 4, 48382ee67178SXianjun Jiao NL80211_FEATURE_SAE = 1 << 5, 48392ee67178SXianjun Jiao NL80211_FEATURE_LOW_PRIORITY_SCAN = 1 << 6, 48402ee67178SXianjun Jiao NL80211_FEATURE_SCAN_FLUSH = 1 << 7, 48412ee67178SXianjun Jiao NL80211_FEATURE_AP_SCAN = 1 << 8, 48422ee67178SXianjun Jiao NL80211_FEATURE_VIF_TXPOWER = 1 << 9, 48432ee67178SXianjun Jiao NL80211_FEATURE_NEED_OBSS_SCAN = 1 << 10, 48442ee67178SXianjun Jiao NL80211_FEATURE_P2P_GO_CTWIN = 1 << 11, 48452ee67178SXianjun Jiao NL80211_FEATURE_P2P_GO_OPPPS = 1 << 12, 48462ee67178SXianjun Jiao /* bit 13 is reserved */ 48472ee67178SXianjun Jiao NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 1 << 14, 48482ee67178SXianjun Jiao NL80211_FEATURE_FULL_AP_CLIENT_STATE = 1 << 15, 48492ee67178SXianjun Jiao NL80211_FEATURE_USERSPACE_MPM = 1 << 16, 48502ee67178SXianjun Jiao NL80211_FEATURE_ACTIVE_MONITOR = 1 << 17, 48512ee67178SXianjun Jiao NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 1 << 18, 48522ee67178SXianjun Jiao NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 1 << 19, 48532ee67178SXianjun Jiao NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 1 << 20, 48542ee67178SXianjun Jiao NL80211_FEATURE_QUIET = 1 << 21, 48552ee67178SXianjun Jiao NL80211_FEATURE_TX_POWER_INSERTION = 1 << 22, 48562ee67178SXianjun Jiao NL80211_FEATURE_ACKTO_ESTIMATION = 1 << 23, 48572ee67178SXianjun Jiao NL80211_FEATURE_STATIC_SMPS = 1 << 24, 48582ee67178SXianjun Jiao NL80211_FEATURE_DYNAMIC_SMPS = 1 << 25, 48594ecf49bbSJiao Xianjun NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 1 << 26, 48604ecf49bbSJiao Xianjun NL80211_FEATURE_MAC_ON_CREATE = 1 << 27, 48614ecf49bbSJiao Xianjun NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 1 << 28, 48624ecf49bbSJiao Xianjun NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 1 << 29, 48634ecf49bbSJiao Xianjun NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 1 << 30, 48644ecf49bbSJiao Xianjun NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31, 48654ecf49bbSJiao Xianjun }; 48664ecf49bbSJiao Xianjun 48674ecf49bbSJiao Xianjun /** 48684ecf49bbSJiao Xianjun * enum nl80211_ext_feature_index - bit index of extended features. 48694ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates. 48704ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_RRM: This driver supports RRM. When featured, user can 48714ecf49bbSJiao Xianjun * can request to use RRM (see %NL80211_ATTR_USE_RRM) with 48724ecf49bbSJiao Xianjun * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set 48734ecf49bbSJiao Xianjun * the ASSOC_REQ_USE_RRM flag in the association request even if 48744ecf49bbSJiao Xianjun * NL80211_FEATURE_QUIET is not advertized. 48754ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER: This device supports MU-MIMO air 48764ecf49bbSJiao Xianjun * sniffer which means that it can be configured to hear packets from 48774ecf49bbSJiao Xianjun * certain groups which can be configured by the 48784ecf49bbSJiao Xianjun * %NL80211_ATTR_MU_MIMO_GROUP_DATA attribute, 48794ecf49bbSJiao Xianjun * or can be configured to follow a station by configuring the 48804ecf49bbSJiao Xianjun * %NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR attribute. 48814ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_SCAN_START_TIME: This driver includes the actual 48824ecf49bbSJiao Xianjun * time the scan started in scan results event. The time is the TSF of 48834ecf49bbSJiao Xianjun * the BSS that the interface that requested the scan is connected to 48844ecf49bbSJiao Xianjun * (if available). 48854ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_BSS_PARENT_TSF: Per BSS, this driver reports the 48864ecf49bbSJiao Xianjun * time the last beacon/probe was received. The time is the TSF of the 48874ecf49bbSJiao Xianjun * BSS that the interface that requested the scan is connected to 48884ecf49bbSJiao Xianjun * (if available). 48894ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of 48904ecf49bbSJiao Xianjun * channel dwell time. 48914ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_BEACON_RATE_LEGACY: Driver supports beacon rate 48924ecf49bbSJiao Xianjun * configuration (AP/mesh), supporting a legacy (non HT/VHT) rate. 48934ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_BEACON_RATE_HT: Driver supports beacon rate 48944ecf49bbSJiao Xianjun * configuration (AP/mesh) with HT rates. 48954ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_BEACON_RATE_VHT: Driver supports beacon rate 48964ecf49bbSJiao Xianjun * configuration (AP/mesh) with VHT rates. 48974ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_FILS_STA: This driver supports Fast Initial Link Setup 48984ecf49bbSJiao Xianjun * with user space SME (NL80211_CMD_AUTHENTICATE) in station mode. 48994ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA: This driver supports randomized TA 49004ecf49bbSJiao Xianjun * in @NL80211_CMD_FRAME while not associated. 49014ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED: This driver supports 49024ecf49bbSJiao Xianjun * randomized TA in @NL80211_CMD_FRAME while associated. 49034ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI: The driver supports sched_scan 49044ecf49bbSJiao Xianjun * for reporting BSSs with better RSSI than the current connected BSS 49054ecf49bbSJiao Xianjun * (%NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI). 49064ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_CQM_RSSI_LIST: With this driver the 49074ecf49bbSJiao Xianjun * %NL80211_ATTR_CQM_RSSI_THOLD attribute accepts a list of zero or more 49084ecf49bbSJiao Xianjun * RSSI threshold values to monitor rather than exactly one threshold. 49094ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD: Driver SME supports FILS shared key 49104ecf49bbSJiao Xianjun * authentication with %NL80211_CMD_CONNECT. 49114ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK: Device wants to do 4-way 49124ecf49bbSJiao Xianjun * handshake with PSK in station mode (PSK is passed as part of the connect 49134ecf49bbSJiao Xianjun * and associate commands), doing it in the host might not be supported. 49144ecf49bbSJiao Xianjun * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X: Device wants to do doing 4-way 49154ecf49bbSJiao Xianjun * handshake with 802.1X in station mode (will pass EAP frames to the host 49164ecf49bbSJiao Xianjun * and accept the set_pmk/del_pmk commands), doing it in the host might not 49174ecf49bbSJiao Xianjun * be supported. 49184ecf49bbSJiao Xianjun * 49194ecf49bbSJiao Xianjun * @NUM_NL80211_EXT_FEATURES: number of extended features. 49204ecf49bbSJiao Xianjun * @MAX_NL80211_EXT_FEATURES: highest extended feature index. 49214ecf49bbSJiao Xianjun */ 49224ecf49bbSJiao Xianjun enum nl80211_ext_feature_index { 49234ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_VHT_IBSS, 49244ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_RRM, 49254ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER, 49264ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_SCAN_START_TIME, 49274ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_BSS_PARENT_TSF, 49284ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_SET_SCAN_DWELL, 49294ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_BEACON_RATE_LEGACY, 49304ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_BEACON_RATE_HT, 49314ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_BEACON_RATE_VHT, 49324ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_FILS_STA, 49334ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA, 49344ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED, 49354ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI, 49364ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_CQM_RSSI_LIST, 49374ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_FILS_SK_OFFLOAD, 49384ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK, 49394ecf49bbSJiao Xianjun NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X, 49404ecf49bbSJiao Xianjun 49414ecf49bbSJiao Xianjun /* add new features before the definition below */ 49424ecf49bbSJiao Xianjun NUM_NL80211_EXT_FEATURES, 49434ecf49bbSJiao Xianjun MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1 49442ee67178SXianjun Jiao }; 49452ee67178SXianjun Jiao 49462ee67178SXianjun Jiao /** 49472ee67178SXianjun Jiao * enum nl80211_probe_resp_offload_support_attr - optional supported 49482ee67178SXianjun Jiao * protocols for probe-response offloading by the driver/FW. 49492ee67178SXianjun Jiao * To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute. 49502ee67178SXianjun Jiao * Each enum value represents a bit in the bitmap of supported 49512ee67178SXianjun Jiao * protocols. Typically a subset of probe-requests belonging to a 49522ee67178SXianjun Jiao * supported protocol will be excluded from offload and uploaded 49532ee67178SXianjun Jiao * to the host. 49542ee67178SXianjun Jiao * 49552ee67178SXianjun Jiao * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS: Support for WPS ver. 1 49562ee67178SXianjun Jiao * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2: Support for WPS ver. 2 49572ee67178SXianjun Jiao * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P: Support for P2P 49582ee67178SXianjun Jiao * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U: Support for 802.11u 49592ee67178SXianjun Jiao */ 49602ee67178SXianjun Jiao enum nl80211_probe_resp_offload_support_attr { 49612ee67178SXianjun Jiao NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 1<<0, 49622ee67178SXianjun Jiao NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 1<<1, 49632ee67178SXianjun Jiao NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 1<<2, 49642ee67178SXianjun Jiao NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3, 49652ee67178SXianjun Jiao }; 49662ee67178SXianjun Jiao 49672ee67178SXianjun Jiao /** 49682ee67178SXianjun Jiao * enum nl80211_connect_failed_reason - connection request failed reasons 49692ee67178SXianjun Jiao * @NL80211_CONN_FAIL_MAX_CLIENTS: Maximum number of clients that can be 49702ee67178SXianjun Jiao * handled by the AP is reached. 49712ee67178SXianjun Jiao * @NL80211_CONN_FAIL_BLOCKED_CLIENT: Connection request is rejected due to ACL. 49722ee67178SXianjun Jiao */ 49732ee67178SXianjun Jiao enum nl80211_connect_failed_reason { 49742ee67178SXianjun Jiao NL80211_CONN_FAIL_MAX_CLIENTS, 49752ee67178SXianjun Jiao NL80211_CONN_FAIL_BLOCKED_CLIENT, 49762ee67178SXianjun Jiao }; 49772ee67178SXianjun Jiao 49782ee67178SXianjun Jiao /** 49794ecf49bbSJiao Xianjun * enum nl80211_timeout_reason - timeout reasons 49804ecf49bbSJiao Xianjun * 49814ecf49bbSJiao Xianjun * @NL80211_TIMEOUT_UNSPECIFIED: Timeout reason unspecified. 49824ecf49bbSJiao Xianjun * @NL80211_TIMEOUT_SCAN: Scan (AP discovery) timed out. 49834ecf49bbSJiao Xianjun * @NL80211_TIMEOUT_AUTH: Authentication timed out. 49844ecf49bbSJiao Xianjun * @NL80211_TIMEOUT_ASSOC: Association timed out. 49854ecf49bbSJiao Xianjun */ 49864ecf49bbSJiao Xianjun enum nl80211_timeout_reason { 49874ecf49bbSJiao Xianjun NL80211_TIMEOUT_UNSPECIFIED, 49884ecf49bbSJiao Xianjun NL80211_TIMEOUT_SCAN, 49894ecf49bbSJiao Xianjun NL80211_TIMEOUT_AUTH, 49904ecf49bbSJiao Xianjun NL80211_TIMEOUT_ASSOC, 49914ecf49bbSJiao Xianjun }; 49924ecf49bbSJiao Xianjun 49934ecf49bbSJiao Xianjun /** 49942ee67178SXianjun Jiao * enum nl80211_scan_flags - scan request control flags 49952ee67178SXianjun Jiao * 49962ee67178SXianjun Jiao * Scan request control flags are used to control the handling 49972ee67178SXianjun Jiao * of NL80211_CMD_TRIGGER_SCAN and NL80211_CMD_START_SCHED_SCAN 49982ee67178SXianjun Jiao * requests. 49992ee67178SXianjun Jiao * 50002ee67178SXianjun Jiao * @NL80211_SCAN_FLAG_LOW_PRIORITY: scan request has low priority 50012ee67178SXianjun Jiao * @NL80211_SCAN_FLAG_FLUSH: flush cache before scanning 50022ee67178SXianjun Jiao * @NL80211_SCAN_FLAG_AP: force a scan even if the interface is configured 50032ee67178SXianjun Jiao * as AP and the beaconing has already been configured. This attribute is 50042ee67178SXianjun Jiao * dangerous because will destroy stations performance as a lot of frames 50052ee67178SXianjun Jiao * will be lost while scanning off-channel, therefore it must be used only 50062ee67178SXianjun Jiao * when really needed 50074ecf49bbSJiao Xianjun * @NL80211_SCAN_FLAG_RANDOM_ADDR: use a random MAC address for this scan (or 50084ecf49bbSJiao Xianjun * for scheduled scan: a different one for every scan iteration). When the 50094ecf49bbSJiao Xianjun * flag is set, depending on device capabilities the @NL80211_ATTR_MAC and 50104ecf49bbSJiao Xianjun * @NL80211_ATTR_MAC_MASK attributes may also be given in which case only 50114ecf49bbSJiao Xianjun * the masked bits will be preserved from the MAC address and the remainder 50124ecf49bbSJiao Xianjun * randomised. If the attributes are not given full randomisation (46 bits, 50134ecf49bbSJiao Xianjun * locally administered 1, multicast 0) is assumed. 50144ecf49bbSJiao Xianjun * This flag must not be requested when the feature isn't supported, check 50154ecf49bbSJiao Xianjun * the nl80211 feature flags for the device. 50162ee67178SXianjun Jiao */ 50172ee67178SXianjun Jiao enum nl80211_scan_flags { 50182ee67178SXianjun Jiao NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0, 50192ee67178SXianjun Jiao NL80211_SCAN_FLAG_FLUSH = 1<<1, 50202ee67178SXianjun Jiao NL80211_SCAN_FLAG_AP = 1<<2, 50214ecf49bbSJiao Xianjun NL80211_SCAN_FLAG_RANDOM_ADDR = 1<<3, 50222ee67178SXianjun Jiao }; 50232ee67178SXianjun Jiao 50242ee67178SXianjun Jiao /** 50252ee67178SXianjun Jiao * enum nl80211_acl_policy - access control policy 50262ee67178SXianjun Jiao * 50272ee67178SXianjun Jiao * Access control policy is applied on a MAC list set by 50282ee67178SXianjun Jiao * %NL80211_CMD_START_AP and %NL80211_CMD_SET_MAC_ACL, to 50292ee67178SXianjun Jiao * be used with %NL80211_ATTR_ACL_POLICY. 50302ee67178SXianjun Jiao * 50312ee67178SXianjun Jiao * @NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED: Deny stations which are 50322ee67178SXianjun Jiao * listed in ACL, i.e. allow all the stations which are not listed 50332ee67178SXianjun Jiao * in ACL to authenticate. 50342ee67178SXianjun Jiao * @NL80211_ACL_POLICY_DENY_UNLESS_LISTED: Allow the stations which are listed 50352ee67178SXianjun Jiao * in ACL, i.e. deny all the stations which are not listed in ACL. 50362ee67178SXianjun Jiao */ 50372ee67178SXianjun Jiao enum nl80211_acl_policy { 50382ee67178SXianjun Jiao NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED, 50392ee67178SXianjun Jiao NL80211_ACL_POLICY_DENY_UNLESS_LISTED, 50402ee67178SXianjun Jiao }; 50412ee67178SXianjun Jiao 50422ee67178SXianjun Jiao /** 50432ee67178SXianjun Jiao * enum nl80211_smps_mode - SMPS mode 50442ee67178SXianjun Jiao * 50452ee67178SXianjun Jiao * Requested SMPS mode (for AP mode) 50462ee67178SXianjun Jiao * 50472ee67178SXianjun Jiao * @NL80211_SMPS_OFF: SMPS off (use all antennas). 50482ee67178SXianjun Jiao * @NL80211_SMPS_STATIC: static SMPS (use a single antenna) 50492ee67178SXianjun Jiao * @NL80211_SMPS_DYNAMIC: dynamic smps (start with a single antenna and 50502ee67178SXianjun Jiao * turn on other antennas after CTS/RTS). 50512ee67178SXianjun Jiao */ 50522ee67178SXianjun Jiao enum nl80211_smps_mode { 50532ee67178SXianjun Jiao NL80211_SMPS_OFF, 50542ee67178SXianjun Jiao NL80211_SMPS_STATIC, 50552ee67178SXianjun Jiao NL80211_SMPS_DYNAMIC, 50562ee67178SXianjun Jiao 50572ee67178SXianjun Jiao __NL80211_SMPS_AFTER_LAST, 50582ee67178SXianjun Jiao NL80211_SMPS_MAX = __NL80211_SMPS_AFTER_LAST - 1 50592ee67178SXianjun Jiao }; 50602ee67178SXianjun Jiao 50612ee67178SXianjun Jiao /** 50622ee67178SXianjun Jiao * enum nl80211_radar_event - type of radar event for DFS operation 50632ee67178SXianjun Jiao * 50642ee67178SXianjun Jiao * Type of event to be used with NL80211_ATTR_RADAR_EVENT to inform userspace 50652ee67178SXianjun Jiao * about detected radars or success of the channel available check (CAC) 50662ee67178SXianjun Jiao * 50672ee67178SXianjun Jiao * @NL80211_RADAR_DETECTED: A radar pattern has been detected. The channel is 50682ee67178SXianjun Jiao * now unusable. 50692ee67178SXianjun Jiao * @NL80211_RADAR_CAC_FINISHED: Channel Availability Check has been finished, 50702ee67178SXianjun Jiao * the channel is now available. 50712ee67178SXianjun Jiao * @NL80211_RADAR_CAC_ABORTED: Channel Availability Check has been aborted, no 50722ee67178SXianjun Jiao * change to the channel status. 50732ee67178SXianjun Jiao * @NL80211_RADAR_NOP_FINISHED: The Non-Occupancy Period for this channel is 50742ee67178SXianjun Jiao * over, channel becomes usable. 50754ecf49bbSJiao Xianjun * @NL80211_RADAR_PRE_CAC_EXPIRED: Channel Availability Check done on this 50764ecf49bbSJiao Xianjun * non-operating channel is expired and no longer valid. New CAC must 50774ecf49bbSJiao Xianjun * be done on this channel before starting the operation. This is not 50784ecf49bbSJiao Xianjun * applicable for ETSI dfs domain where pre-CAC is valid for ever. 50792ee67178SXianjun Jiao */ 50802ee67178SXianjun Jiao enum nl80211_radar_event { 50812ee67178SXianjun Jiao NL80211_RADAR_DETECTED, 50822ee67178SXianjun Jiao NL80211_RADAR_CAC_FINISHED, 50832ee67178SXianjun Jiao NL80211_RADAR_CAC_ABORTED, 50842ee67178SXianjun Jiao NL80211_RADAR_NOP_FINISHED, 50854ecf49bbSJiao Xianjun NL80211_RADAR_PRE_CAC_EXPIRED, 50862ee67178SXianjun Jiao }; 50872ee67178SXianjun Jiao 50882ee67178SXianjun Jiao /** 50892ee67178SXianjun Jiao * enum nl80211_dfs_state - DFS states for channels 50902ee67178SXianjun Jiao * 50912ee67178SXianjun Jiao * Channel states used by the DFS code. 50922ee67178SXianjun Jiao * 50932ee67178SXianjun Jiao * @NL80211_DFS_USABLE: The channel can be used, but channel availability 50942ee67178SXianjun Jiao * check (CAC) must be performed before using it for AP or IBSS. 50952ee67178SXianjun Jiao * @NL80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it 50962ee67178SXianjun Jiao * is therefore marked as not available. 50972ee67178SXianjun Jiao * @NL80211_DFS_AVAILABLE: The channel has been CAC checked and is available. 50982ee67178SXianjun Jiao */ 50992ee67178SXianjun Jiao enum nl80211_dfs_state { 51002ee67178SXianjun Jiao NL80211_DFS_USABLE, 51012ee67178SXianjun Jiao NL80211_DFS_UNAVAILABLE, 51022ee67178SXianjun Jiao NL80211_DFS_AVAILABLE, 51032ee67178SXianjun Jiao }; 51042ee67178SXianjun Jiao 51052ee67178SXianjun Jiao /** 51062ee67178SXianjun Jiao * enum enum nl80211_protocol_features - nl80211 protocol features 51072ee67178SXianjun Jiao * @NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP: nl80211 supports splitting 51082ee67178SXianjun Jiao * wiphy dumps (if requested by the application with the attribute 51092ee67178SXianjun Jiao * %NL80211_ATTR_SPLIT_WIPHY_DUMP. Also supported is filtering the 51102ee67178SXianjun Jiao * wiphy dump by %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFINDEX or 51112ee67178SXianjun Jiao * %NL80211_ATTR_WDEV. 51122ee67178SXianjun Jiao */ 51132ee67178SXianjun Jiao enum nl80211_protocol_features { 51142ee67178SXianjun Jiao NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1 << 0, 51152ee67178SXianjun Jiao }; 51162ee67178SXianjun Jiao 51172ee67178SXianjun Jiao /** 51182ee67178SXianjun Jiao * enum nl80211_crit_proto_id - nl80211 critical protocol identifiers 51192ee67178SXianjun Jiao * 51202ee67178SXianjun Jiao * @NL80211_CRIT_PROTO_UNSPEC: protocol unspecified. 51212ee67178SXianjun Jiao * @NL80211_CRIT_PROTO_DHCP: BOOTP or DHCPv6 protocol. 51222ee67178SXianjun Jiao * @NL80211_CRIT_PROTO_EAPOL: EAPOL protocol. 51232ee67178SXianjun Jiao * @NL80211_CRIT_PROTO_APIPA: APIPA protocol. 51242ee67178SXianjun Jiao * @NUM_NL80211_CRIT_PROTO: must be kept last. 51252ee67178SXianjun Jiao */ 51262ee67178SXianjun Jiao enum nl80211_crit_proto_id { 51272ee67178SXianjun Jiao NL80211_CRIT_PROTO_UNSPEC, 51282ee67178SXianjun Jiao NL80211_CRIT_PROTO_DHCP, 51292ee67178SXianjun Jiao NL80211_CRIT_PROTO_EAPOL, 51302ee67178SXianjun Jiao NL80211_CRIT_PROTO_APIPA, 51312ee67178SXianjun Jiao /* add other protocols before this one */ 51322ee67178SXianjun Jiao NUM_NL80211_CRIT_PROTO 51332ee67178SXianjun Jiao }; 51342ee67178SXianjun Jiao 51352ee67178SXianjun Jiao /* maximum duration for critical protocol measures */ 51362ee67178SXianjun Jiao #define NL80211_CRIT_PROTO_MAX_DURATION 5000 /* msec */ 51372ee67178SXianjun Jiao 51382ee67178SXianjun Jiao /** 51392ee67178SXianjun Jiao * enum nl80211_rxmgmt_flags - flags for received management frame. 51402ee67178SXianjun Jiao * 51412ee67178SXianjun Jiao * Used by cfg80211_rx_mgmt() 51422ee67178SXianjun Jiao * 51432ee67178SXianjun Jiao * @NL80211_RXMGMT_FLAG_ANSWERED: frame was answered by device/driver. 51442ee67178SXianjun Jiao */ 51452ee67178SXianjun Jiao enum nl80211_rxmgmt_flags { 51462ee67178SXianjun Jiao NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0, 51472ee67178SXianjun Jiao }; 51482ee67178SXianjun Jiao 51492ee67178SXianjun Jiao /* 51502ee67178SXianjun Jiao * If this flag is unset, the lower 24 bits are an OUI, if set 51512ee67178SXianjun Jiao * a Linux nl80211 vendor ID is used (no such IDs are allocated 51522ee67178SXianjun Jiao * yet, so that's not valid so far) 51532ee67178SXianjun Jiao */ 51542ee67178SXianjun Jiao #define NL80211_VENDOR_ID_IS_LINUX 0x80000000 51552ee67178SXianjun Jiao 51562ee67178SXianjun Jiao /** 51572ee67178SXianjun Jiao * struct nl80211_vendor_cmd_info - vendor command data 51582ee67178SXianjun Jiao * @vendor_id: If the %NL80211_VENDOR_ID_IS_LINUX flag is clear, then the 51592ee67178SXianjun Jiao * value is a 24-bit OUI; if it is set then a separately allocated ID 51602ee67178SXianjun Jiao * may be used, but no such IDs are allocated yet. New IDs should be 51612ee67178SXianjun Jiao * added to this file when needed. 51622ee67178SXianjun Jiao * @subcmd: sub-command ID for the command 51632ee67178SXianjun Jiao */ 51642ee67178SXianjun Jiao struct nl80211_vendor_cmd_info { 51652ee67178SXianjun Jiao __u32 vendor_id; 51662ee67178SXianjun Jiao __u32 subcmd; 51672ee67178SXianjun Jiao }; 51682ee67178SXianjun Jiao 51692ee67178SXianjun Jiao /** 51702ee67178SXianjun Jiao * enum nl80211_tdls_peer_capability - TDLS peer flags. 51712ee67178SXianjun Jiao * 51722ee67178SXianjun Jiao * Used by tdls_mgmt() to determine which conditional elements need 51732ee67178SXianjun Jiao * to be added to TDLS Setup frames. 51742ee67178SXianjun Jiao * 51752ee67178SXianjun Jiao * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable. 51762ee67178SXianjun Jiao * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable. 51772ee67178SXianjun Jiao * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable. 51782ee67178SXianjun Jiao */ 51792ee67178SXianjun Jiao enum nl80211_tdls_peer_capability { 51802ee67178SXianjun Jiao NL80211_TDLS_PEER_HT = 1<<0, 51812ee67178SXianjun Jiao NL80211_TDLS_PEER_VHT = 1<<1, 51822ee67178SXianjun Jiao NL80211_TDLS_PEER_WMM = 1<<2, 51832ee67178SXianjun Jiao }; 51842ee67178SXianjun Jiao 51854ecf49bbSJiao Xianjun /** 51864ecf49bbSJiao Xianjun * enum nl80211_sched_scan_plan - scanning plan for scheduled scan 51874ecf49bbSJiao Xianjun * @__NL80211_SCHED_SCAN_PLAN_INVALID: attribute number 0 is reserved 51884ecf49bbSJiao Xianjun * @NL80211_SCHED_SCAN_PLAN_INTERVAL: interval between scan iterations. In 51894ecf49bbSJiao Xianjun * seconds (u32). 51904ecf49bbSJiao Xianjun * @NL80211_SCHED_SCAN_PLAN_ITERATIONS: number of scan iterations in this 51914ecf49bbSJiao Xianjun * scan plan (u32). The last scan plan must not specify this attribute 51924ecf49bbSJiao Xianjun * because it will run infinitely. A value of zero is invalid as it will 51934ecf49bbSJiao Xianjun * make the scan plan meaningless. 51944ecf49bbSJiao Xianjun * @NL80211_SCHED_SCAN_PLAN_MAX: highest scheduled scan plan attribute number 51954ecf49bbSJiao Xianjun * currently defined 51964ecf49bbSJiao Xianjun * @__NL80211_SCHED_SCAN_PLAN_AFTER_LAST: internal use 51974ecf49bbSJiao Xianjun */ 51984ecf49bbSJiao Xianjun enum nl80211_sched_scan_plan { 51994ecf49bbSJiao Xianjun __NL80211_SCHED_SCAN_PLAN_INVALID, 52004ecf49bbSJiao Xianjun NL80211_SCHED_SCAN_PLAN_INTERVAL, 52014ecf49bbSJiao Xianjun NL80211_SCHED_SCAN_PLAN_ITERATIONS, 52024ecf49bbSJiao Xianjun 52034ecf49bbSJiao Xianjun /* keep last */ 52044ecf49bbSJiao Xianjun __NL80211_SCHED_SCAN_PLAN_AFTER_LAST, 52054ecf49bbSJiao Xianjun NL80211_SCHED_SCAN_PLAN_MAX = 52064ecf49bbSJiao Xianjun __NL80211_SCHED_SCAN_PLAN_AFTER_LAST - 1 52074ecf49bbSJiao Xianjun }; 52084ecf49bbSJiao Xianjun 52094ecf49bbSJiao Xianjun /** 52104ecf49bbSJiao Xianjun * struct nl80211_bss_select_rssi_adjust - RSSI adjustment parameters. 52114ecf49bbSJiao Xianjun * 52124ecf49bbSJiao Xianjun * @band: band of BSS that must match for RSSI value adjustment. The value 52134ecf49bbSJiao Xianjun * of this field is according to &enum nl80211_band. 52144ecf49bbSJiao Xianjun * @delta: value used to adjust the RSSI value of matching BSS in dB. 52154ecf49bbSJiao Xianjun */ 52164ecf49bbSJiao Xianjun struct nl80211_bss_select_rssi_adjust { 52174ecf49bbSJiao Xianjun __u8 band; 52184ecf49bbSJiao Xianjun __s8 delta; 52194ecf49bbSJiao Xianjun } __attribute__((packed)); 52204ecf49bbSJiao Xianjun 52214ecf49bbSJiao Xianjun /** 52224ecf49bbSJiao Xianjun * enum nl80211_bss_select_attr - attributes for bss selection. 52234ecf49bbSJiao Xianjun * 52244ecf49bbSJiao Xianjun * @__NL80211_BSS_SELECT_ATTR_INVALID: reserved. 52254ecf49bbSJiao Xianjun * @NL80211_BSS_SELECT_ATTR_RSSI: Flag indicating only RSSI-based BSS selection 52264ecf49bbSJiao Xianjun * is requested. 52274ecf49bbSJiao Xianjun * @NL80211_BSS_SELECT_ATTR_BAND_PREF: attribute indicating BSS 52284ecf49bbSJiao Xianjun * selection should be done such that the specified band is preferred. 52294ecf49bbSJiao Xianjun * When there are multiple BSS-es in the preferred band, the driver 52304ecf49bbSJiao Xianjun * shall use RSSI-based BSS selection as a second step. The value of 52314ecf49bbSJiao Xianjun * this attribute is according to &enum nl80211_band (u32). 52324ecf49bbSJiao Xianjun * @NL80211_BSS_SELECT_ATTR_RSSI_ADJUST: When present the RSSI level for 52334ecf49bbSJiao Xianjun * BSS-es in the specified band is to be adjusted before doing 52344ecf49bbSJiao Xianjun * RSSI-based BSS selection. The attribute value is a packed structure 52354ecf49bbSJiao Xianjun * value as specified by &struct nl80211_bss_select_rssi_adjust. 52364ecf49bbSJiao Xianjun * @NL80211_BSS_SELECT_ATTR_MAX: highest bss select attribute number. 52374ecf49bbSJiao Xianjun * @__NL80211_BSS_SELECT_ATTR_AFTER_LAST: internal use. 52384ecf49bbSJiao Xianjun * 52394ecf49bbSJiao Xianjun * One and only one of these attributes are found within %NL80211_ATTR_BSS_SELECT 52404ecf49bbSJiao Xianjun * for %NL80211_CMD_CONNECT. It specifies the required BSS selection behaviour 52414ecf49bbSJiao Xianjun * which the driver shall use. 52424ecf49bbSJiao Xianjun */ 52434ecf49bbSJiao Xianjun enum nl80211_bss_select_attr { 52444ecf49bbSJiao Xianjun __NL80211_BSS_SELECT_ATTR_INVALID, 52454ecf49bbSJiao Xianjun NL80211_BSS_SELECT_ATTR_RSSI, 52464ecf49bbSJiao Xianjun NL80211_BSS_SELECT_ATTR_BAND_PREF, 52474ecf49bbSJiao Xianjun NL80211_BSS_SELECT_ATTR_RSSI_ADJUST, 52484ecf49bbSJiao Xianjun 52494ecf49bbSJiao Xianjun /* keep last */ 52504ecf49bbSJiao Xianjun __NL80211_BSS_SELECT_ATTR_AFTER_LAST, 52514ecf49bbSJiao Xianjun NL80211_BSS_SELECT_ATTR_MAX = __NL80211_BSS_SELECT_ATTR_AFTER_LAST - 1 52524ecf49bbSJiao Xianjun }; 52534ecf49bbSJiao Xianjun 52544ecf49bbSJiao Xianjun /** 52554ecf49bbSJiao Xianjun * enum nl80211_nan_function_type - NAN function type 52564ecf49bbSJiao Xianjun * 52574ecf49bbSJiao Xianjun * Defines the function type of a NAN function 52584ecf49bbSJiao Xianjun * 52594ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_PUBLISH: function is publish 52604ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_SUBSCRIBE: function is subscribe 52614ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_FOLLOW_UP: function is follow-up 52624ecf49bbSJiao Xianjun */ 52634ecf49bbSJiao Xianjun enum nl80211_nan_function_type { 52644ecf49bbSJiao Xianjun NL80211_NAN_FUNC_PUBLISH, 52654ecf49bbSJiao Xianjun NL80211_NAN_FUNC_SUBSCRIBE, 52664ecf49bbSJiao Xianjun NL80211_NAN_FUNC_FOLLOW_UP, 52674ecf49bbSJiao Xianjun 52684ecf49bbSJiao Xianjun /* keep last */ 52694ecf49bbSJiao Xianjun __NL80211_NAN_FUNC_TYPE_AFTER_LAST, 52704ecf49bbSJiao Xianjun NL80211_NAN_FUNC_MAX_TYPE = __NL80211_NAN_FUNC_TYPE_AFTER_LAST - 1, 52714ecf49bbSJiao Xianjun }; 52724ecf49bbSJiao Xianjun 52734ecf49bbSJiao Xianjun /** 52744ecf49bbSJiao Xianjun * enum nl80211_nan_publish_type - NAN publish tx type 52754ecf49bbSJiao Xianjun * 52764ecf49bbSJiao Xianjun * Defines how to send publish Service Discovery Frames 52774ecf49bbSJiao Xianjun * 52784ecf49bbSJiao Xianjun * @NL80211_NAN_SOLICITED_PUBLISH: publish function is solicited 52794ecf49bbSJiao Xianjun * @NL80211_NAN_UNSOLICITED_PUBLISH: publish function is unsolicited 52804ecf49bbSJiao Xianjun */ 52814ecf49bbSJiao Xianjun enum nl80211_nan_publish_type { 52824ecf49bbSJiao Xianjun NL80211_NAN_SOLICITED_PUBLISH = 1 << 0, 52834ecf49bbSJiao Xianjun NL80211_NAN_UNSOLICITED_PUBLISH = 1 << 1, 52844ecf49bbSJiao Xianjun }; 52854ecf49bbSJiao Xianjun 52864ecf49bbSJiao Xianjun /** 52874ecf49bbSJiao Xianjun * enum nl80211_nan_func_term_reason - NAN functions termination reason 52884ecf49bbSJiao Xianjun * 52894ecf49bbSJiao Xianjun * Defines termination reasons of a NAN function 52904ecf49bbSJiao Xianjun * 52914ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST: requested by user 52924ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED: timeout 52934ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TERM_REASON_ERROR: errored 52944ecf49bbSJiao Xianjun */ 52954ecf49bbSJiao Xianjun enum nl80211_nan_func_term_reason { 52964ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST, 52974ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED, 52984ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TERM_REASON_ERROR, 52994ecf49bbSJiao Xianjun }; 53004ecf49bbSJiao Xianjun 53014ecf49bbSJiao Xianjun #define NL80211_NAN_FUNC_SERVICE_ID_LEN 6 53024ecf49bbSJiao Xianjun #define NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN 0xff 53034ecf49bbSJiao Xianjun #define NL80211_NAN_FUNC_SRF_MAX_LEN 0xff 53044ecf49bbSJiao Xianjun 53054ecf49bbSJiao Xianjun /** 53064ecf49bbSJiao Xianjun * enum nl80211_nan_func_attributes - NAN function attributes 53074ecf49bbSJiao Xianjun * @__NL80211_NAN_FUNC_INVALID: invalid 53084ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TYPE: &enum nl80211_nan_function_type (u8). 53094ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_SERVICE_ID: 6 bytes of the service ID hash as 53104ecf49bbSJiao Xianjun * specified in NAN spec. This is a binary attribute. 53114ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_PUBLISH_TYPE: relevant if the function's type is 53124ecf49bbSJiao Xianjun * publish. Defines the transmission type for the publish Service Discovery 53134ecf49bbSJiao Xianjun * Frame, see &enum nl80211_nan_publish_type. Its type is u8. 53144ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_PUBLISH_BCAST: relevant if the function is a solicited 53154ecf49bbSJiao Xianjun * publish. Should the solicited publish Service Discovery Frame be sent to 53164ecf49bbSJiao Xianjun * the NAN Broadcast address. This is a flag. 53174ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE: relevant if the function's type is 53184ecf49bbSJiao Xianjun * subscribe. Is the subscribe active. This is a flag. 53194ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_FOLLOW_UP_ID: relevant if the function's type is follow up. 53204ecf49bbSJiao Xianjun * The instance ID for the follow up Service Discovery Frame. This is u8. 53214ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID: relevant if the function's type 53224ecf49bbSJiao Xianjun * is follow up. This is a u8. 53234ecf49bbSJiao Xianjun * The requestor instance ID for the follow up Service Discovery Frame. 53244ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_FOLLOW_UP_DEST: the MAC address of the recipient of the 53254ecf49bbSJiao Xianjun * follow up Service Discovery Frame. This is a binary attribute. 53264ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_CLOSE_RANGE: is this function limited for devices in a 53274ecf49bbSJiao Xianjun * close range. The range itself (RSSI) is defined by the device. 53284ecf49bbSJiao Xianjun * This is a flag. 53294ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TTL: strictly positive number of DWs this function should 53304ecf49bbSJiao Xianjun * stay active. If not present infinite TTL is assumed. This is a u32. 53314ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_SERVICE_INFO: array of bytes describing the service 53324ecf49bbSJiao Xianjun * specific info. This is a binary attribute. 53334ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_SRF: Service Receive Filter. This is a nested attribute. 53344ecf49bbSJiao Xianjun * See &enum nl80211_nan_srf_attributes. 53354ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_RX_MATCH_FILTER: Receive Matching filter. This is a nested 53364ecf49bbSJiao Xianjun * attribute. It is a list of binary values. 53374ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TX_MATCH_FILTER: Transmit Matching filter. This is a 53384ecf49bbSJiao Xianjun * nested attribute. It is a list of binary values. 53394ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_INSTANCE_ID: The instance ID of the function. 53404ecf49bbSJiao Xianjun * Its type is u8 and it cannot be 0. 53414ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_TERM_REASON: NAN function termination reason. 53424ecf49bbSJiao Xianjun * See &enum nl80211_nan_func_term_reason. 53434ecf49bbSJiao Xianjun * 53444ecf49bbSJiao Xianjun * @NUM_NL80211_NAN_FUNC_ATTR: internal 53454ecf49bbSJiao Xianjun * @NL80211_NAN_FUNC_ATTR_MAX: highest NAN function attribute 53464ecf49bbSJiao Xianjun */ 53474ecf49bbSJiao Xianjun enum nl80211_nan_func_attributes { 53484ecf49bbSJiao Xianjun __NL80211_NAN_FUNC_INVALID, 53494ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TYPE, 53504ecf49bbSJiao Xianjun NL80211_NAN_FUNC_SERVICE_ID, 53514ecf49bbSJiao Xianjun NL80211_NAN_FUNC_PUBLISH_TYPE, 53524ecf49bbSJiao Xianjun NL80211_NAN_FUNC_PUBLISH_BCAST, 53534ecf49bbSJiao Xianjun NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE, 53544ecf49bbSJiao Xianjun NL80211_NAN_FUNC_FOLLOW_UP_ID, 53554ecf49bbSJiao Xianjun NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID, 53564ecf49bbSJiao Xianjun NL80211_NAN_FUNC_FOLLOW_UP_DEST, 53574ecf49bbSJiao Xianjun NL80211_NAN_FUNC_CLOSE_RANGE, 53584ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TTL, 53594ecf49bbSJiao Xianjun NL80211_NAN_FUNC_SERVICE_INFO, 53604ecf49bbSJiao Xianjun NL80211_NAN_FUNC_SRF, 53614ecf49bbSJiao Xianjun NL80211_NAN_FUNC_RX_MATCH_FILTER, 53624ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TX_MATCH_FILTER, 53634ecf49bbSJiao Xianjun NL80211_NAN_FUNC_INSTANCE_ID, 53644ecf49bbSJiao Xianjun NL80211_NAN_FUNC_TERM_REASON, 53654ecf49bbSJiao Xianjun 53664ecf49bbSJiao Xianjun /* keep last */ 53674ecf49bbSJiao Xianjun NUM_NL80211_NAN_FUNC_ATTR, 53684ecf49bbSJiao Xianjun NL80211_NAN_FUNC_ATTR_MAX = NUM_NL80211_NAN_FUNC_ATTR - 1 53694ecf49bbSJiao Xianjun }; 53704ecf49bbSJiao Xianjun 53714ecf49bbSJiao Xianjun /** 53724ecf49bbSJiao Xianjun * enum nl80211_nan_srf_attributes - NAN Service Response filter attributes 53734ecf49bbSJiao Xianjun * @__NL80211_NAN_SRF_INVALID: invalid 53744ecf49bbSJiao Xianjun * @NL80211_NAN_SRF_INCLUDE: present if the include bit of the SRF set. 53754ecf49bbSJiao Xianjun * This is a flag. 53764ecf49bbSJiao Xianjun * @NL80211_NAN_SRF_BF: Bloom Filter. Present if and only if 53774ecf49bbSJiao Xianjun * &NL80211_NAN_SRF_MAC_ADDRS isn't present. This attribute is binary. 53784ecf49bbSJiao Xianjun * @NL80211_NAN_SRF_BF_IDX: index of the Bloom Filter. Mandatory if 53794ecf49bbSJiao Xianjun * &NL80211_NAN_SRF_BF is present. This is a u8. 53804ecf49bbSJiao Xianjun * @NL80211_NAN_SRF_MAC_ADDRS: list of MAC addresses for the SRF. Present if 53814ecf49bbSJiao Xianjun * and only if &NL80211_NAN_SRF_BF isn't present. This is a nested 53824ecf49bbSJiao Xianjun * attribute. Each nested attribute is a MAC address. 53834ecf49bbSJiao Xianjun * @NUM_NL80211_NAN_SRF_ATTR: internal 53844ecf49bbSJiao Xianjun * @NL80211_NAN_SRF_ATTR_MAX: highest NAN SRF attribute 53854ecf49bbSJiao Xianjun */ 53864ecf49bbSJiao Xianjun enum nl80211_nan_srf_attributes { 53874ecf49bbSJiao Xianjun __NL80211_NAN_SRF_INVALID, 53884ecf49bbSJiao Xianjun NL80211_NAN_SRF_INCLUDE, 53894ecf49bbSJiao Xianjun NL80211_NAN_SRF_BF, 53904ecf49bbSJiao Xianjun NL80211_NAN_SRF_BF_IDX, 53914ecf49bbSJiao Xianjun NL80211_NAN_SRF_MAC_ADDRS, 53924ecf49bbSJiao Xianjun 53934ecf49bbSJiao Xianjun /* keep last */ 53944ecf49bbSJiao Xianjun NUM_NL80211_NAN_SRF_ATTR, 53954ecf49bbSJiao Xianjun NL80211_NAN_SRF_ATTR_MAX = NUM_NL80211_NAN_SRF_ATTR - 1, 53964ecf49bbSJiao Xianjun }; 53974ecf49bbSJiao Xianjun 53984ecf49bbSJiao Xianjun /** 53994ecf49bbSJiao Xianjun * enum nl80211_nan_match_attributes - NAN match attributes 54004ecf49bbSJiao Xianjun * @__NL80211_NAN_MATCH_INVALID: invalid 54014ecf49bbSJiao Xianjun * @NL80211_NAN_MATCH_FUNC_LOCAL: the local function that had the 54024ecf49bbSJiao Xianjun * match. This is a nested attribute. 54034ecf49bbSJiao Xianjun * See &enum nl80211_nan_func_attributes. 54044ecf49bbSJiao Xianjun * @NL80211_NAN_MATCH_FUNC_PEER: the peer function 54054ecf49bbSJiao Xianjun * that caused the match. This is a nested attribute. 54064ecf49bbSJiao Xianjun * See &enum nl80211_nan_func_attributes. 54074ecf49bbSJiao Xianjun * 54084ecf49bbSJiao Xianjun * @NUM_NL80211_NAN_MATCH_ATTR: internal 54094ecf49bbSJiao Xianjun * @NL80211_NAN_MATCH_ATTR_MAX: highest NAN match attribute 54104ecf49bbSJiao Xianjun */ 54114ecf49bbSJiao Xianjun enum nl80211_nan_match_attributes { 54124ecf49bbSJiao Xianjun __NL80211_NAN_MATCH_INVALID, 54134ecf49bbSJiao Xianjun NL80211_NAN_MATCH_FUNC_LOCAL, 54144ecf49bbSJiao Xianjun NL80211_NAN_MATCH_FUNC_PEER, 54154ecf49bbSJiao Xianjun 54164ecf49bbSJiao Xianjun /* keep last */ 54174ecf49bbSJiao Xianjun NUM_NL80211_NAN_MATCH_ATTR, 54184ecf49bbSJiao Xianjun NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1 54194ecf49bbSJiao Xianjun }; 54204ecf49bbSJiao Xianjun 54212ee67178SXianjun Jiao #endif /* __LINUX_NL80211_H */ 5422