Revert "Cumulative patch from commit 4ec1fd8e42bad9390f14a58225b6e5f6fb691950"
This reverts commit 78a5dac804c22aa6e4ec8226a864d3b0d6ccddbb.
Test: None
diff --git a/src/common/defs.h b/src/common/defs.h
index 4dd5690..4f56794 100644
--- a/src/common/defs.h
+++ b/src/common/defs.h
@@ -51,10 +51,6 @@
#define WPA_KEY_MGMT_OSEN BIT(15)
#define WPA_KEY_MGMT_IEEE8021X_SUITE_B BIT(16)
#define WPA_KEY_MGMT_IEEE8021X_SUITE_B_192 BIT(17)
-#define WPA_KEY_MGMT_FILS_SHA256 BIT(18)
-#define WPA_KEY_MGMT_FILS_SHA384 BIT(19)
-#define WPA_KEY_MGMT_FT_FILS_SHA256 BIT(20)
-#define WPA_KEY_MGMT_FT_FILS_SHA384 BIT(21)
static inline int wpa_key_mgmt_wpa_ieee8021x(int akm)
{
@@ -64,11 +60,7 @@
WPA_KEY_MGMT_OSEN |
WPA_KEY_MGMT_IEEE8021X_SHA256 |
WPA_KEY_MGMT_IEEE8021X_SUITE_B |
- WPA_KEY_MGMT_IEEE8021X_SUITE_B_192 |
- WPA_KEY_MGMT_FILS_SHA256 |
- WPA_KEY_MGMT_FILS_SHA384 |
- WPA_KEY_MGMT_FT_FILS_SHA256 |
- WPA_KEY_MGMT_FT_FILS_SHA384));
+ WPA_KEY_MGMT_IEEE8021X_SUITE_B_192));
}
static inline int wpa_key_mgmt_wpa_psk(int akm)
@@ -84,14 +76,7 @@
{
return !!(akm & (WPA_KEY_MGMT_FT_PSK |
WPA_KEY_MGMT_FT_IEEE8021X |
- WPA_KEY_MGMT_FT_SAE |
- WPA_KEY_MGMT_FT_FILS_SHA256 |
- WPA_KEY_MGMT_FT_FILS_SHA384));
-}
-
-static inline int wpa_key_mgmt_ft_psk(int akm)
-{
- return !!(akm & WPA_KEY_MGMT_FT_PSK);
+ WPA_KEY_MGMT_FT_SAE));
}
static inline int wpa_key_mgmt_sae(int akm)
@@ -100,29 +85,17 @@
WPA_KEY_MGMT_FT_SAE));
}
-static inline int wpa_key_mgmt_fils(int akm)
-{
- return !!(akm & (WPA_KEY_MGMT_FILS_SHA256 |
- WPA_KEY_MGMT_FILS_SHA384 |
- WPA_KEY_MGMT_FT_FILS_SHA256 |
- WPA_KEY_MGMT_FT_FILS_SHA384));
-}
-
static inline int wpa_key_mgmt_sha256(int akm)
{
return !!(akm & (WPA_KEY_MGMT_PSK_SHA256 |
WPA_KEY_MGMT_IEEE8021X_SHA256 |
WPA_KEY_MGMT_OSEN |
- WPA_KEY_MGMT_IEEE8021X_SUITE_B |
- WPA_KEY_MGMT_FILS_SHA256 |
- WPA_KEY_MGMT_FT_FILS_SHA256));
+ WPA_KEY_MGMT_IEEE8021X_SUITE_B));
}
static inline int wpa_key_mgmt_sha384(int akm)
{
- return !!(akm & (WPA_KEY_MGMT_IEEE8021X_SUITE_B_192 |
- WPA_KEY_MGMT_FILS_SHA384 |
- WPA_KEY_MGMT_FT_FILS_SHA384));
+ return !!(akm & WPA_KEY_MGMT_IEEE8021X_SUITE_B_192);
}
static inline int wpa_key_mgmt_suite_b(int akm)
@@ -135,7 +108,6 @@
{
return wpa_key_mgmt_wpa_ieee8021x(akm) ||
wpa_key_mgmt_wpa_psk(akm) ||
- wpa_key_mgmt_fils(akm) ||
wpa_key_mgmt_sae(akm);
}
@@ -160,7 +132,6 @@
#define WPA_AUTH_ALG_LEAP BIT(2)
#define WPA_AUTH_ALG_FT BIT(3)
#define WPA_AUTH_ALG_SAE BIT(4)
-#define WPA_AUTH_ALG_FILS BIT(5)
enum wpa_alg {
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index 26e08b7..b6bc449 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -179,90 +179,6 @@
}
-static int ieee802_11_parse_extension(const u8 *pos, size_t elen,
- struct ieee802_11_elems *elems,
- int show_errors)
-{
- u8 ext_id;
-
- if (elen < 1) {
- if (show_errors) {
- wpa_printf(MSG_MSGDUMP,
- "short information element (Ext)");
- }
- return -1;
- }
-
- ext_id = *pos++;
- elen--;
-
- switch (ext_id) {
- case WLAN_EID_EXT_ASSOC_DELAY_INFO:
- if (elen != 1)
- break;
- elems->assoc_delay_info = pos;
- break;
- case WLAN_EID_EXT_FILS_REQ_PARAMS:
- if (elen < 3)
- break;
- elems->fils_req_params = pos;
- elems->fils_req_params_len = elen;
- break;
- case WLAN_EID_EXT_FILS_KEY_CONFIRM:
- elems->fils_key_confirm = pos;
- elems->fils_key_confirm_len = elen;
- break;
- case WLAN_EID_EXT_FILS_SESSION:
- if (elen != FILS_SESSION_LEN)
- break;
- elems->fils_session = pos;
- break;
- case WLAN_EID_EXT_FILS_HLP_CONTAINER:
- if (elen < 2 * ETH_ALEN)
- break;
- elems->fils_hlp = pos;
- elems->fils_hlp_len = elen;
- break;
- case WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN:
- if (elen < 1)
- break;
- elems->fils_ip_addr_assign = pos;
- elems->fils_ip_addr_assign_len = elen;
- break;
- case WLAN_EID_EXT_KEY_DELIVERY:
- if (elen < WPA_KEY_RSC_LEN)
- break;
- elems->key_delivery = pos;
- elems->key_delivery_len = elen;
- break;
- case WLAN_EID_EXT_FILS_WRAPPED_DATA:
- elems->fils_wrapped_data = pos;
- elems->fils_wrapped_data_len = elen;
- break;
- case WLAN_EID_EXT_FILS_PUBLIC_KEY:
- if (elen < 1)
- break;
- elems->fils_pk = pos;
- elems->fils_pk_len = elen;
- break;
- case WLAN_EID_EXT_FILS_NONCE:
- if (elen != FILS_NONCE_LEN)
- break;
- elems->fils_nonce = pos;
- break;
- default:
- if (show_errors) {
- wpa_printf(MSG_MSGDUMP,
- "IEEE 802.11 element parsing ignored unknown element extension (ext_id=%u elen=%u)",
- ext_id, (unsigned int) elen);
- }
- return -1;
- }
-
- return 0;
-}
-
-
/**
* ieee802_11_parse_elems - Parse information elements in management frames
* @start: Pointer to the start of IEs
@@ -463,35 +379,6 @@
elems->rrm_enabled = pos;
elems->rrm_enabled_len = elen;
break;
- case WLAN_EID_CAG_NUMBER:
- elems->cag_number = pos;
- elems->cag_number_len = elen;
- break;
- case WLAN_EID_AP_CSN:
- if (elen < 1)
- break;
- elems->ap_csn = pos;
- break;
- case WLAN_EID_FILS_INDICATION:
- if (elen < 2)
- break;
- elems->fils_indic = pos;
- elems->fils_indic_len = elen;
- break;
- case WLAN_EID_DILS:
- if (elen < 2)
- break;
- elems->dils = pos;
- elems->dils_len = elen;
- break;
- case WLAN_EID_FRAGMENT:
- /* TODO */
- break;
- case WLAN_EID_EXTENSION:
- if (ieee802_11_parse_extension(pos, elen, elems,
- show_errors))
- unknown++;
- break;
default:
unknown++;
if (!show_errors)
@@ -794,25 +681,6 @@
return HOSTAPD_MODE_IEEE80211A;
}
- /* 5 GHz, channels 52..64 */
- if (freq >= 5260 && freq <= 5320) {
- if ((freq - 5000) % 5)
- return NUM_HOSTAPD_MODES;
-
- if (vht_opclass)
- *op_class = vht_opclass;
- else if (sec_channel == 1)
- *op_class = 119;
- else if (sec_channel == -1)
- *op_class = 120;
- else
- *op_class = 118;
-
- *channel = (freq - 5000) / 5;
-
- return HOSTAPD_MODE_IEEE80211A;
- }
-
/* 5 GHz, channels 149..169 */
if (freq >= 5745 && freq <= 5845) {
if ((freq - 5000) % 5)
diff --git a/src/common/ieee802_11_common.h b/src/common/ieee802_11_common.h
index 2c20ba6..42f3909 100644
--- a/src/common/ieee802_11_common.h
+++ b/src/common/ieee802_11_common.h
@@ -64,20 +64,6 @@
const u8 *pref_freq_list;
const u8 *supp_op_classes;
const u8 *rrm_enabled;
- const u8 *cag_number;
- const u8 *ap_csn;
- const u8 *fils_indic;
- const u8 *dils;
- const u8 *assoc_delay_info;
- const u8 *fils_req_params;
- const u8 *fils_key_confirm;
- const u8 *fils_session;
- const u8 *fils_hlp;
- const u8 *fils_ip_addr_assign;
- const u8 *key_delivery;
- const u8 *fils_wrapped_data;
- const u8 *fils_pk;
- const u8 *fils_nonce;
u8 ssid_len;
u8 supp_rates_len;
@@ -110,16 +96,6 @@
u8 pref_freq_list_len;
u8 supp_op_classes_len;
u8 rrm_enabled_len;
- u8 cag_number_len;
- u8 fils_indic_len;
- u8 dils_len;
- u8 fils_req_params_len;
- u8 fils_key_confirm_len;
- u8 fils_hlp_len;
- u8 fils_ip_addr_assign_len;
- u8 key_delivery_len;
- u8 fils_wrapped_data_len;
- u8 fils_pk_len;
struct mb_ies_info mb_ies;
};
diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index ca808d7..02d2ad7 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -81,9 +81,6 @@
#define WLAN_AUTH_SHARED_KEY 1
#define WLAN_AUTH_FT 2
#define WLAN_AUTH_SAE 3
-#define WLAN_AUTH_FILS_SK 4
-#define WLAN_AUTH_FILS_SK_PFS 5
-#define WLAN_AUTH_FILS_PK 6
#define WLAN_AUTH_LEAP 128
#define WLAN_AUTH_CHALLENGE_LEN 128
@@ -178,8 +175,6 @@
#define WLAN_STATUS_QUERY_RESP_OUTSTANDING 95
#define WLAN_STATUS_DENIED_WITH_SUGGESTED_BAND_AND_CHANNEL 99
#define WLAN_STATUS_ASSOC_DENIED_NO_VHT 104
-#define WLAN_STATUS_FILS_AUTHENTICATION_FAILURE 112
-#define WLAN_STATUS_UNKNOWN_AUTHENTICATION_SERVER 113
/* Reason codes (IEEE 802.11-2007, 7.3.1.7, Table 7-22) */
#define WLAN_REASON_UNSPECIFIED 1
@@ -297,24 +292,6 @@
#define WLAN_EID_VHT_QUIET_CHANNEL 198
#define WLAN_EID_VHT_OPERATING_MODE_NOTIFICATION 199
#define WLAN_EID_VENDOR_SPECIFIC 221
-#define WLAN_EID_CAG_NUMBER 237
-#define WLAN_EID_AP_CSN 239
-#define WLAN_EID_FILS_INDICATION 240
-#define WLAN_EID_DILS 241
-#define WLAN_EID_FRAGMENT 242
-#define WLAN_EID_EXTENSION 255
-
-/* Element ID Extension (EID 255) values */
-#define WLAN_EID_EXT_ASSOC_DELAY_INFO 1
-#define WLAN_EID_EXT_FILS_REQ_PARAMS 2
-#define WLAN_EID_EXT_FILS_KEY_CONFIRM 3
-#define WLAN_EID_EXT_FILS_SESSION 4
-#define WLAN_EID_EXT_FILS_HLP_CONTAINER 5
-#define WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN 6
-#define WLAN_EID_EXT_KEY_DELIVERY 7
-#define WLAN_EID_EXT_FILS_WRAPPED_DATA 8
-#define WLAN_EID_EXT_FILS_PUBLIC_KEY 12
-#define WLAN_EID_EXT_FILS_NONCE 13
/* Action frame categories (IEEE 802.11-2007, 7.3.1.11, Table 7-24) */
@@ -334,7 +311,6 @@
#define WLAN_ACTION_SELF_PROTECTED 15
#define WLAN_ACTION_WMM 17 /* WMM Specification 1.1 */
#define WLAN_ACTION_FST 18
-#define WLAN_ACTION_FILS 26
#define WLAN_ACTION_VENDOR_SPECIFIC 127
/* Public action codes */
@@ -345,7 +321,6 @@
#define WLAN_PA_GAS_COMEBACK_REQ 12
#define WLAN_PA_GAS_COMEBACK_RESP 13
#define WLAN_TDLS_DISCOVERY_RESPONSE 14
-#define WLAN_PA_FILS_DISCOVERY 34
/* Protected Dual of Public Action frames */
#define WLAN_PROT_DSE_ENABLEMENT 1
@@ -451,10 +426,6 @@
ANQP_TDLS_CAPABILITY = 270,
ANQP_EMERGENCY_NAI = 271,
ANQP_NEIGHBOR_REPORT = 272,
- ANQP_QUERY_AP_LIST = 273,
- ANQP_AP_LIST_RESPONSE = 274,
- AMQP_FILS_REALM_INFO = 275,
- ANQP_CAG = 276,
ANQP_VENUE_URL = 277,
ANQP_ADVICE_OF_CHARGE = 278,
ANQP_LOCAL_CONTENT = 279,
@@ -534,11 +505,6 @@
LCI_REQ_SUBELEM_MAX_AGE = 4,
};
-#define FILS_NONCE_LEN 16
-#define FILS_SESSION_LEN 8
-#define FILS_CACHE_ID_LEN 2
-#define FILS_MAX_KEY_AUTH_LEN 48
-
#ifdef _MSC_VER
#pragma pack(push, 1)
#endif /* _MSC_VER */
@@ -1214,10 +1180,6 @@
WFA_WNM_NOTIF_SUBELEM_CELL_DATA_CAPA = 3,
};
-/* MBO v0.0_r25, 4.3: MBO ANQP-elements */
-#define MBO_ANQP_OUI_TYPE 0x12
-#define MBO_ANQP_SUBTYPE_CELL_CONN_PREF 1
-
/* Wi-Fi Direct (P2P) */
#define P2P_OUI_TYPE 9
@@ -1429,10 +1391,6 @@
#define WLAN_AKM_SUITE_PSK_SHA256 0x000FAC06
#define WLAN_AKM_SUITE_8021X_SUITE_B 0x000FAC11
#define WLAN_AKM_SUITE_8021X_SUITE_B_192 0x000FAC12
-#define WLAN_AKM_SUITE_FILS_SHA256 0x000FAC14
-#define WLAN_AKM_SUITE_FILS_SHA384 0x000FAC15
-#define WLAN_AKM_SUITE_FT_FILS_SHA256 0x000FAC16
-#define WLAN_AKM_SUITE_FT_FILS_SHA384 0x000FAC17
#define WLAN_AKM_SUITE_CCKM 0x00409600
#define WLAN_AKM_SUITE_OSEN 0x506f9a01
diff --git a/src/common/privsep_commands.h b/src/common/privsep_commands.h
index f017f08..8dff303 100644
--- a/src/common/privsep_commands.h
+++ b/src/common/privsep_commands.h
@@ -42,9 +42,9 @@
int wep_tx_keyidx;
int local_state_change;
int p2p;
- size_t auth_data_len;
+ size_t sae_data_len;
/* followed by ie_len bytes of ie */
- /* followed by auth_data_len bytes of auth_data */
+ /* followed by sae_data_len bytes of sae_data */
};
struct privsep_cmd_associate
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h
index fc391e0..c458cb3 100644
--- a/src/common/qca-vendor.h
+++ b/src/common/qca-vendor.h
@@ -164,11 +164,8 @@
*
* @QCA_NL80211_VENDOR_SUBCMD_AOA_MEAS: Perform a standalone AOA (angle of
* arrival) measurement with a single peer. Specify peer MAC address in
- * QCA_WLAN_VENDOR_ATTR_MAC_ADDR and optionally frequency (MHz) in
- * QCA_WLAN_VENDOR_ATTR_FREQ (if not specified, locate peer in kernel
- * scan results cache and use the frequency from there).
- * Also specify measurement type in QCA_WLAN_VENDOR_ATTR_AOA_TYPE.
- * Measurement result is reported in
+ * QCA_WLAN_VENDOR_ATTR_MAC_ADDR and measurement type in
+ * QCA_WLAN_VENDOR_ATTR_AOA_TYPE. Measurement result is reported in
* QCA_NL80211_VENDOR_SUBCMD_AOA_MEAS_RESULT event.
*
* @QCA_NL80211_VENDOR_SUBCMD_AOA_ABORT_MEAS: Abort an AOA measurement. Specify
@@ -188,50 +185,6 @@
*
* @QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI: Get antenna RSSI value for a
* specific chain.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SECTOR_CFG: Get low level
- * configuration for a DMG RF sector. Specify sector index in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_INDEX, sector type in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE and RF modules
- * to return sector information for in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_MODULE_MASK. Returns sector configuration
- * in QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG. Also return the
- * exact time where information was captured in
- * QCA_WLAN_VENDOR_ATTR_TSF.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SECTOR_CFG: Set low level
- * configuration for a DMG RF sector. Specify sector index in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_INDEX, sector type in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE and sector configuration
- * for one or more DMG RF modules in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SELECTED_SECTOR: Get selected
- * DMG RF sector for a station. This is the sector that the HW
- * will use to communicate with the station. Specify the MAC address
- * of associated station/AP/PCP in QCA_WLAN_VENDOR_ATTR_MAC_ADDR (not
- * needed for unassociated station). Specify sector type to return in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE. Returns the selected
- * sector index in QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_INDEX.
- * Also return the exact time where the information was captured
- * in QCA_WLAN_VENDOR_ATTR_TSF.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SELECTED_SECTOR: Set the
- * selected DMG RF sector for a station. This is the sector that
- * the HW will use to communicate with the station.
- * Specify the MAC address of associated station/AP/PCP in
- * QCA_WLAN_VENDOR_ATTR_MAC_ADDR, the sector type to select in
- * QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE and the sector index
- * in QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_INDEX.
- * The selected sector will be locked such that it will not be
- * modified like it normally does (for example when station
- * moves around). To unlock the selected sector for a station
- * pass the special value 0xFFFF in the sector index. To unlock
- * all connected stations also pass a broadcast MAC address.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_CONFIGURE_TDLS: Configure the TDLS behavior
- * in the host driver. The different TDLS configurations are defined
- * by the attributes in enum qca_wlan_vendor_attr_tdls_configuration.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -241,7 +194,7 @@
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY = 10,
QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY = 11,
QCA_NL80211_VENDOR_SUBCMD_NAN = 12,
- QCA_NL80211_VENDOR_SUBCMD_STATS_EXT = 13,
+ QCA_NL80211_VENDOR_SUBMCD_STATS_EXT = 13,
QCA_NL80211_VENDOR_SUBCMD_LL_STATS_SET = 14,
QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET = 15,
QCA_NL80211_VENDOR_SUBCMD_LL_STATS_CLR = 16,
@@ -332,12 +285,6 @@
QCA_NL80211_VENDOR_SUBCMD_AOA_MEAS_RESULT = 136,
QCA_NL80211_VENDOR_SUBCMD_ENCRYPTION_TEST = 137,
QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI = 138,
- /* DMG low level RF sector operations */
- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SECTOR_CFG = 139,
- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SECTOR_CFG = 140,
- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SELECTED_SECTOR = 141,
- QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SELECTED_SECTOR = 142,
- QCA_NL80211_VENDOR_SUBCMD_CONFIGURE_TDLS = 143,
};
@@ -445,42 +392,6 @@
/* Used in QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI command
* to report the specific antenna RSSI value (unsigned 32 bit value) */
QCA_WLAN_VENDOR_ATTR_CHAIN_RSSI = 27,
- /* Frequency in MHz, various uses. Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_FREQ = 28,
- /* TSF timer value, unsigned 64 bit value.
- * May be returned by various commands.
- */
- QCA_WLAN_VENDOR_ATTR_TSF = 29,
- /* DMG RF sector index, unsigned 16 bit number. Valid values are
- * 0..127 for sector indices or 65535 as special value used to
- * unlock sector selection in
- * QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SELECTED_SECTOR.
- */
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_INDEX = 30,
- /* DMG RF sector type, unsigned 8 bit value. One of the values
- * in enum qca_wlan_vendor_attr_dmg_rf_sector_type.
- */
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE = 31,
- /* Bitmask of DMG RF modules for which information is requested. Each
- * bit corresponds to an RF module with the same index as the bit
- * number. Unsigned 32 bit number but only low 8 bits can be set since
- * all DMG chips currently have up to 8 RF modules.
- */
- QCA_WLAN_VENDOR_ATTR_DMG_RF_MODULE_MASK = 32,
- /* Array of nested attributes where each entry is DMG RF sector
- * configuration for a single RF module.
- * Attributes for each entry are taken from enum
- * qca_wlan_vendor_attr_dmg_rf_sector_cfg.
- * Specified in QCA_NL80211_VENDOR_SUBCMD_DMG_RF_SET_SECTOR_CFG
- * and returned by QCA_NL80211_VENDOR_SUBCMD_DMG_RF_GET_SECTOR_CFG.
- */
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG = 33,
- /* Used in QCA_NL80211_VENDOR_SUBCMD_STATS_EXT command
- * to report frame aggregation statistics to userspace.
- */
- QCA_WLAN_VENDOR_ATTR_RX_AGGREGATION_STATS_HOLES_NUM = 34,
- QCA_WLAN_VENDOR_ATTR_RX_AGGREGATION_STATS_HOLES_INFO = 35,
-
/* keep last */
QCA_WLAN_VENDOR_ATTR_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_MAX = QCA_WLAN_VENDOR_ATTR_AFTER_LAST - 1,
@@ -878,13 +789,13 @@
* QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION subcommands.
*/
enum qca_wlan_vendor_attr_config {
- QCA_WLAN_VENDOR_ATTR_CONFIG_INVALID = 0,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_INVALID,
/* Unsigned 32-bit value to set the DTIM period.
* Whether the wifi chipset wakes at every dtim beacon or a multiple of
* the DTIM period. If DTIM is set to 3, the STA shall wake up every 3
* DTIM beacons.
*/
- QCA_WLAN_VENDOR_ATTR_CONFIG_DYNAMIC_DTIM = 1,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_DYNAMIC_DTIM,
/* Unsigned 32-bit value to set the wifi_iface stats averaging factor
* used to calculate statistics like average the TSF offset or average
* number of frame leaked.
@@ -893,52 +804,52 @@
* For instance, when evaluating leaky APs:
* current_avg = ((num frame received within guard time) * factor + previous_avg * (0x10000 - factor)) / 0x10000
*/
- QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR = 2,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_STATS_AVG_FACTOR,
/* Unsigned 32-bit value to configure guard time, i.e., when
* implementing IEEE power management based on frame control PM bit, how
* long the driver waits before shutting down the radio and after
* receiving an ACK frame for a Data frame with PM bit set.
*/
- QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME = 3,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GUARD_TIME,
/* Unsigned 32-bit value to change the FTM capability dynamically */
- QCA_WLAN_VENDOR_ATTR_CONFIG_FINE_TIME_MEASUREMENT = 4,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_FINE_TIME_MEASUREMENT,
/* Unsigned 16-bit value to configure maximum TX rate dynamically */
- QCA_WLAN_VENDOR_ATTR_CONF_TX_RATE = 5,
+ QCA_WLAN_VENDOR_ATTR_CONF_TX_RATE,
/* Unsigned 32-bit value to configure the number of continuous
* Beacon Miss which shall be used by the firmware to penalize
* the RSSI.
*/
- QCA_WLAN_VENDOR_ATTR_CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS = 6,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_PENALIZE_AFTER_NCONS_BEACON_MISS,
/* Unsigned 8-bit value to configure the channel avoidance indication
* behavior. Firmware to send only one indication and ignore duplicate
* indications when set to avoid multiple Apps wakeups.
*/
- QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_AVOIDANCE_IND = 7,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_AVOIDANCE_IND,
/* 8-bit unsigned value to configure the maximum TX MPDU for
* aggregation. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_TX_MPDU_AGGREGATION = 8,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_TX_MPDU_AGGREGATION,
/* 8-bit unsigned value to configure the maximum RX MPDU for
* aggregation. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_MPDU_AGGREGATION = 9,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_RX_MPDU_AGGREGATION,
/* 8-bit unsigned value to configure the Non aggregrate/11g sw
* retry threshold (0 disable, 31 max). */
- QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY = 10,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY,
/* 8-bit unsigned value to configure the aggregrate sw
* retry threshold (0 disable, 31 max). */
- QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY = 11,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY,
/* 8-bit unsigned value to configure the MGMT frame
* retry threshold (0 disable, 31 max). */
- QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY = 12,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY,
/* 8-bit unsigned value to configure the CTRL frame
* retry threshold (0 disable, 31 max). */
- QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY = 13,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY,
/* 8-bit unsigned value to configure the propagation delay for
* 2G/5G band (0~63, units in us) */
- QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY = 14,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY,
/* Unsigned 32-bit value to configure the number of unicast TX fail
* packet count. The peer is disconnected once this threshold is
* reached. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT = 15,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_TX_FAIL_COUNT,
/* Attribute used to set scan default IEs to the driver.
*
* These IEs can be used by scan operations that will be initiated by
@@ -949,62 +860,50 @@
* driver. If a particular IE is present in the scan default IEs but not
* present in the scan request, then that IE should be added to the IEs
* sent in the Probe Request frames for that scan request. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_DEFAULT_IES = 16,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_DEFAULT_IES,
/* Unsigned 32-bit attribute for generic commands */
- QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_COMMAND = 17,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_COMMAND,
/* Unsigned 32-bit value attribute for generic commands */
- QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_VALUE = 18,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_VALUE,
/* Unsigned 32-bit data attribute for generic command response */
- QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_DATA = 19,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_DATA,
/* Unsigned 32-bit length attribute for
* QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_DATA */
- QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_LENGTH = 20,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_LENGTH,
/* Unsigned 32-bit flags attribute for
* QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_DATA */
- QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_FLAGS = 21,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_FLAGS,
/* Unsigned 32-bit, defining the access policy.
* See enum qca_access_policy. Used with
* QCA_WLAN_VENDOR_ATTR_CONFIG_ACCESS_POLICY_IE_LIST. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_ACCESS_POLICY = 22,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_ACCESS_POLICY,
/* Sets the list of full set of IEs for which a specific access policy
* has to be applied. Used along with
* QCA_WLAN_VENDOR_ATTR_CONFIG_ACCESS_POLICY to control the access.
* Zero length payload can be used to clear this access constraint. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_ACCESS_POLICY_IE_LIST = 23,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_ACCESS_POLICY_IE_LIST,
/* Unsigned 32-bit, specifies the interface index (netdev) for which the
* corresponding configurations are applied. If the interface index is
* not specified, the configurations are attributed to the respective
* wiphy. */
- QCA_WLAN_VENDOR_ATTR_CONFIG_IFINDEX = 24,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_IFINDEX,
/* 8-bit unsigned value to trigger QPower: 1-Enable, 0-Disable */
- QCA_WLAN_VENDOR_ATTR_CONFIG_QPOWER = 25,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_QPOWER,
/* 8-bit unsigned value to configure the driver and below layers to
* ignore the assoc disallowed set by APs while connecting
* 1-Ignore, 0-Don't ignore */
- QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED = 26,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_IGNORE_ASSOC_DISALLOWED,
/* 32-bit unsigned value to trigger antenna diversity features:
* 1-Enable, 0-Disable */
- QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_ENA = 27,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_ENA,
/* 32-bit unsigned value to configure specific chain antenna */
- QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_CHAIN = 28,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_CHAIN,
/* 32-bit unsigned value to trigger cycle selftest
* 1-Enable, 0-Disable */
- QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_SELFTEST = 29,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_SELFTEST,
/* 32-bit unsigned to configure the cycle time of selftest
* the unit is micro-second */
- QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_SELFTEST_INTVL = 30,
- /* 32-bit unsigned value to set reorder timeout for AC_VO */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_VOICE = 31,
- /* 32-bit unsigned value to set reorder timeout for AC_VI */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_VIDEO = 32,
- /* 32-bit unsigned value to set reorder timeout for AC_BE */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_BESTEFFORT = 33,
- /* 32-bit unsigned value to set reorder timeout for AC_BK */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_REORDER_TIMEOUT_BACKGROUND = 34,
- /* 6-byte MAC address to point out the specific peer */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_PEER_MAC = 35,
- /* 32-bit unsigned value to set window size for specific peer */
- QCA_WLAN_VENDOR_ATTR_CONFIG_RX_BLOCKSIZE_WINLIMIT = 36,
+ QCA_WLAN_VENDOR_ATTR_CONFIG_ANT_DIV_SELFTEST_INTVL,
/* keep last */
QCA_WLAN_VENDOR_ATTR_CONFIG_AFTER_LAST,
@@ -1421,10 +1320,6 @@
* @QCA_WLAN_VENDOR_ATTR_FTM_PEER_AOA_BURST_PERIOD: Request AOA
* measurement every <value> bursts. If 0 or not specified,
* AOA measurements will be disabled for this peer.
- * @QCA_WLAN_VENDOR_ATTR_FTM_PEER_FREQ: Frequency in MHz where
- * the measurement frames are exchanged. Optional; if not
- * specified, try to locate the peer in the kernel scan
- * results cache and use frequency from there.
*/
enum qca_wlan_vendor_attr_ftm_peer_info {
QCA_WLAN_VENDOR_ATTR_FTM_PEER_INVALID,
@@ -1433,7 +1328,6 @@
QCA_WLAN_VENDOR_ATTR_FTM_PEER_MEAS_PARAMS,
QCA_WLAN_VENDOR_ATTR_FTM_PEER_SECURE_TOKEN_ID,
QCA_WLAN_VENDOR_ATTR_FTM_PEER_AOA_BURST_PERIOD,
- QCA_WLAN_VENDOR_ATTR_FTM_PEER_FREQ,
/* keep last */
QCA_WLAN_VENDOR_ATTR_FTM_PEER_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_FTM_PEER_MAX =
@@ -1693,518 +1587,4 @@
QCA_WLAN_VENDOR_ATTR_ENCRYPTION_TEST_AFTER_LAST - 1
};
-/**
- * enum qca_wlan_vendor_attr_dmg_rf_sector_type - Type of
- * sector for DMG RF sector operations.
- *
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE_RX: RX sector
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE_TX: TX sector
- */
-enum qca_wlan_vendor_attr_dmg_rf_sector_type {
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE_RX,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE_TX,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE_MAX
-};
-
-/**
- * enum qca_wlan_vendor_attr_dmg_rf_sector_cfg - Attributes for
- * DMG RF sector configuration for a single RF module.
- * The values are defined in a compact way which closely matches
- * the way it is stored in HW registers.
- * The configuration provides values for 32 antennas and 8 distribution
- * amplifiers, and together describes the characteristics of the RF
- * sector - such as a beam in some direction with some gain.
- *
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_MODULE_INDEX: Index
- * of RF module for this configuration.
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_ETYPE0: Bit 0 of edge
- * amplifier gain index. Unsigned 32 bit number containing
- * bits for all 32 antennas.
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_ETYPE1: Bit 1 of edge
- * amplifier gain index. Unsigned 32 bit number containing
- * bits for all 32 antennas.
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_ETYPE2: Bit 2 of edge
- * amplifier gain index. Unsigned 32 bit number containing
- * bits for all 32 antennas.
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_PSH_HI: Phase values
- * for first 16 antennas, 2 bits per antenna.
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_PSH_LO: Phase values
- * for last 16 antennas, 2 bits per antenna.
- * @QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_DTYPE_X16: Contains
- * DTYPE values (3 bits) for each distribution amplifier, followed
- * by X16 switch bits for each distribution amplifier. There are
- * total of 8 distribution amplifiers.
- */
-enum qca_wlan_vendor_attr_dmg_rf_sector_cfg {
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_MODULE_INDEX = 1,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_ETYPE0 = 2,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_ETYPE1 = 3,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_ETYPE2 = 4,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_PSH_HI = 5,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_PSH_LO = 6,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_DTYPE_X16 = 7,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_MAX =
- QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_CFG_AFTER_LAST - 1
-};
-
-enum qca_wlan_vendor_attr_ll_stats_set {
- QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_INVALID = 0,
- /* Unsigned 32-bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_CONFIG_MPDU_SIZE_THRESHOLD = 1,
- QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_CONFIG_AGGRESSIVE_STATS_GATHERING = 2,
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_MAX =
- QCA_WLAN_VENDOR_ATTR_LL_STATS_SET_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_attr_ll_stats_clr {
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_INVALID = 0,
- /* Unsigned 32bit bitmap for clearing statistics
- * All radio statistics 0x00000001
- * cca_busy_time (within radio statistics) 0x00000002
- * All channel stats (within radio statistics) 0x00000004
- * All scan statistics (within radio statistics) 0x00000008
- * All interface statistics 0x00000010
- * All tx rate statistics (within interface statistics) 0x00000020
- * All ac statistics (with in interface statistics) 0x00000040
- * All contention (min, max, avg) statistics (within ac statisctics)
- * 0x00000080.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_REQ_MASK = 1,
- /* Unsigned 8 bit value: Request to stop statistics collection */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_STOP_REQ = 2,
-
- /* Unsigned 32 bit bitmap: Response from the driver
- * for the cleared statistics
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_RSP_MASK = 3,
- /* Unsigned 8 bit value: Response from driver/firmware
- * for the stop request
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_CONFIG_STOP_RSP = 4,
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_MAX =
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CLR_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_attr_ll_stats_get {
- QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_INVALID = 0,
- /* Unsigned 32 bit value provided by the caller issuing the GET stats
- * command. When reporting the stats results, the driver uses the same
- * value to indicate which GET request the results correspond to.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_CONFIG_REQ_ID = 1,
- /* Unsigned 32 bit value - bit mask to identify what statistics are
- * requested for retrieval.
- * Radio Statistics 0x00000001
- * Interface Statistics 0x00000020
- * All Peer Statistics 0x00000040
- * Peer Statistics 0x00000080
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_CONFIG_REQ_MASK = 2,
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_MAX =
- QCA_WLAN_VENDOR_ATTR_LL_STATS_GET_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_attr_ll_stats_results {
- QCA_WLAN_VENDOR_ATTR_LL_STATS_INVALID = 0,
- /* Unsigned 32bit value. Used by the driver; must match the request id
- * provided with the QCA_NL80211_VENDOR_SUBCMD_LL_STATS_GET command.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RESULTS_REQ_ID = 1,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_BEACON_RX = 2,
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_RX = 3,
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_ACTION_RX = 4,
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_MGMT_ACTION_TX = 5,
- /* Signed 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_MGMT = 6,
- /* Signed 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_DATA = 7,
- /* Signed 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_ACK = 8,
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_* are
- * nested within the interface stats.
- */
-
- /* Interface mode, e.g., STA, SOFTAP, IBSS, etc.
- * Type = enum wifi_interface_mode.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_MODE = 9,
- /* Interface MAC address. An array of 6 Unsigned int8 */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_MAC_ADDR = 10,
- /* Type = enum wifi_connection_state, e.g., DISCONNECTED,
- * AUTHENTICATING, etc. valid for STA, CLI only.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_STATE = 11,
- /* Type = enum wifi_roam_state. Roaming state, e.g., IDLE or ACTIVE
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_ROAMING = 12,
- /* Unsigned 32 bit value. WIFI_CAPABILITY_XXX */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_CAPABILITIES = 13,
- /* NULL terminated SSID. An array of 33 Unsigned 8bit values */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_SSID = 14,
- /* BSSID. An array of 6 unsigned 8 bit values */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_BSSID = 15,
- /* Country string advertised by AP. An array of 3 unsigned 8 bit
- * values.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_AP_COUNTRY_STR = 16,
- /* Country string for this association. An array of 3 unsigned 8 bit
- * values.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_INFO_COUNTRY_STR = 17,
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_* could
- * be nested within the interface stats.
- */
-
- /* Type = enum wifi_traffic_ac, e.g., V0, VI, BE and BK */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_AC = 18,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_MPDU = 19,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_MPDU = 20,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_MCAST = 21,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_MCAST = 22,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RX_AMPDU = 23,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_TX_AMPDU = 24,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_MPDU_LOST = 25,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES = 26,
- /* Unsigned int 32 value corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES_SHORT = 27,
- /* Unsigned int 32 values corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_RETRIES_LONG = 28,
- /* Unsigned int 32 values corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_MIN = 29,
- /* Unsigned int 32 values corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_MAX = 30,
- /* Unsigned int 32 values corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_TIME_AVG = 31,
- /* Unsigned int 32 values corresponding to respective AC */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_CONTENTION_NUM_SAMPLES = 32,
- /* Unsigned 32 bit value. Number of peers */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_NUM_PEERS = 33,
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_* are
- * nested within the interface stats.
- */
-
- /* Type = enum wifi_peer_type. Peer type, e.g., STA, AP, P2P GO etc. */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_TYPE = 34,
- /* MAC addr corresponding to respective peer. An array of 6 unsigned
- * 8 bit values.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_MAC_ADDRESS = 35,
- /* Unsigned int 32 bit value representing capabilities corresponding
- * to respective peer.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_CAPABILITIES = 36,
- /* Unsigned 32 bit value. Number of rates */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_NUM_RATES = 37,
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_*
- * are nested within the rate stat.
- */
-
- /* Wi-Fi Rate - separate attributes defined for individual fields */
-
- /* Unsigned int 8 bit value; 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_PREAMBLE = 38,
- /* Unsigned int 8 bit value; 0:1x1, 1:2x2, 3:3x3, 4:4x4 */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_NSS = 39,
- /* Unsigned int 8 bit value; 0:20 MHz, 1:40 MHz, 2:80 MHz, 3:160 MHz */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_BW = 40,
- /* Unsigned int 8 bit value; OFDM/CCK rate code would be as per IEEE Std
- * in the units of 0.5 Mbps HT/VHT it would be MCS index */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_MCS_INDEX = 41,
-
- /* Unsigned 32 bit value. Bit rate in units of 100 kbps */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_BIT_RATE = 42,
-
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_STAT_* could be
- * nested within the peer info stats.
- */
-
- /* Unsigned int 32 bit value. Number of successfully transmitted data
- * packets, i.e., with ACK received corresponding to the respective
- * rate.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_TX_MPDU = 43,
- /* Unsigned int 32 bit value. Number of received data packets
- * corresponding to the respective rate.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RX_MPDU = 44,
- /* Unsigned int 32 bit value. Number of data packet losses, i.e., no ACK
- * received corresponding to the respective rate.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_MPDU_LOST = 45,
- /* Unsigned int 32 bit value. Total number of data packet retries for
- * the respective rate.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES = 46,
- /* Unsigned int 32 bit value. Total number of short data packet retries
- * for the respective rate.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES_SHORT = 47,
- /* Unsigned int 32 bit value. Total number of long data packet retries
- * for the respective rate.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_RETRIES_LONG = 48,
-
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ID = 49,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake
- * accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME = 50,
- /* Unsigned 32 bit value. Total number of msecs the radio is
- * transmitting accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME = 51,
- /* Unsigned 32 bit value. Total number of msecs the radio is in active
- * receive accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_RX_TIME = 52,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake due
- * to all scan accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_SCAN = 53,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake due
- * to NAN accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_NBD = 54,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake due
- * to GSCAN accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_GSCAN = 55,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake due
- * to roam scan accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_ROAM_SCAN = 56,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake due
- * to PNO scan accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_PNO_SCAN = 57,
- /* Unsigned 32 bit value. Total number of msecs the radio is awake due
- * to Hotspot 2.0 scans and GAS exchange accruing over time.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_ON_TIME_HS20 = 58,
- /* Unsigned 32 bit value. Number of channels. */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_CHANNELS = 59,
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_* could
- * be nested within the channel stats.
- */
-
- /* Type = enum wifi_channel_width. Channel width, e.g., 20, 40, 80 */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_WIDTH = 60,
- /* Unsigned 32 bit value. Primary 20 MHz channel. */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ = 61,
- /* Unsigned 32 bit value. Center frequency (MHz) first segment. */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ0 = 62,
- /* Unsigned 32 bit value. Center frequency (MHz) second segment. */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_CENTER_FREQ1 = 63,
-
- /* Attributes of type QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_* could be
- * nested within the radio stats.
- */
-
- /* Unsigned int 32 bit value representing total number of msecs the
- * radio is awake on that channel accruing over time, corresponding to
- * the respective channel.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_ON_TIME = 64,
- /* Unsigned int 32 bit value representing total number of msecs the CCA
- * register is busy accruing over time corresponding to the respective
- * channel.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_CCA_BUSY_TIME = 65,
-
- QCA_WLAN_VENDOR_ATTR_LL_STATS_NUM_RADIOS = 66,
-
- /* Signifies the nested list of channel attributes
- * QCA_WLAN_VENDOR_ATTR_LL_STATS_CHANNEL_INFO_*
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_CH_INFO = 67,
-
- /* Signifies the nested list of peer info attributes
- * QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_*
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO = 68,
-
- /* Signifies the nested list of rate info attributes
- * QCA_WLAN_VENDOR_ATTR_LL_STATS_RATE_*
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_RATE_INFO = 69,
-
- /* Signifies the nested list of wmm info attributes
- * QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_AC_*
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_WMM_INFO = 70,
-
- /* Unsigned 8 bit value. Used by the driver; if set to 1, it indicates
- * that more stats, e.g., peers or radio, are to follow in the next
- * QCA_NL80211_VENDOR_SUBCMD_LL_STATS_*_RESULTS event.
- * Otherwise, it is set to 0.
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RESULTS_MORE_DATA = 71,
-
- /* Unsigned 64 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_AVERAGE_TSF_OFFSET = 72,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_DETECTED = 73,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_AVG_NUM_FRAMES_LEAKED = 74,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_LEAKY_AP_GUARD_TIME = 75,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_TYPE = 76,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_NUM_TX_LEVELS = 77,
-
- /* Number of msecs the radio spent in transmitting for each power level
- */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_RADIO_TX_TIME_PER_LEVEL = 78,
-
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RTS_SUCC_CNT = 79,
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RTS_FAIL_CNT = 80,
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_PPDU_SUCC_CNT = 81,
- /* Unsigned 32 bit value */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_PPDU_FAIL_CNT = 82,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_LL_STATS_MAX =
- QCA_WLAN_VENDOR_ATTR_LL_STATS_AFTER_LAST - 1,
-};
-
-enum qca_wlan_vendor_attr_ll_stats_type
-{
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_INVALID = 0,
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_RADIO = 1,
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_IFACE = 2,
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_PEERS = 3,
-
- /* keep last */
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_AFTER_LAST,
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_MAX =
- QCA_NL80211_VENDOR_SUBCMD_LL_STATS_TYPE_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_tdls_configuration - Attributes for
- * TDLS configuration to the host driver.
- *
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TRIGGER_MODE: Configure the TDLS trigger
- * mode in the host driver. enum qca_wlan_vendor_tdls_trigger_mode
- * represents the different TDLS trigger modes.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_STATS_PERIOD: Duration (u32) within
- * which QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_THRESHOLD number
- * of packets shall meet the criteria for implicit TDLS setup.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_THRESHOLD: Number (u32) of Tx/Rx packets
- * within a duration QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_STATS_PERIOD
- * to initiate a TDLS setup.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_DISCOVERY_PERIOD: Time (u32) to initiate
- * a TDLS Discovery to the peer.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_MAX_DISCOVERY_ATTEMPT: Max number (u32) of
- * discovery attempts to know the TDLS capability of the peer. A peer is
- * marked as TDLS not capable if there is no response for all the attempts.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_TIMEOUT: Represents a duration (u32)
- * within which QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_PACKET_THRESHOLD
- * number of TX / RX frames meet the criteria for TDLS teardown.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_PACKET_THRESHOLD: Minimum number (u32)
- * of Tx/Rx packets within a duration
- * QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_TIMEOUT to tear down a TDLS link.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_SETUP_RSSI_THRESHOLD: Threshold
- * corresponding to the RSSI of the peer below which a TDLS setup is
- * triggered.
- * @QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TEARDOWN_RSSI_THRESHOLD: Threshold
- * corresponding to the RSSI of the peer above which a TDLS teardown is
- * triggered.
- */
-enum qca_wlan_vendor_attr_tdls_configuration {
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TRIGGER_MODE = 1,
-
- /* Attributes configuring the TDLS Implicit Trigger */
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_STATS_PERIOD = 2,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TX_THRESHOLD = 3,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_DISCOVERY_PERIOD = 4,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_MAX_DISCOVERY_ATTEMPT = 5,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_TIMEOUT = 6,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IDLE_PACKET_THRESHOLD = 7,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_SETUP_RSSI_THRESHOLD = 8,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TEARDOWN_RSSI_THRESHOLD = 9,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_MAX =
- QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_AFTER_LAST - 1
-};
-
-/**
- * enum qca_wlan_vendor_tdls_trigger_mode: Represents the TDLS trigger mode in
- * the driver
- *
- * The following are the different values for
- * QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_TRIGGER_MODE.
- *
- * @QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXPLICIT: The trigger to initiate/teardown
- * the TDLS connection to a respective peer comes from the user space.
- * wpa_supplicant provides the commands TDLS_SETUP, TDLS_TEARDOWN,
- * TDLS_DISCOVER to do this.
- * @QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_IMPLICIT: Host driver triggers this TDLS
- * setup/teardown to the eligible peer once the configured criteria
- * (such as TX/RX threshold, RSSI) is met. The attributes
- * in QCA_WLAN_VENDOR_ATTR_TDLS_CONFIG_IMPLICIT_PARAMS correspond to
- * the different configuration criteria for the TDLS trigger from the
- * host driver.
- * @QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXTERNAL: Enables the driver to trigger
- * the TDLS setup / teardown through the implicit mode only to the
- * configured MAC addresses (wpa_supplicant, with tdls_external_control=1,
- * configures the MAC address through TDLS_SETUP / TDLS_TEARDOWN commands).
- * External mode works on top of the implicit mode. Thus the host driver
- * is expected to configure in TDLS Implicit mode too to operate in
- * External mode.
- * Configuring External mode alone without Implicit mode is invalid.
- *
- * All the above implementations work as expected only when the host driver
- * advertises the capability WPA_DRIVER_FLAGS_TDLS_EXTERNAL_SETUP - representing
- * that the TDLS message exchange is not internal to the host driver, but
- * depends on wpa_supplicant to do the message exchange.
- */
-enum qca_wlan_vendor_tdls_trigger_mode {
- QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXPLICIT = 1 << 0,
- QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_IMPLICIT = 1 << 1,
- QCA_WLAN_VENDOR_TDLS_TRIGGER_MODE_EXTERNAL = 1 << 2,
-};
-
#endif /* QCA_VENDOR_H */
diff --git a/src/common/version.h b/src/common/version.h
index 16c1004..ae5c9d4 100644
--- a/src/common/version.h
+++ b/src/common/version.h
@@ -9,6 +9,6 @@
#define GIT_VERSION_STR_POSTFIX ""
#endif /* GIT_VERSION_STR_POSTFIX */
-#define VERSION_STR "2.7-devel" VERSION_STR_POSTFIX GIT_VERSION_STR_POSTFIX
+#define VERSION_STR "2.6-devel" VERSION_STR_POSTFIX GIT_VERSION_STR_POSTFIX
#endif /* VERSION_H */
diff --git a/src/common/wpa_common.c b/src/common/wpa_common.c
index a87210e..299b8bb 100644
--- a/src/common/wpa_common.c
+++ b/src/common/wpa_common.c
@@ -9,7 +9,6 @@
#include "includes.h"
#include "common.h"
-#include "utils/crc32.h"
#include "crypto/md5.h"
#include "crypto/sha1.h"
#include "crypto/sha256.h"
@@ -23,49 +22,25 @@
static unsigned int wpa_kck_len(int akmp)
{
- switch (akmp) {
- case WPA_KEY_MGMT_IEEE8021X_SUITE_B_192:
+ if (akmp == WPA_KEY_MGMT_IEEE8021X_SUITE_B_192)
return 24;
- case WPA_KEY_MGMT_FILS_SHA256:
- case WPA_KEY_MGMT_FT_FILS_SHA256:
- case WPA_KEY_MGMT_FILS_SHA384:
- case WPA_KEY_MGMT_FT_FILS_SHA384:
- return 0;
- default:
- return 16;
- }
+ return 16;
}
static unsigned int wpa_kek_len(int akmp)
{
- switch (akmp) {
- case WPA_KEY_MGMT_FILS_SHA384:
- case WPA_KEY_MGMT_FT_FILS_SHA384:
- return 64;
- case WPA_KEY_MGMT_IEEE8021X_SUITE_B_192:
- case WPA_KEY_MGMT_FILS_SHA256:
- case WPA_KEY_MGMT_FT_FILS_SHA256:
+ if (akmp == WPA_KEY_MGMT_IEEE8021X_SUITE_B_192)
return 32;
- default:
- return 16;
- }
+ return 16;
}
unsigned int wpa_mic_len(int akmp)
{
- switch (akmp) {
- case WPA_KEY_MGMT_IEEE8021X_SUITE_B_192:
+ if (akmp == WPA_KEY_MGMT_IEEE8021X_SUITE_B_192)
return 24;
- case WPA_KEY_MGMT_FILS_SHA256:
- case WPA_KEY_MGMT_FILS_SHA384:
- case WPA_KEY_MGMT_FT_FILS_SHA256:
- case WPA_KEY_MGMT_FT_FILS_SHA384:
- return 0;
- default:
- return 16;
- }
+ return 16;
}
@@ -229,155 +204,6 @@
return 0;
}
-#ifdef CONFIG_FILS
-
-int fils_pmk_to_ptk(const u8 *pmk, size_t pmk_len, const u8 *spa, const u8 *aa,
- const u8 *snonce, const u8 *anonce, struct wpa_ptk *ptk,
- u8 *ick, size_t *ick_len, int akmp, int cipher)
-{
- u8 data[2 * ETH_ALEN + 2 * FILS_NONCE_LEN];
- u8 tmp[FILS_ICK_MAX_LEN + WPA_KEK_MAX_LEN + WPA_TK_MAX_LEN];
- size_t key_data_len;
- const char *label = "FILS PTK Derivation";
-
- /*
- * FILS-Key-Data = PRF-X(PMK, "FILS PTK Derivation",
- * SPA || AA || SNonce || ANonce)
- * ICK = L(FILS-Key-Data, 0, ICK_bits)
- * KEK = L(FILS-Key-Data, ICK_bits, KEK_bits)
- * TK = L(FILS-Key-Data, ICK_bits + KEK_bits, TK_bits)
- * If doing FT initial mobility domain association:
- * FILS-FT = L(FILS-Key-Data, ICK_bits + KEK_bits + TK_bits,
- * FILS-FT_bits)
- */
- os_memcpy(data, spa, ETH_ALEN);
- os_memcpy(data + ETH_ALEN, aa, ETH_ALEN);
- os_memcpy(data + 2 * ETH_ALEN, snonce, FILS_NONCE_LEN);
- os_memcpy(data + 2 * ETH_ALEN + FILS_NONCE_LEN, anonce, FILS_NONCE_LEN);
-
- ptk->kck_len = 0;
- ptk->kek_len = wpa_kek_len(akmp);
- ptk->tk_len = wpa_cipher_key_len(cipher);
- if (wpa_key_mgmt_sha384(akmp))
- *ick_len = 48;
- else if (wpa_key_mgmt_sha256(akmp))
- *ick_len = 32;
- else
- return -1;
- key_data_len = *ick_len + ptk->kek_len + ptk->tk_len;
-
- if (wpa_key_mgmt_sha384(akmp))
- sha384_prf(pmk, pmk_len, label, data, sizeof(data),
- tmp, key_data_len);
- else if (sha256_prf(pmk, pmk_len, label, data, sizeof(data),
- tmp, key_data_len) < 0)
- return -1;
-
- wpa_printf(MSG_DEBUG, "FILS: PTK derivation - SPA=" MACSTR
- " AA=" MACSTR, MAC2STR(spa), MAC2STR(aa));
- wpa_hexdump(MSG_DEBUG, "FILS: SNonce", snonce, FILS_NONCE_LEN);
- wpa_hexdump(MSG_DEBUG, "FILS: ANonce", anonce, FILS_NONCE_LEN);
- wpa_hexdump_key(MSG_DEBUG, "FILS: PMK", pmk, pmk_len);
- wpa_hexdump_key(MSG_DEBUG, "FILS: FILS-Key-Data", tmp, key_data_len);
-
- os_memcpy(ick, tmp, *ick_len);
- wpa_hexdump_key(MSG_DEBUG, "FILS: ICK", ick, *ick_len);
-
- os_memcpy(ptk->kek, tmp + *ick_len, ptk->kek_len);
- wpa_hexdump_key(MSG_DEBUG, "FILS: KEK", ptk->kek, ptk->kek_len);
-
- os_memcpy(ptk->tk, tmp + *ick_len + ptk->kek_len, ptk->tk_len);
- wpa_hexdump_key(MSG_DEBUG, "FILS: TK", ptk->tk, ptk->tk_len);
-
- /* TODO: FILS-FT */
-
- os_memset(tmp, 0, sizeof(tmp));
- return 0;
-}
-
-
-int fils_key_auth_sk(const u8 *ick, size_t ick_len, const u8 *snonce,
- const u8 *anonce, const u8 *sta_addr, const u8 *bssid,
- const u8 *g_sta, size_t g_sta_len,
- const u8 *g_ap, size_t g_ap_len,
- int akmp, u8 *key_auth_sta, u8 *key_auth_ap,
- size_t *key_auth_len)
-{
- const u8 *addr[6];
- size_t len[6];
- size_t num_elem = 4;
- int res;
-
- /*
- * For (Re)Association Request frame (STA->AP):
- * Key-Auth = HMAC-Hash(ICK, SNonce || ANonce || STA-MAC || AP-BSSID
- * [ || gSTA || gAP ])
- */
- addr[0] = snonce;
- len[0] = FILS_NONCE_LEN;
- addr[1] = anonce;
- len[1] = FILS_NONCE_LEN;
- addr[2] = sta_addr;
- len[2] = ETH_ALEN;
- addr[3] = bssid;
- len[3] = ETH_ALEN;
- if (g_sta && g_ap_len && g_ap && g_ap_len) {
- addr[4] = g_sta;
- len[4] = g_sta_len;
- addr[5] = g_ap;
- len[5] = g_ap_len;
- num_elem = 6;
- }
-
- if (wpa_key_mgmt_sha384(akmp)) {
- *key_auth_len = 48;
- res = hmac_sha384_vector(ick, ick_len, num_elem, addr, len,
- key_auth_sta);
- } else if (wpa_key_mgmt_sha256(akmp)) {
- *key_auth_len = 32;
- res = hmac_sha256_vector(ick, ick_len, num_elem, addr, len,
- key_auth_sta);
- } else {
- return -1;
- }
- if (res < 0)
- return res;
-
- /*
- * For (Re)Association Response frame (AP->STA):
- * Key-Auth = HMAC-Hash(ICK, ANonce || SNonce || AP-BSSID || STA-MAC
- * [ || gAP || gSTA ])
- */
- addr[0] = anonce;
- addr[1] = snonce;
- addr[2] = bssid;
- addr[3] = sta_addr;
- if (g_sta && g_ap_len && g_ap && g_ap_len) {
- addr[4] = g_ap;
- len[4] = g_ap_len;
- addr[5] = g_sta;
- len[5] = g_sta_len;
- }
-
- if (wpa_key_mgmt_sha384(akmp))
- res = hmac_sha384_vector(ick, ick_len, num_elem, addr, len,
- key_auth_ap);
- else if (wpa_key_mgmt_sha256(akmp))
- res = hmac_sha256_vector(ick, ick_len, num_elem, addr, len,
- key_auth_ap);
- if (res < 0)
- return res;
-
- wpa_hexdump(MSG_DEBUG, "FILS: Key-Auth (STA)",
- key_auth_sta, *key_auth_len);
- wpa_hexdump(MSG_DEBUG, "FILS: Key-Auth (AP)",
- key_auth_ap, *key_auth_len);
-
- return 0;
-}
-
-#endif /* CONFIG_FILS */
-
#ifdef CONFIG_IEEE80211R
int wpa_ft_mic(const u8 *kck, size_t kck_len, const u8 *sta_addr,
@@ -550,8 +376,6 @@
}
if (data.num_pmkid == 1 && data.pmkid)
parse->rsn_pmkid = data.pmkid;
- parse->key_mgmt = data.key_mgmt;
- parse->pairwise_cipher = data.pairwise_cipher;
break;
case WLAN_EID_MOBILITY_DOMAIN:
if (len < sizeof(struct rsn_mdie))
@@ -686,14 +510,6 @@
return WPA_KEY_MGMT_IEEE8021X_SUITE_B;
if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_802_1X_SUITE_B_192)
return WPA_KEY_MGMT_IEEE8021X_SUITE_B_192;
- if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_FILS_SHA256)
- return WPA_KEY_MGMT_FILS_SHA256;
- if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_FILS_SHA384)
- return WPA_KEY_MGMT_FILS_SHA384;
- if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_FT_FILS_SHA256)
- return WPA_KEY_MGMT_FT_FILS_SHA256;
- if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_FT_FILS_SHA384)
- return WPA_KEY_MGMT_FT_FILS_SHA384;
if (RSN_SELECTOR_GET(s) == RSN_AUTH_KEY_MGMT_OSEN)
return WPA_KEY_MGMT_OSEN;
return 0;
@@ -1396,14 +1212,6 @@
return "WPA2-EAP-SUITE-B";
case WPA_KEY_MGMT_IEEE8021X_SUITE_B_192:
return "WPA2-EAP-SUITE-B-192";
- case WPA_KEY_MGMT_FILS_SHA256:
- return "FILS-SHA256";
- case WPA_KEY_MGMT_FILS_SHA384:
- return "FILS-SHA384";
- case WPA_KEY_MGMT_FT_FILS_SHA256:
- return "FT-FILS-SHA256";
- case WPA_KEY_MGMT_FT_FILS_SHA384:
- return "FT-FILS-SHA384";
default:
return "UNKNOWN";
}
@@ -1434,14 +1242,6 @@
return WLAN_AKM_SUITE_8021X_SUITE_B;
if (akm & WPA_KEY_MGMT_IEEE8021X_SUITE_B_192)
return WLAN_AKM_SUITE_8021X_SUITE_B_192;
- if (akm & WPA_KEY_MGMT_FILS_SHA256)
- return WLAN_AKM_SUITE_FILS_SHA256;
- if (akm & WPA_KEY_MGMT_FILS_SHA384)
- return WLAN_AKM_SUITE_FILS_SHA384;
- if (akm & WPA_KEY_MGMT_FT_FILS_SHA256)
- return WLAN_AKM_SUITE_FT_FILS_SHA256;
- if (akm & WPA_KEY_MGMT_FT_FILS_SHA384)
- return WLAN_AKM_SUITE_FT_FILS_SHA384;
return 0;
}
@@ -1483,7 +1283,7 @@
}
-#if defined(CONFIG_IEEE80211R) || defined(CONFIG_FILS)
+#ifdef CONFIG_IEEE80211R
int wpa_insert_pmkid(u8 *ies, size_t *ies_len, const u8 *pmkid)
{
u8 *start, *end, *rpos, *rend;
@@ -1582,7 +1382,7 @@
return 0;
}
-#endif /* CONFIG_IEEE80211R || CONFIG_FILS */
+#endif /* CONFIG_IEEE80211R */
int wpa_cipher_key_len(int cipher)
@@ -1905,25 +1705,3 @@
return WPA_CIPHER_CCMP_256;
return WPA_CIPHER_CCMP;
}
-
-
-#ifdef CONFIG_FILS
-u16 fils_domain_name_hash(const char *domain)
-{
- char buf[255], *wpos = buf;
- const char *pos = domain;
- size_t len;
- u32 crc;
-
- for (len = 0; len < sizeof(buf) && *pos; len++) {
- if (isalpha(*pos) && isupper(*pos))
- *wpos++ = tolower(*pos);
- else
- *wpos++ = *pos;
- pos++;
- }
-
- crc = crc32((const u8 *) buf, len);
- return crc & 0xffff;
-}
-#endif /* CONFIG_FILS */
diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
index 6d28417..af1d0f0 100644
--- a/src/common/wpa_common.h
+++ b/src/common/wpa_common.h
@@ -61,10 +61,6 @@
#define RSN_AUTH_KEY_MGMT_802_1X_SUITE_B_192 RSN_SELECTOR(0x00, 0x0f, 0xac, 12)
#define RSN_AUTH_KEY_MGMT_FT_802_1X_SUITE_B_192 \
RSN_SELECTOR(0x00, 0x0f, 0xac, 13)
-#define RSN_AUTH_KEY_MGMT_FILS_SHA256 RSN_SELECTOR(0x00, 0x0f, 0xac, 14)
-#define RSN_AUTH_KEY_MGMT_FILS_SHA384 RSN_SELECTOR(0x00, 0x0f, 0xac, 15)
-#define RSN_AUTH_KEY_MGMT_FT_FILS_SHA256 RSN_SELECTOR(0x00, 0x0f, 0xac, 16)
-#define RSN_AUTH_KEY_MGMT_FT_FILS_SHA384 RSN_SELECTOR(0x00, 0x0f, 0xac, 17)
#define RSN_AUTH_KEY_MGMT_CCKM RSN_SELECTOR(0x00, 0x40, 0x96, 0x00)
#define RSN_AUTH_KEY_MGMT_OSEN RSN_SELECTOR(0x50, 0x6f, 0x9a, 0x01)
@@ -183,16 +179,30 @@
u8 key_iv[16];
u8 key_rsc[WPA_KEY_RSC_LEN];
u8 key_id[8]; /* Reserved in IEEE 802.11i/RSN */
- /* variable length Key MIC field */
- /* big endian 2-octet Key Data Length field */
- /* followed by Key Data Length bytes of Key Data */
+ u8 key_mic[16];
+ u8 key_data_length[2]; /* big endian */
+ /* followed by key_data_length bytes of key_data */
+} STRUCT_PACKED;
+
+struct wpa_eapol_key_192 {
+ u8 type;
+ /* Note: key_info, key_length, and key_data_length are unaligned */
+ u8 key_info[2]; /* big endian */
+ u8 key_length[2]; /* big endian */
+ u8 replay_counter[WPA_REPLAY_COUNTER_LEN];
+ u8 key_nonce[WPA_NONCE_LEN];
+ u8 key_iv[16];
+ u8 key_rsc[WPA_KEY_RSC_LEN];
+ u8 key_id[8]; /* Reserved in IEEE 802.11i/RSN */
+ u8 key_mic[24];
+ u8 key_data_length[2]; /* big endian */
+ /* followed by key_data_length bytes of key_data */
} STRUCT_PACKED;
#define WPA_EAPOL_KEY_MIC_MAX_LEN 24
#define WPA_KCK_MAX_LEN 24
-#define WPA_KEK_MAX_LEN 64
+#define WPA_KEK_MAX_LEN 32
#define WPA_TK_MAX_LEN 32
-#define FILS_ICK_MAX_LEN 48
/**
* struct wpa_ptk - WPA Pairwise Transient Key
@@ -330,15 +340,6 @@
const u8 *addr1, const u8 *addr2,
const u8 *nonce1, const u8 *nonce2,
struct wpa_ptk *ptk, int akmp, int cipher);
-int fils_pmk_to_ptk(const u8 *pmk, size_t pmk_len, const u8 *spa, const u8 *aa,
- const u8 *snonce, const u8 *anonce, struct wpa_ptk *ptk,
- u8 *ick, size_t *ick_len, int akmp, int cipher);
-int fils_key_auth_sk(const u8 *ick, size_t ick_len, const u8 *snonce,
- const u8 *anonce, const u8 *sta_addr, const u8 *bssid,
- const u8 *g_sta, size_t g_sta_len,
- const u8 *g_ap, size_t g_ap_len,
- int akmp, u8 *key_auth_sta, u8 *key_auth_ap,
- size_t *key_auth_len);
#ifdef CONFIG_IEEE80211R
int wpa_ft_mic(const u8 *kck, size_t kck_len, const u8 *sta_addr,
@@ -429,8 +430,6 @@
size_t igtk_len;
const u8 *ric;
size_t ric_len;
- int key_mgmt;
- int pairwise_cipher;
};
int wpa_ft_parse_ies(const u8 *ies, size_t ies_len, struct wpa_ft_ies *parse);
@@ -450,6 +449,5 @@
int wpa_write_ciphers(char *start, char *end, int ciphers, const char *delim);
int wpa_select_ap_group_cipher(int wpa, int wpa_pairwise, int rsn_pairwise);
unsigned int wpa_mic_len(int akmp);
-u16 fils_domain_name_hash(const char *domain);
#endif /* WPA_COMMON_H */