diff options
Diffstat (limited to 'include/linux/nl80211.h')
-rw-r--r-- | include/linux/nl80211.h | 171 |
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 | */ | ||
1963 | enum 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. | ||
2785 | enum 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 | */ | ||
2796 | enum 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 | */ | ||
2815 | enum 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 */ |