aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nl80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r--include/linux/nl80211.h171
1 files changed, 170 insertions, 1 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index 8049bf77d799..0f5ff3739820 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -509,6 +509,38 @@
509 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup). 509 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
510 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame. 510 * @NL80211_CMD_TDLS_MGMT: Send a TDLS management frame.
511 * 511 *
512 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
513 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to
514 * implement sending deauth to stations that send unexpected class 3
515 * frames. Also used as the event sent by the kernel when such a frame
516 * is received.
517 * For the event, the %NL80211_ATTR_MAC attribute carries the TA and
518 * other attributes like the interface index are present.
519 * If used as the command it must have an interface index and you can
520 * only unsubscribe from the event by closing the socket. Subscription
521 * is also for %NL80211_CMD_UNEXPECTED_4ADDR_FRAME events.
522 *
523 * @NL80211_CMD_UNEXPECTED_4ADDR_FRAME: Sent as an event indicating that the
524 * associated station identified by %NL80211_ATTR_MAC sent a 4addr frame
525 * and wasn't already in a 4-addr VLAN. The event will be sent similarly
526 * to the %NL80211_CMD_UNEXPECTED_FRAME event, to the same listener.
527 *
528 * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface
529 * by sending a null data frame to it and reporting when the frame is
530 * acknowleged. This is used to allow timing out inactive clients. Uses
531 * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a
532 * direct reply with an %NL80211_ATTR_COOKIE that is later used to match
533 * up the event with the request. The event includes the same data and
534 * has %NL80211_ATTR_ACK set if the frame was ACKed.
535 *
536 * @NL80211_CMD_REGISTER_BEACONS: Register this socket to receive beacons from
537 * other BSSes when any interfaces are in AP mode. This helps implement
538 * OLBC handling in hostapd. Beacons are reported in %NL80211_CMD_FRAME
539 * messages. Note that per PHY only one application may register.
540 *
541 * @NL80211_CMD_SET_NOACK_MAP: sets a bitmap for the individual TIDs whether
542 * No Acknowledgement Policy should be applied.
543 *
512 * @NL80211_CMD_MAX: highest used command number 544 * @NL80211_CMD_MAX: highest used command number
513 * @__NL80211_CMD_AFTER_LAST: internal use 545 * @__NL80211_CMD_AFTER_LAST: internal use
514 */ 546 */
@@ -638,6 +670,16 @@ enum nl80211_commands {
638 NL80211_CMD_TDLS_OPER, 670 NL80211_CMD_TDLS_OPER,
639 NL80211_CMD_TDLS_MGMT, 671 NL80211_CMD_TDLS_MGMT,
640 672
673 NL80211_CMD_UNEXPECTED_FRAME,
674
675 NL80211_CMD_PROBE_CLIENT,
676
677 NL80211_CMD_REGISTER_BEACONS,
678
679 NL80211_CMD_UNEXPECTED_4ADDR_FRAME,
680
681 NL80211_CMD_SET_NOACK_MAP,
682
641 /* add new commands above here */ 683 /* add new commands above here */
642 684
643 /* used to define NL80211_CMD_MAX below */ 685 /* used to define NL80211_CMD_MAX below */
@@ -658,6 +700,8 @@ enum nl80211_commands {
658#define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE 700#define NL80211_CMD_DISASSOCIATE NL80211_CMD_DISASSOCIATE
659#define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT 701#define NL80211_CMD_REG_BEACON_HINT NL80211_CMD_REG_BEACON_HINT
660 702
703#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
704
661/* source-level API compatibility */ 705/* source-level API compatibility */
662#define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG 706#define NL80211_CMD_GET_MESH_PARAMS NL80211_CMD_GET_MESH_CONFIG
663#define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG 707#define NL80211_CMD_SET_MESH_PARAMS NL80211_CMD_SET_MESH_CONFIG
@@ -1109,6 +1153,46 @@ enum nl80211_commands {
1109 * %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be 1153 * %NL80211_CMD_TDLS_MGMT. Otherwise %NL80211_CMD_TDLS_OPER should be
1110 * used for asking the driver to perform a TDLS operation. 1154 * used for asking the driver to perform a TDLS operation.
1111 * 1155 *
1156 * @NL80211_ATTR_DEVICE_AP_SME: This u32 attribute may be listed for devices
1157 * that have AP support to indicate that they have the AP SME integrated
1158 * with support for the features listed in this attribute, see
1159 * &enum nl80211_ap_sme_features.
1160 *
1161 * @NL80211_ATTR_DONT_WAIT_FOR_ACK: Used with %NL80211_CMD_FRAME, this tells
1162 * the driver to not wait for an acknowledgement. Note that due to this,
1163 * it will also not give a status callback nor return a cookie. This is
1164 * mostly useful for probe responses to save airtime.
1165 *
1166 * @NL80211_ATTR_FEATURE_FLAGS: This u32 attribute contains flags from
1167 * &enum nl80211_feature_flags and is advertised in wiphy information.
1168 * @NL80211_ATTR_PROBE_RESP_OFFLOAD: Indicates that the HW responds to probe
1169 *
1170 * requests while operating in AP-mode.
1171 * This attribute holds a bitmap of the supported protocols for
1172 * offloading (see &enum nl80211_probe_resp_offload_support_attr).
1173 *
1174 * @NL80211_ATTR_PROBE_RESP: Probe Response template data. Contains the entire
1175 * probe-response frame. The DA field in the 802.11 header is zero-ed out,
1176 * to be filled by the FW.
1177 * @NL80211_ATTR_DISABLE_HT: Force HT capable interfaces to disable
1178 * this feature. Currently, only supported in mac80211 drivers.
1179 * @NL80211_ATTR_HT_CAPABILITY_MASK: Specify which bits of the
1180 * ATTR_HT_CAPABILITY to which attention should be paid.
1181 * Currently, only mac80211 NICs support this feature.
1182 * The values that may be configured are:
1183 * MCS rates, MAX-AMSDU, HT-20-40 and HT_CAP_SGI_40
1184 * AMPDU density and AMPDU factor.
1185 * All values are treated as suggestions and may be ignored
1186 * by the driver as required. The actual values may be seen in
1187 * the station debugfs ht_caps file.
1188 *
1189 * @NL80211_ATTR_DFS_REGION: region for regulatory rules which this country
1190 * abides to when initiating radiation on DFS channels. A country maps
1191 * to one DFS region.
1192 *
1193 * @NL80211_ATTR_NOACK_MAP: This u16 bitmap contains the No Ack Policy of
1194 * up to 16 TIDs.
1195 *
1112 * @NL80211_ATTR_MAX: highest attribute number currently defined 1196 * @NL80211_ATTR_MAX: highest attribute number currently defined
1113 * @__NL80211_ATTR_AFTER_LAST: internal use 1197 * @__NL80211_ATTR_AFTER_LAST: internal use
1114 */ 1198 */
@@ -1337,6 +1421,23 @@ enum nl80211_attrs {
1337 NL80211_ATTR_TDLS_SUPPORT, 1421 NL80211_ATTR_TDLS_SUPPORT,
1338 NL80211_ATTR_TDLS_EXTERNAL_SETUP, 1422 NL80211_ATTR_TDLS_EXTERNAL_SETUP,
1339 1423
1424 NL80211_ATTR_DEVICE_AP_SME,
1425
1426 NL80211_ATTR_DONT_WAIT_FOR_ACK,
1427
1428 NL80211_ATTR_FEATURE_FLAGS,
1429
1430 NL80211_ATTR_PROBE_RESP_OFFLOAD,
1431
1432 NL80211_ATTR_PROBE_RESP,
1433
1434 NL80211_ATTR_DFS_REGION,
1435
1436 NL80211_ATTR_DISABLE_HT,
1437 NL80211_ATTR_HT_CAPABILITY_MASK,
1438
1439 NL80211_ATTR_NOACK_MAP,
1440
1340 /* add attributes here, update the policy in nl80211.c */ 1441 /* add attributes here, update the policy in nl80211.c */
1341 1442
1342 __NL80211_ATTR_AFTER_LAST, 1443 __NL80211_ATTR_AFTER_LAST,
@@ -1371,6 +1472,7 @@ enum nl80211_attrs {
1371#define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES 1472#define NL80211_ATTR_AKM_SUITES NL80211_ATTR_AKM_SUITES
1372#define NL80211_ATTR_KEY NL80211_ATTR_KEY 1473#define NL80211_ATTR_KEY NL80211_ATTR_KEY
1373#define NL80211_ATTR_KEYS NL80211_ATTR_KEYS 1474#define NL80211_ATTR_KEYS NL80211_ATTR_KEYS
1475#define NL80211_ATTR_FEATURE_FLAGS NL80211_ATTR_FEATURE_FLAGS
1374 1476
1375#define NL80211_MAX_SUPP_RATES 32 1477#define NL80211_MAX_SUPP_RATES 32
1376#define NL80211_MAX_SUPP_REG_RULES 32 1478#define NL80211_MAX_SUPP_REG_RULES 32
@@ -1434,7 +1536,11 @@ enum nl80211_iftype {
1434 * @NL80211_STA_FLAG_WME: station is WME/QoS capable 1536 * @NL80211_STA_FLAG_WME: station is WME/QoS capable
1435 * @NL80211_STA_FLAG_MFP: station uses management frame protection 1537 * @NL80211_STA_FLAG_MFP: station uses management frame protection
1436 * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated 1538 * @NL80211_STA_FLAG_AUTHENTICATED: station is authenticated
1437 * @NL80211_STA_FLAG_TDLS_PEER: station is a TDLS peer 1539 * @NL80211_STA_FLAG_TDLS_PEER: station is a TDLS peer -- this flag should
1540 * only be used in managed mode (even in the flags mask). Note that the
1541 * flag can't be changed, it is only valid while adding a station, and
1542 * attempts to change it will silently be ignored (rather than rejected
1543 * as errors.)
1438 * @NL80211_STA_FLAG_MAX: highest station flag number currently defined 1544 * @NL80211_STA_FLAG_MAX: highest station flag number currently defined
1439 * @__NL80211_STA_FLAG_AFTER_LAST: internal use 1545 * @__NL80211_STA_FLAG_AFTER_LAST: internal use
1440 */ 1546 */
@@ -1549,6 +1655,7 @@ enum nl80211_sta_bss_param {
1549 * containing info as possible, see &enum nl80211_sta_bss_param 1655 * containing info as possible, see &enum nl80211_sta_bss_param
1550 * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected 1656 * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected
1551 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. 1657 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update.
1658 * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32)
1552 * @__NL80211_STA_INFO_AFTER_LAST: internal 1659 * @__NL80211_STA_INFO_AFTER_LAST: internal
1553 * @NL80211_STA_INFO_MAX: highest possible station info attribute 1660 * @NL80211_STA_INFO_MAX: highest possible station info attribute
1554 */ 1661 */
@@ -1571,6 +1678,7 @@ enum nl80211_sta_info {
1571 NL80211_STA_INFO_BSS_PARAM, 1678 NL80211_STA_INFO_BSS_PARAM,
1572 NL80211_STA_INFO_CONNECTED_TIME, 1679 NL80211_STA_INFO_CONNECTED_TIME,
1573 NL80211_STA_INFO_STA_FLAGS, 1680 NL80211_STA_INFO_STA_FLAGS,
1681 NL80211_STA_INFO_BEACON_LOSS,
1574 1682
1575 /* keep last */ 1683 /* keep last */
1576 __NL80211_STA_INFO_AFTER_LAST, 1684 __NL80211_STA_INFO_AFTER_LAST,
@@ -1845,6 +1953,21 @@ enum nl80211_reg_rule_flags {
1845}; 1953};
1846 1954
1847/** 1955/**
1956 * enum nl80211_dfs_regions - regulatory DFS regions
1957 *
1958 * @NL80211_DFS_UNSET: Country has no DFS master region specified
1959 * @NL80211_DFS_FCC_: Country follows DFS master rules from FCC
1960 * @NL80211_DFS_FCC_: Country follows DFS master rules from ETSI
1961 * @NL80211_DFS_JP_: Country follows DFS master rules from JP/MKK/Telec
1962 */
1963enum nl80211_dfs_regions {
1964 NL80211_DFS_UNSET = 0,
1965 NL80211_DFS_FCC = 1,
1966 NL80211_DFS_ETSI = 2,
1967 NL80211_DFS_JP = 3,
1968};
1969
1970/**
1848 * enum nl80211_survey_info - survey information 1971 * enum nl80211_survey_info - survey information
1849 * 1972 *
1850 * These attribute types are used with %NL80211_ATTR_SURVEY_INFO 1973 * These attribute types are used with %NL80211_ATTR_SURVEY_INFO
@@ -1977,6 +2100,10 @@ enum nl80211_mntr_flags {
1977 * access to a broader network beyond the MBSS. This is done via Root 2100 * access to a broader network beyond the MBSS. This is done via Root
1978 * Announcement frames. 2101 * Announcement frames.
1979 * 2102 *
2103 * @NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL: The minimum interval of time (in
2104 * TUs) during which a mesh STA can send only one Action frame containing a
2105 * PERR element.
2106 *
1980 * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute 2107 * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute
1981 * 2108 *
1982 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use 2109 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
@@ -2000,6 +2127,7 @@ enum nl80211_meshconf_params {
2000 NL80211_MESHCONF_ELEMENT_TTL, 2127 NL80211_MESHCONF_ELEMENT_TTL,
2001 NL80211_MESHCONF_HWMP_RANN_INTERVAL, 2128 NL80211_MESHCONF_HWMP_RANN_INTERVAL,
2002 NL80211_MESHCONF_GATE_ANNOUNCEMENTS, 2129 NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
2130 NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
2003 2131
2004 /* keep last */ 2132 /* keep last */
2005 __NL80211_MESHCONF_ATTR_AFTER_LAST, 2133 __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -2650,4 +2778,45 @@ enum nl80211_tdls_operation {
2650 NL80211_TDLS_DISABLE_LINK, 2778 NL80211_TDLS_DISABLE_LINK,
2651}; 2779};
2652 2780
2781/*
2782 * enum nl80211_ap_sme_features - device-integrated AP features
2783 * Reserved for future use, no bits are defined in
2784 * NL80211_ATTR_DEVICE_AP_SME yet.
2785enum nl80211_ap_sme_features {
2786};
2787 */
2788
2789/**
2790 * enum nl80211_feature_flags - device/driver features
2791 * @NL80211_FEATURE_SK_TX_STATUS: This driver supports reflecting back
2792 * TX status to the socket error queue when requested with the
2793 * socket option.
2794 * @NL80211_FEATURE_HT_IBSS: This driver supports IBSS with HT datarates.
2795 */
2796enum nl80211_feature_flags {
2797 NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
2798 NL80211_FEATURE_HT_IBSS = 1 << 1,
2799};
2800
2801/**
2802 * enum nl80211_probe_resp_offload_support_attr - optional supported
2803 * protocols for probe-response offloading by the driver/FW.
2804 * To be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD attribute.
2805 * Each enum value represents a bit in the bitmap of supported
2806 * protocols. Typically a subset of probe-requests belonging to a
2807 * supported protocol will be excluded from offload and uploaded
2808 * to the host.
2809 *
2810 * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS: Support for WPS ver. 1
2811 * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2: Support for WPS ver. 2
2812 * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P: Support for P2P
2813 * @NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U: Support for 802.11u
2814 */
2815enum nl80211_probe_resp_offload_support_attr {
2816 NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 1<<0,
2817 NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 1<<1,
2818 NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 1<<2,
2819 NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 1<<3,
2820};
2821
2653#endif /* __LINUX_NL80211_H */ 2822#endif /* __LINUX_NL80211_H */