kconfig: split the lexer out of zconf.y
[carl9170fw.git] / include / linux / ieee80211.h
index 7380248d535c68cbe70e88fa6a81363015d45be5..31c59eac2b59fea407bdbeab861d45c93a9fdc0d 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (c) 2005, Devicescape Software, Inc.
  * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net>
  * Copyright (c) 2013 - 2014 Intel Mobile Communications GmbH
- * Copyright (c) 2016 Intel Deutschland GmbH
+ * Copyright (c) 2016 - 2017 Intel Deutschland GmbH
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -2131,10 +2131,43 @@ enum ieee80211_key_len {
 
 #define PMK_MAX_LEN                    48
 
-/* Public action codes */
+/* Public action codes (IEEE Std 802.11-2016, 9.6.8.1, Table 9-307) */
 enum ieee80211_pub_actioncode {
+       WLAN_PUB_ACTION_20_40_BSS_COEX = 0,
+       WLAN_PUB_ACTION_DSE_ENABLEMENT = 1,
+       WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2,
+       WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3,
        WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4,
+       WLAN_PUB_ACTION_DSE_MSMT_REQ = 5,
+       WLAN_PUB_ACTION_DSE_MSMT_RESP = 6,
+       WLAN_PUB_ACTION_MSMT_PILOT = 7,
+       WLAN_PUB_ACTION_DSE_PC = 8,
+       WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9,
+       WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10,
+       WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11,
+       WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12,
+       WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13,
        WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14,
+       WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15,
+       WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16,
+       WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17,
+       WLAN_PUB_ACTION_QMF_POLICY = 18,
+       WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19,
+       WLAN_PUB_ACTION_QLOAD_REQUEST = 20,
+       WLAN_PUB_ACTION_QLOAD_REPORT = 21,
+       WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22,
+       WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23,
+       WLAN_PUB_ACTION_PUBLIC_KEY = 24,
+       WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25,
+       WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26,
+       WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27,
+       WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28,
+       WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29,
+       WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30,
+       WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31,
+       WLAN_PUB_ACTION_FTM_REQUEST = 32,
+       WLAN_PUB_ACTION_FTM = 33,
+       WLAN_PUB_ACTION_FILS_DISCOVERY = 34,
 };
 
 /* TDLS action codes */
@@ -2195,37 +2228,37 @@ enum ieee80211_tdls_actioncode {
 #define WLAN_BSS_COEX_INFORMATION_REQUEST      BIT(0)
 
 /**
- * enum - mesh synchronization method identifier
+ * enum ieee80211_mesh_sync_method - mesh synchronization method identifier
  *
  * @IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET: the default synchronization method
  * @IEEE80211_SYNC_METHOD_VENDOR: a vendor specific synchronization method
  *     that will be specified in a vendor specific information element
  */
-enum {
+enum ieee80211_mesh_sync_method {
        IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1,
        IEEE80211_SYNC_METHOD_VENDOR = 255,
 };
 
 /**
- * enum - mesh path selection protocol identifier
+ * enum ieee80211_mesh_path_protocol - mesh path selection protocol identifier
  *
  * @IEEE80211_PATH_PROTOCOL_HWMP: the default path selection protocol
  * @IEEE80211_PATH_PROTOCOL_VENDOR: a vendor specific protocol that will
  *     be specified in a vendor specific information element
  */
-enum {
+enum ieee80211_mesh_path_protocol {
        IEEE80211_PATH_PROTOCOL_HWMP = 1,
        IEEE80211_PATH_PROTOCOL_VENDOR = 255,
 };
 
 /**
- * enum - mesh path selection metric identifier
+ * enum ieee80211_mesh_path_metric - mesh path selection metric identifier
  *
  * @IEEE80211_PATH_METRIC_AIRTIME: the default path selection metric
  * @IEEE80211_PATH_METRIC_VENDOR: a vendor specific metric that will be
  *     specified in a vendor specific information element
  */
-enum {
+enum ieee80211_mesh_path_metric {
        IEEE80211_PATH_METRIC_AIRTIME = 1,
        IEEE80211_PATH_METRIC_VENDOR = 255,
 };
@@ -2334,6 +2367,32 @@ struct ieee80211_timeout_interval_ie {
        __le32 value;
 } __packed;
 
+/**
+ * enum ieee80211_idle_options - BSS idle options
+ * @WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE: the station should send an RSN
+ *     protected frame to the AP to reset the idle timer at the AP for
+ *     the station.
+ */
+enum ieee80211_idle_options {
+       WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = BIT(0),
+};
+
+/**
+ * struct ieee80211_bss_max_idle_period_ie
+ *
+ * This structure refers to "BSS Max idle period element"
+ *
+ * @max_idle_period: indicates the time period during which a station can
+ *     refrain from transmitting frames to its associated AP without being
+ *     disassociated. In units of 1000 TUs.
+ * @idle_options: indicates the options associated with the BSS idle capability
+ *     as specified in &enum ieee80211_idle_options.
+ */
+struct ieee80211_bss_max_idle_period_ie {
+       __le16 max_idle_period;
+       u8 idle_options;
+} __packed;
+
 /* BACK action code */
 enum ieee80211_back_actioncode {
        WLAN_ACTION_ADDBA_REQ = 0,
@@ -2391,7 +2450,11 @@ enum ieee80211_sa_query_action {
 
 #define WLAN_MAX_KEY_LEN               32
 
+#define WLAN_PMK_NAME_LEN              16
 #define WLAN_PMKID_LEN                 16
+#define WLAN_PMK_LEN_EAP_LEAP          16
+#define WLAN_PMK_LEN                   32
+#define WLAN_PMK_LEN_SUITE_B_192       48
 
 #define WLAN_OUI_WFA                   0x506f9a
 #define WLAN_OUI_TYPE_WFA_P2P          9
@@ -2399,6 +2462,7 @@ enum ieee80211_sa_query_action {
 #define WLAN_OUI_TYPE_MICROSOFT_WPA    1
 #define WLAN_OUI_TYPE_MICROSOFT_WMM    2
 #define WLAN_OUI_TYPE_MICROSOFT_WPS    4
+#define WLAN_OUI_TYPE_MICROSOFT_TPC    8
 
 /*
  * WMM/802.11e Tspec Element