Revert "[wpa_supplicant] Cumulative patch from c4e90da6d"
This reverts commit 39bc25d3a79c1375de430a7918d949c1a86f70c6.
Test: Compilation
Change-Id: Iae7670429466958911b5296cb1359bceecc0b03e
Exempt-From-Owner-Approval: Revert since it's breaking the build
diff --git a/src/common/defs.h b/src/common/defs.h
index 4faf1c8..c968cd6 100644
--- a/src/common/defs.h
+++ b/src/common/defs.h
@@ -59,13 +59,6 @@
#define WPA_KEY_MGMT_DPP BIT(23)
#define WPA_KEY_MGMT_FT_IEEE8021X_SHA384 BIT(24)
-#define WPA_KEY_MGMT_FT (WPA_KEY_MGMT_FT_PSK | \
- WPA_KEY_MGMT_FT_IEEE8021X | \
- WPA_KEY_MGMT_FT_IEEE8021X_SHA384 | \
- WPA_KEY_MGMT_FT_SAE | \
- WPA_KEY_MGMT_FT_FILS_SHA256 | \
- WPA_KEY_MGMT_FT_FILS_SHA384)
-
static inline int wpa_key_mgmt_wpa_ieee8021x(int akm)
{
return !!(akm & (WPA_KEY_MGMT_IEEE8021X |
@@ -93,14 +86,12 @@
static inline int wpa_key_mgmt_ft(int akm)
{
- return !!(akm & WPA_KEY_MGMT_FT);
-}
-
-static inline int wpa_key_mgmt_only_ft(int akm)
-{
- int ft = wpa_key_mgmt_ft(akm);
- akm &= ~WPA_KEY_MGMT_FT;
- return ft && !akm;
+ return !!(akm & (WPA_KEY_MGMT_FT_PSK |
+ WPA_KEY_MGMT_FT_IEEE8021X |
+ WPA_KEY_MGMT_FT_IEEE8021X_SHA384 |
+ 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)
@@ -408,15 +399,4 @@
#define OCE_STA_CFON BIT(1)
#define OCE_AP BIT(2)
-/* enum chan_width - Channel width definitions */
-enum chan_width {
- CHAN_WIDTH_20_NOHT,
- CHAN_WIDTH_20,
- CHAN_WIDTH_40,
- CHAN_WIDTH_80,
- CHAN_WIDTH_80P80,
- CHAN_WIDTH_160,
- CHAN_WIDTH_UNKNOWN
-};
-
#endif /* DEFS_H */
diff --git a/src/common/dpp.c b/src/common/dpp.c
index bcb694b..677f586 100644
--- a/src/common/dpp.c
+++ b/src/common/dpp.c
@@ -813,9 +813,7 @@
const unsigned char *pk;
int ppklen;
X509_ALGOR *pa;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
- (defined(LIBRESSL_VERSION_NUMBER) && \
- LIBRESSL_VERSION_NUMBER < 0x20800000L)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
ASN1_OBJECT *pa_oid;
#else
const ASN1_OBJECT *pa_oid;
@@ -2856,7 +2854,7 @@
i_pubkey_hash = test_hash;
} else if (dpp_test == DPP_TEST_NO_STATUS_AUTH_RESP) {
wpa_printf(MSG_INFO, "DPP: TESTING - no Status");
- status = 255;
+ status = -1;
} else if (dpp_test == DPP_TEST_NO_I_NONCE_AUTH_RESP) {
wpa_printf(MSG_INFO, "DPP: TESTING - no I-nonce");
i_nonce = NULL;
@@ -3459,7 +3457,7 @@
}
#endif /* CONFIG_TESTING_OPTIONS */
- if (!auth->initiator || !auth->peer_bi) {
+ if (!auth->initiator) {
dpp_auth_fail(auth, "Unexpected Authentication Response");
return NULL;
}
@@ -3640,7 +3638,7 @@
goto fail;
}
- if (auth->own_bi) {
+ if (auth->own_bi && auth->peer_bi) {
/* Mutual authentication */
if (dpp_auth_derive_l_initiator(auth) < 0)
goto fail;
@@ -3848,7 +3846,7 @@
}
#endif /* CONFIG_TESTING_OPTIONS */
- if (auth->initiator || !auth->own_bi) {
+ if (auth->initiator) {
dpp_auth_fail(auth, "Unexpected Authentication Confirm");
return -1;
}
@@ -3906,7 +3904,7 @@
"Initiator Bootstrapping Key Hash mismatch");
return -1;
}
- } else if (auth->peer_bi) {
+ } else if (auth->own_bi && auth->peer_bi) {
/* Mutual authentication and peer did not include its
* Bootstrapping Key Hash attribute. */
dpp_auth_fail(auth,
@@ -4759,7 +4757,7 @@
goto fail;
}
if (os_strcmp(token->string, "EC") != 0) {
- wpa_printf(MSG_DEBUG, "DPP: Unexpected JWK kty '%s'",
+ wpa_printf(MSG_DEBUG, "DPP: Unexpected JWK kty '%s",
token->string);
goto fail;
}
@@ -6588,32 +6586,6 @@
}
-static int dpp_pkex_identifier_match(const u8 *attr_id, u16 attr_id_len,
- const char *identifier)
-{
- if (!attr_id && identifier) {
- wpa_printf(MSG_DEBUG,
- "DPP: No PKEX code identifier received, but expected one");
- return 0;
- }
-
- if (attr_id && !identifier) {
- wpa_printf(MSG_DEBUG,
- "DPP: PKEX code identifier received, but not expecting one");
- return 0;
- }
-
- if (attr_id && identifier &&
- (os_strlen(identifier) != attr_id_len ||
- os_memcmp(identifier, attr_id, attr_id_len) != 0)) {
- wpa_printf(MSG_DEBUG, "DPP: PKEX code identifier mismatch");
- return 0;
- }
-
- return 1;
-}
-
-
struct dpp_pkex * dpp_pkex_rx_exchange_req(void *msg_ctx,
struct dpp_bootstrap_info *bi,
const u8 *own_mac,
@@ -6658,11 +6630,19 @@
}
#endif /* CONFIG_TESTING_OPTIONS */
- attr_id_len = 0;
attr_id = dpp_get_attr(buf, len, DPP_ATTR_CODE_IDENTIFIER,
&attr_id_len);
- if (!dpp_pkex_identifier_match(attr_id, attr_id_len, identifier))
+ if (!attr_id && identifier) {
+ wpa_printf(MSG_DEBUG,
+ "DPP: No PKEX code identifier received, but expected one");
return NULL;
+ }
+ if (attr_id && identifier &&
+ (os_strlen(identifier) != attr_id_len ||
+ os_memcmp(identifier, attr_id, attr_id_len) != 0)) {
+ wpa_printf(MSG_DEBUG, "DPP: PKEX code identifier mismatch");
+ return NULL;
+ }
attr_group = dpp_get_attr(buf, len, DPP_ATTR_FINITE_CYCLIC_GROUP,
&attr_group_len);
@@ -7034,11 +7014,16 @@
return NULL;
}
- attr_id_len = 0;
attr_id = dpp_get_attr(buf, buflen, DPP_ATTR_CODE_IDENTIFIER,
&attr_id_len);
- if (!dpp_pkex_identifier_match(attr_id, attr_id_len,
- pkex->identifier)) {
+ if (!attr_id && pkex->identifier) {
+ wpa_printf(MSG_DEBUG,
+ "DPP: No PKEX code identifier received, but expected one");
+ return NULL;
+ }
+ if (attr_id && pkex->identifier &&
+ (os_strlen(pkex->identifier) != attr_id_len ||
+ os_memcmp(pkex->identifier, attr_id, attr_id_len) != 0)) {
dpp_pkex_fail(pkex, "PKEX code identifier mismatch");
return NULL;
}
diff --git a/src/common/gas_server.c b/src/common/gas_server.c
index ca46758..b258675 100644
--- a/src/common/gas_server.c
+++ b/src/common/gas_server.c
@@ -97,10 +97,8 @@
return;
response = os_zalloc(sizeof(*response));
- if (!response) {
- wpabuf_free(query_resp);
+ if (!response)
return;
- }
wpa_printf(MSG_DEBUG, "DPP: Allocated GAS response @%p", response);
response->freq = freq;
response->handler = handler;
@@ -121,7 +119,6 @@
handler->adv_proto_id_len +
resp_frag_len);
if (!resp) {
- wpabuf_free(query_resp);
gas_server_free_response(response);
return;
}
@@ -260,7 +257,6 @@
handler->adv_proto_id_len +
resp_frag_len);
if (!resp) {
- dl_list_del(&response->list);
gas_server_free_response(response);
return;
}
diff --git a/src/common/hw_features_common.c b/src/common/hw_features_common.c
index 49ed806..db40379 100644
--- a/src/common/hw_features_common.c
+++ b/src/common/hw_features_common.c
@@ -87,29 +87,13 @@
int allowed_ht40_channel_pair(struct hostapd_hw_modes *mode, int pri_chan,
int sec_chan)
{
- int ok, first;
+ int ok, j, first;
int allowed[] = { 36, 44, 52, 60, 100, 108, 116, 124, 132, 140,
149, 157, 165, 184, 192 };
size_t k;
- struct hostapd_channel_data *p_chan, *s_chan;
- const int ht40_plus = pri_chan < sec_chan;
- p_chan = hw_get_channel_chan(mode, pri_chan, NULL);
- if (!p_chan)
- return 0;
-
- if (pri_chan == sec_chan || !sec_chan) {
- if (chan_pri_allowed(p_chan))
- return 1; /* HT40 not used */
-
- wpa_printf(MSG_ERROR, "Channel %d is not allowed as primary",
- pri_chan);
- return 0;
- }
-
- s_chan = hw_get_channel_chan(mode, sec_chan, NULL);
- if (!s_chan)
- return 0;
+ if (pri_chan == sec_chan || !sec_chan)
+ return 1; /* HT40 not used */
wpa_printf(MSG_DEBUG,
"HT40: control channel: %d secondary channel: %d",
@@ -117,9 +101,16 @@
/* Verify that HT40 secondary channel is an allowed 20 MHz
* channel */
- if ((s_chan->flag & HOSTAPD_CHAN_DISABLED) ||
- (ht40_plus && !(p_chan->allowed_bw & HOSTAPD_CHAN_WIDTH_40P)) ||
- (!ht40_plus && !(p_chan->allowed_bw & HOSTAPD_CHAN_WIDTH_40M))) {
+ ok = 0;
+ for (j = 0; j < mode->num_channels; j++) {
+ struct hostapd_channel_data *chan = &mode->channels[j];
+ if (!(chan->flag & HOSTAPD_CHAN_DISABLED) &&
+ chan->chan == sec_chan) {
+ ok = 1;
+ break;
+ }
+ }
+ if (!ok) {
wpa_printf(MSG_ERROR, "HT40 secondary channel %d not allowed",
sec_chan);
return 0;
@@ -562,59 +553,3 @@
}
#endif /* CONFIG_IEEE80211AC */
-
-
-u32 num_chan_to_bw(int num_chans)
-{
- switch (num_chans) {
- case 2:
- case 4:
- case 8:
- return num_chans * 20;
- default:
- return 20;
- }
-}
-
-
-/* check if BW is applicable for channel */
-int chan_bw_allowed(const struct hostapd_channel_data *chan, u32 bw,
- int ht40_plus, int pri)
-{
- u32 bw_mask;
-
- switch (bw) {
- case 20:
- bw_mask = HOSTAPD_CHAN_WIDTH_20;
- break;
- case 40:
- /* HT 40 MHz support declared only for primary channel,
- * just skip 40 MHz secondary checking */
- if (pri && ht40_plus)
- bw_mask = HOSTAPD_CHAN_WIDTH_40P;
- else if (pri && !ht40_plus)
- bw_mask = HOSTAPD_CHAN_WIDTH_40M;
- else
- bw_mask = 0;
- break;
- case 80:
- bw_mask = HOSTAPD_CHAN_WIDTH_80;
- break;
- case 160:
- bw_mask = HOSTAPD_CHAN_WIDTH_160;
- break;
- default:
- bw_mask = 0;
- break;
- }
-
- return (chan->allowed_bw & bw_mask) == bw_mask;
-}
-
-
-/* check if channel is allowed to be used as primary */
-int chan_pri_allowed(const struct hostapd_channel_data *chan)
-{
- return !(chan->flag & HOSTAPD_CHAN_DISABLED) &&
- (chan->allowed_bw & HOSTAPD_CHAN_WIDTH_20);
-}
diff --git a/src/common/hw_features_common.h b/src/common/hw_features_common.h
index eb1f1c5..9cddbd5 100644
--- a/src/common/hw_features_common.h
+++ b/src/common/hw_features_common.h
@@ -39,9 +39,4 @@
int disabled);
int ieee80211ac_cap_check(u32 hw, u32 conf);
-u32 num_chan_to_bw(int num_chans);
-int chan_bw_allowed(const struct hostapd_channel_data *chan, u32 bw,
- int ht40_plus, int pri);
-int chan_pri_allowed(const struct hostapd_channel_data *chan);
-
#endif /* HW_FEATURES_COMMON_H */
diff --git a/src/common/ieee802_11_common.c b/src/common/ieee802_11_common.c
index 9627799..4fd3357 100644
--- a/src/common/ieee802_11_common.c
+++ b/src/common/ieee802_11_common.c
@@ -1,6 +1,6 @@
/*
* IEEE 802.11 Common routines
- * Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2002-2015, Jouni Malinen <j@w1.fi>
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
@@ -126,10 +126,6 @@
elems->roaming_cons_sel = pos;
elems->roaming_cons_sel_len = elen;
break;
- case MULTI_AP_OUI_TYPE:
- elems->multi_ap = pos;
- elems->multi_ap_len = elen;
- break;
default:
wpa_printf(MSG_MSGDUMP, "Unknown WFA "
"information element ignored "
@@ -270,10 +266,6 @@
elems->password_id = pos;
elems->password_id_len = elen;
break;
- case WLAN_EID_EXT_OCV_OCI:
- elems->oci = pos;
- elems->oci_len = elen;
- break;
default:
if (show_errors) {
wpa_printf(MSG_MSGDUMP,
@@ -906,41 +898,6 @@
}
-int ieee80211_chaninfo_to_channel(unsigned int freq, enum chan_width chanwidth,
- int sec_channel, u8 *op_class, u8 *channel)
-{
- int vht = CHAN_WIDTH_UNKNOWN;
-
- switch (chanwidth) {
- case CHAN_WIDTH_UNKNOWN:
- case CHAN_WIDTH_20_NOHT:
- case CHAN_WIDTH_20:
- case CHAN_WIDTH_40:
- vht = VHT_CHANWIDTH_USE_HT;
- break;
- case CHAN_WIDTH_80:
- vht = VHT_CHANWIDTH_80MHZ;
- break;
- case CHAN_WIDTH_80P80:
- vht = VHT_CHANWIDTH_80P80MHZ;
- break;
- case CHAN_WIDTH_160:
- vht = VHT_CHANWIDTH_160MHZ;
- break;
- }
-
- if (ieee80211_freq_to_channel_ext(freq, sec_channel, vht, op_class,
- channel) == NUM_HOSTAPD_MODES) {
- wpa_printf(MSG_WARNING,
- "Cannot determine operating class and channel (freq=%u chanwidth=%d sec_channel=%d)",
- freq, chanwidth, sec_channel);
- return -1;
- }
-
- return 0;
-}
-
-
static const char *const us_op_class_cc[] = {
"US", "CA", NULL
};
@@ -1540,24 +1497,6 @@
}
-const u8 * get_vendor_ie(const u8 *ies, size_t len, u32 vendor_type)
-{
- const u8 *pos = ies, *end = ies + len;
-
- while (end - pos > 1) {
- if (2 + pos[1] > end - pos)
- break;
-
- if (pos[0] == WLAN_EID_VENDOR_SPECIFIC && pos[1] >= 4 &&
- vendor_type == WPA_GET_BE32(&pos[2]))
- return pos;
- pos += 2 + pos[1];
- }
-
- return NULL;
-}
-
-
size_t mbo_add_ie(u8 *buf, size_t len, const u8 *attr, size_t attr_len)
{
/*
@@ -1582,26 +1521,6 @@
}
-size_t add_multi_ap_ie(u8 *buf, size_t len, u8 value)
-{
- u8 *pos = buf;
-
- if (len < 9)
- return 0;
-
- *pos++ = WLAN_EID_VENDOR_SPECIFIC;
- *pos++ = 7; /* len */
- WPA_PUT_BE24(pos, OUI_WFA);
- pos += 3;
- *pos++ = MULTI_AP_OUI_TYPE;
- *pos++ = MULTI_AP_SUB_ELEM_TYPE;
- *pos++ = 1; /* len */
- *pos++ = value;
-
- return pos - buf;
-}
-
-
static const struct country_op_class us_op_class[] = {
{ 1, 115 },
{ 2, 118 },
@@ -1747,27 +1666,6 @@
}
-int oper_class_bw_to_int(const struct oper_class_map *map)
-{
- switch (map->bw) {
- case BW20:
- return 20;
- case BW40PLUS:
- case BW40MINUS:
- return 40;
- case BW80:
- return 80;
- case BW80P80:
- case BW160:
- return 160;
- case BW2160:
- return 2160;
- default:
- return 0;
- }
-}
-
-
int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
size_t nei_rep_len)
{
@@ -1868,11 +1766,3 @@
return nei_pos - nei_rep;
}
-
-
-int ieee802_11_ext_capab(const u8 *ie, unsigned int capab)
-{
- if (!ie || ie[1] <= capab / 8)
- return 0;
- return !!(ie[2 + capab / 8] & BIT(capab % 8));
-}
diff --git a/src/common/ieee802_11_common.h b/src/common/ieee802_11_common.h
index ce3bb8b..ff7e51d 100644
--- a/src/common/ieee802_11_common.h
+++ b/src/common/ieee802_11_common.h
@@ -1,6 +1,6 @@
/*
* IEEE 802.11 Common routines
- * Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2002-2012, Jouni Malinen <j@w1.fi>
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
@@ -10,7 +10,6 @@
#define IEEE802_11_COMMON_H
#include "defs.h"
-#include "ieee802_11_defs.h"
struct hostapd_hw_modes;
@@ -85,8 +84,6 @@
const u8 *power_capab;
const u8 *roaming_cons_sel;
const u8 *password_id;
- const u8 *oci;
- const u8 *multi_ap;
u8 ssid_len;
u8 supp_rates_len;
@@ -133,8 +130,6 @@
u8 power_capab_len;
u8 roaming_cons_sel_len;
u8 password_id_len;
- u8 oci_len;
- u8 multi_ap_len;
struct mb_ies_info mb_ies;
};
@@ -165,8 +160,6 @@
enum hostapd_hw_mode ieee80211_freq_to_channel_ext(unsigned int freq,
int sec_channel, int vht,
u8 *op_class, u8 *channel);
-int ieee80211_chaninfo_to_channel(unsigned int freq, enum chan_width chanwidth,
- int sec_channel, u8 *op_class, u8 *channel);
int ieee80211_is_dfs(int freq, const struct hostapd_hw_modes *modes,
u16 num_modes);
enum phy_type ieee80211_get_phy_type(int freq, int ht, int vht);
@@ -193,12 +186,9 @@
const u8 * get_ie(const u8 *ies, size_t len, u8 eid);
const u8 * get_ie_ext(const u8 *ies, size_t len, u8 ext);
-const u8 * get_vendor_ie(const u8 *ies, size_t len, u32 vendor_type);
size_t mbo_add_ie(u8 *buf, size_t len, const u8 *attr, size_t attr_len);
-size_t add_multi_ap_ie(u8 *buf, size_t len, u8 value);
-
struct country_op_class {
u8 country_op_class;
u8 global_op_class;
@@ -207,11 +197,8 @@
u8 country_to_global_op_class(const char *country, u8 op_class);
const struct oper_class_map * get_oper_class(const char *country, u8 op_class);
-int oper_class_bw_to_int(const struct oper_class_map *map);
int ieee802_11_parse_candidate_list(const char *pos, u8 *nei_rep,
size_t nei_rep_len);
-int ieee802_11_ext_capab(const u8 *ie, unsigned int capab);
-
#endif /* IEEE802_11_COMMON_H */
diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h
index b285d13..762e731 100644
--- a/src/common/ieee802_11_defs.h
+++ b/src/common/ieee802_11_defs.h
@@ -1,6 +1,6 @@
/*
* IEEE 802.11 Frame type definitions
- * Copyright (c) 2002-2019, Jouni Malinen <j@w1.fi>
+ * Copyright (c) 2002-2015, Jouni Malinen <j@w1.fi>
* Copyright (c) 2007-2008 Intel Corporation
*
* This software may be distributed under the terms of the BSD license.
@@ -467,89 +467,7 @@
#define WLAN_EID_EXT_PASSWORD_IDENTIFIER 33
#define WLAN_EID_EXT_HE_CAPABILITIES 35
#define WLAN_EID_EXT_HE_OPERATION 36
-#define WLAN_EID_EXT_HE_MU_EDCA_PARAMS 38
-#define WLAN_EID_EXT_OCV_OCI 54
-/* Extended Capabilities field */
-#define WLAN_EXT_CAPAB_20_40_COEX 0
-#define WLAN_EXT_CAPAB_GLK 1
-#define WLAN_EXT_CAPAB_EXT_CHAN_SWITCH 2
-#define WLAN_EXT_CAPAB_GLK_GCR 3
-#define WLAN_EXT_CAPAB_PSMP 4
-/* 5 - Reserved */
-#define WLAN_EXT_CAPAB_S_PSMP 6
-#define WLAN_EXT_CAPAB_EVENT 7
-#define WLAN_EXT_CAPAB_DIAGNOSTICS 8
-#define WLAN_EXT_CAPAB_MULTICAST_DIAGNOSTICS 9
-#define WLAN_EXT_CAPAB_LOCATION_TRACKING 10
-#define WLAN_EXT_CAPAB_FMS 11
-#define WLAN_EXT_CAPAB_PROXY_ARP 12
-#define WLAN_EXT_CAPAB_COLL_INTERF_REP 13
-#define WLAN_EXT_CAPAB_CIVIC_LOCATION 14
-#define WLAN_EXT_CAPAB_GEOSPATIAL_LOCATION 15
-#define WLAN_EXT_CAPAB_TFS 16
-#define WLAN_EXT_CAPAB_WNM_SLEEP_MODE 17
-#define WLAN_EXT_CAPAB_TIM_BROADCAST 18
-#define WLAN_EXT_CAPAB_BSS_TRANSITION 19
-#define WLAN_EXT_CAPAB_QOS_TRAFFIC 20
-#define WLAN_EXT_CAPAB_AC_STA_COUNT 21
-#define WLAN_EXT_CAPAB_MULTIPLE_BSSID 22
-#define WLAN_EXT_CAPAB_TIMING_MEASUREMENT 23
-#define WLAN_EXT_CAPAB_CHANNEL_USAGE 24
-#define WLAN_EXT_CAPAB_SSID_LIST 25
-#define WLAN_EXT_CAPAB_DMS 26
-#define WLAN_EXT_CAPAB_UTF_TSF_OFFSET 27
-#define WLAN_EXT_CAPAB_TPU_BUFFER_STA 28
-#define WLAN_EXT_CAPAB_TDLS_PEER_PSM 29
-#define WLAN_EXT_CAPAB_TDLS_CHANNEL_SWITCH 30
-#define WLAN_EXT_CAPAB_INTERWORKING 31
-#define WLAN_EXT_CAPAB_QOS_MAP 32
-#define WLAN_EXT_CAPAB_EBR 33
-#define WLAN_EXT_CAPAB_SSPN_INTERFACE 34
-/* 35 - Reserved */
-#define WLAN_EXT_CAPAB_MSGCF 36
-#define WLAN_EXT_CAPAB_TDLS 37
-#define WLAN_EXT_CAPAB_TDLS_PROHIBITED 38
-#define WLAN_EXT_CAPAB_TDLS_CHANNEL_SWITCH_PROHIBITED 39
-#define WLAN_EXT_CAPAB_REJECT_UNADMITTED_FRAME 40
-#define WLAN_EXT_CAPAB_
-/* 41-43 - Service Interval Granularity */
-#define WLAN_EXT_CAPAB_IDENTIFIER_LOCATION 44
-#define WLAN_EXT_CAPAB_U_APSD_COEX 45
-#define WLAN_EXT_CAPAB_WNM_NOTIFCATION 46
-#define WLAN_EXT_CAPAB_QAB 47
-#define WLAN_EXT_CAPAB_UTF_8_SSID 48
-#define WLAN_EXT_CAPAB_QMF 49
-#define WLAN_EXT_CAPAB_QMF_RECONFIG 50
-#define WLAN_EXT_CAPAB_ROBUST_AV_STREAMING 51
-#define WLAN_EXT_CAPAB_ADVANCED_GCR 52
-#define WLAN_EXT_CAPAB_MESH_GCR 53
-#define WLAN_EXT_CAPAB_SCS 54
-#define WLAN_EXT_CAPAB_QLOAD_REPORT 55
-#define WLAN_EXT_CAPAB_ALT_EDCA 56
-#define WLAN_EXT_CAPAB_UNPROT_TXOP_NEG 57
-#define WLAN_EXT_CAPAB_PROT_TXOP_NEG 58
-/* 59 - Reserved */
-#define WLAN_EXT_CAPAB_PROT_QLOAD_REPORT 60
-#define WLAN_EXT_CAPAB_TDLS_WIDER_BW 61
-#define WLAN_EXT_CAPAB_OPMODE_NOTIF 62
-#define WLAN_EXT_CAPAB_
-/* 63-64 - Max Number of MSDUs In A-MSDU */
-#define WLAN_EXT_CAPAB_CHANNEL_SCHEDULE_MGMT 65
-#define WLAN_EXT_CAPAB_GEODB_INBAND_ENABLING_SIGNAL 66
-#define WLAN_EXT_CAPAB_NETWORK_CHANNEL_CTRL 67
-#define WLAN_EXT_CAPAB_WHITE_SPACE_MAP 68
-#define WLAN_EXT_CAPAB_CHANNEL_AVAIL_QUERY 69
-#define WLAN_EXT_CAPAB_FTM_RESPONDER 70
-#define WLAN_EXT_CAPAB_FTM_INITIATOR 71
-#define WLAN_EXT_CAPAB_FILS 72
-#define WLAN_EXT_CAPAB_EXT_SPECTRUM_MGMT 73
-#define WLAN_EXT_CAPAB_FUTURE_CHANNEL_GUIDANCE 74
-#define WLAN_EXT_CAPAB_PAD 75
-/* 76-79 - Reserved */
-#define WLAN_EXT_CAPAB_COMPLETE_NON_TX_BSSID_PROFILE 80
-#define WLAN_EXT_CAPAB_SAE_PW_ID 81
-#define WLAN_EXT_CAPAB_SAE_PW_ID_EXCLUSIVELY 82
/* Action frame categories (IEEE Std 802.11-2016, 9.4.1.11, Table 9-76) */
#define WLAN_ACTION_SPECTRUM_MGMT 0
@@ -947,12 +865,10 @@
struct {
u8 action;
u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN];
- u8 variable[]; /* OCI element */
} STRUCT_PACKED sa_query_req;
struct {
u8 action; /* */
u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN];
- u8 variable[]; /* OCI element */
} STRUCT_PACKED sa_query_resp;
struct {
u8 action;
@@ -1294,13 +1210,6 @@
#define MBO_OUI_TYPE 22
#define OWE_IE_VENDOR_TYPE 0x506f9a1c
#define OWE_OUI_TYPE 28
-#define MULTI_AP_OUI_TYPE 0x1B
-
-#define MULTI_AP_SUB_ELEM_TYPE 0x06
-#define MULTI_AP_TEAR_DOWN BIT(4)
-#define MULTI_AP_FRONTHAUL_BSS BIT(5)
-#define MULTI_AP_BACKHAUL_BSS BIT(6)
-#define MULTI_AP_BACKHAUL_STA BIT(7)
#define WMM_OUI_TYPE 2
#define WMM_OUI_SUBTYPE_INFORMATION_ELEMENT 0
@@ -1438,15 +1347,13 @@
#define HS20_PPS_MO_ID_PRESENT 0x02
#define HS20_ANQP_DOMAIN_ID_PRESENT 0x04
#ifndef HS20_VERSION
-#define HS20_VERSION 0x20 /* Release 3 */
+#define HS20_VERSION 0x10 /* Release 2 */
#endif /* HS20_VERSION */
/* WNM-Notification WFA vendors specific subtypes */
#define HS20_WNM_SUB_REM_NEEDED 0
#define HS20_WNM_DEAUTH_IMMINENT_NOTICE 1
-#define WFA_WNM_NOTIF_SUBELEM_NON_PREF_CHAN_REPORT 2
-#define WFA_WNM_NOTIF_SUBELEM_CELL_DATA_CAPA 3
-#define HS20_WNM_T_C_ACCEPTANCE 4
+#define HS20_WNM_T_C_ACCEPTANCE 2
#define HS20_DEAUTH_REASON_CODE_BSS 0
#define HS20_DEAUTH_REASON_CODE_ESS 1
@@ -1535,6 +1442,12 @@
MBO_TRANSITION_REJECT_REASON_SERVICES = 6,
};
+/* MBO v0.0_r19, 4.4: WNM-Notification vendor subelements */
+enum wfa_wnm_notif_subelem_id {
+ WFA_WNM_NOTIF_SUBELEM_NON_PREF_CHAN_REPORT = 2,
+ WFA_WNM_NOTIF_SUBELEM_CELL_DATA_CAPA = 3,
+};
+
/* MBO v0.0_r27, 4.3: MBO ANQP-elements */
#define MBO_ANQP_OUI_TYPE 0x12
#define MBO_ANQP_SUBTYPE_QUERY_LIST 1
@@ -1928,14 +1841,11 @@
};
/* IEEE Std 802.11-2016, Table 9-88 - Beacon Request subelement IDs */
-/* IEEE P802.11-REVmd/D2.0, Table 9-106 - Optional subelement IDs for
- * Beacon request */
#define WLAN_BEACON_REQUEST_SUBELEM_SSID 0
#define WLAN_BEACON_REQUEST_SUBELEM_INFO 1 /* Beacon Reporting */
#define WLAN_BEACON_REQUEST_SUBELEM_DETAIL 2 /* Reporting Detail */
#define WLAN_BEACON_REQUEST_SUBELEM_REQUEST 10
#define WLAN_BEACON_REQUEST_SUBELEM_AP_CHANNEL 51 /* AP Channel Report */
-#define WLAN_BEACON_REQUEST_SUBELEM_LAST_INDICATION 164
#define WLAN_BEACON_REQUEST_SUBELEM_VENDOR 221
/*
@@ -1985,21 +1895,9 @@
} STRUCT_PACKED;
/* IEEE Std 802.11-2016, Table 9-112 - Beacon report Subelement IDs */
-/* IEEE P802.11-REVmd/D2.0, Table 9-130 - Optional subelement IDs for
- * Beacon report */
#define WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY 1
-#define WLAN_BEACON_REPORT_SUBELEM_FRAME_BODY_FRAGMENT_ID 2
-#define WLAN_BEACON_REPORT_SUBELEM_LAST_INDICATION 164
#define WLAN_BEACON_REPORT_SUBELEM_VENDOR 221
-/* IEEE P802.11-REVmd/D2.0, Table 9-232 - Data field format of the
- * Reported Frame Body Fragment ID subelement */
-#define REPORTED_FRAME_BODY_SUBELEM_LEN 4
-#define REPORTED_FRAME_BODY_MORE_FRAGMENTS BIT(7)
-
-/* IEEE P802.11-REVmd/D2.0, 9.4.2.21.7 - Beacon report */
-#define BEACON_REPORT_LAST_INDICATION_SUBELEM_LEN 3
-
/* IEEE Std 802.11ad-2012 - Multi-band element */
struct multi_band_ie {
u8 eid; /* WLAN_EID_MULTI_BAND */
@@ -2102,15 +2000,14 @@
};
struct ieee80211_he_capabilities {
- u8 he_mac_capab_info[6];
- u8 he_phy_capab_info[11];
+ u8 he_mac_capab_info[5];
+ u8 he_phy_capab_info[9];
u8 he_txrx_mcs_support[12]; /* TODO: 4, 8, or 12 octets */
/* PPE Thresholds (optional) */
} STRUCT_PACKED;
struct ieee80211_he_operation {
- u32 he_oper_params; /* HE Operation Parameters[3] and
- * BSS Color Information[1] */
+ u32 he_oper_params;
u8 he_mcs_nss_set[2];
u8 vht_op_info_chwidth;
u8 vht_op_info_chan_center_freq_seg0_idx;
@@ -2127,55 +2024,28 @@
#define HE_PHYCAP_MU_BEAMFORMER_CAPAB ((u8) BIT(1))
/* HE Operation defines */
-/* HE Operation Parameters and BSS Color Information fields */
#define HE_OPERATION_BSS_COLOR_MASK ((u32) (BIT(0) | BIT(1) | \
BIT(2) | BIT(3) | \
BIT(4) | BIT(5)))
-#define HE_OPERATION_PARTIAL_BSS_COLOR ((u32) BIT(6))
-#define HE_OPERATION_BSS_COLOR_DISABLED ((u32) BIT(7))
-#define HE_OPERATION_DFLT_PE_DURATION_MASK ((u32) (BIT(8) | BIT(9) | \
- BIT(10)))
-#define HE_OPERATION_DFLT_PE_DURATION_OFFSET 8
-#define HE_OPERATION_TWT_REQUIRED ((u32) BIT(11))
-#define HE_OPERATION_RTS_THRESHOLD_MASK ((u32) (BIT(12) | BIT(13) | \
+#define HE_OPERATION_DFLT_PE_DURATION_MASK ((u32) (BIT(6) | BIT(7) | \
+ BIT(8)))
+#define HE_OPERATION_DFLT_PE_DURATION_OFFSET 6
+#define HE_OPERATION_TWT_REQUIRED ((u32) BIT(9))
+#define HE_OPERATION_RTS_THRESHOLD_MASK ((u32) (BIT(10) | BIT(11) | \
+ BIT(12) | BIT(13) | \
BIT(14) | BIT(15) | \
BIT(16) | BIT(17) | \
- BIT(18) | BIT(19) | \
- BIT(20) | BIT(21)))
-#define HE_OPERATION_RTS_THRESHOLD_OFFSET 12
-
-struct ieee80211_he_mu_edca_parameter_set {
- u8 he_qos_info;
- u8 he_mu_ac_be_param[3];
- u8 he_mu_ac_bk_param[3];
- u8 he_mu_ac_vi_param[3];
- u8 he_mu_ac_vo_param[3];
-} STRUCT_PACKED;
-
-/* HE MU AC parameter record field format */
-/* ACI/AIFSN */
-#define HE_MU_AC_PARAM_ACI_IDX 0
-#define HE_MU_AC_PARAM_AIFSN ((u8) (BIT(0) | BIT(1) | BIT(2) | BIT(3)))
-#define HE_MU_AC_PARAM_ACM ((u8) BIT(4))
-#define HE_MU_AC_PARAM_ACI ((u8) (BIT(5) | BIT(6)))
-/* B7: Reserved */
-
-/* ECWmin/ECWmax */
-#define HE_MU_AC_PARAM_ECW_IDX 1
-#define HE_MU_AC_PARAM_ECWMIN ((u8) (BIT(0) | BIT(1) | BIT(2) | BIT(3)))
-#define HE_MU_AC_PARAM_ECWMAX ((u8) (BIT(4) | BIT(5) | BIT(6) | BIT(7)))
-
-/* MU EDCA Timer */
-#define HE_MU_AC_PARAM_TIMER_IDX 2
-
-/* HE QoS Info field */
-#define HE_QOS_INFO_EDCA_PARAM_SET_COUNT ((u8) (BIT(0) | BIT(1) | \
- BIT(2) | BIT(3)))
-#define HE_QOS_INFO_Q_ACK ((u8) (BIT(4)))
-#define HE_QOS_INFO_QUEUE_REQUEST ((u8) (BIT(5)))
-#define HE_QOS_INFO_TXOP_REQUEST ((u8) (BIT(6)))
-/* B7: Reserved if sent by an AP; More Data Ack if sent by a non-AP STA */
-#define HE_QOS_INFO_MORE_DATA_ACK ((u8) (BIT(7)))
+ BIT(18) | BIT(19)))
+#define HE_OPERATION_RTS_THRESHOLD_OFFSET 10
+#define HE_OPERATION_PARTIAL_BSS_COLOR ((u32) BIT(20))
+#define HE_OPERATION_MAX_BSSID_INDICATOR_MASK ((u32) (BIT(21) | BIT(22) | \
+ BIT(23) | BIT(24) | \
+ BIT(25) | BIT(26) | \
+ BIT(27) | BIT(28)))
+#define HE_OPERATION_MAX_BSSID_INDICATOR_OFFSET 21
+#define HE_OPERATION_TX_BSSID_INDICATOR ((u32) BIT(29))
+#define HE_OPERATION_BSS_COLOR_DISABLED ((u32) BIT(30))
+#define HE_OPERATION_BSS_DUAL_BEACON ((u32) BIT(31))
/* DPP Public Action frame identifiers - OUI_WFA */
#define DPP_OUI_TYPE 0x1A
diff --git a/src/common/linux_bridge.h b/src/common/linux_bridge.h
index 84386e6..7b76846 100644
--- a/src/common/linux_bridge.h
+++ b/src/common/linux_bridge.h
@@ -9,21 +9,6 @@
#ifndef LINUX_BRIDGE_H
#define LINUX_BRIDGE_H
-/* This ioctl is defined in linux/sockios.h */
-
-#ifndef SIOCBRADDBR
-#define SIOCBRADDBR 0x89a0
-#endif
-#ifndef SIOCBRDELBR
-#define SIOCBRDELBR 0x89a1
-#endif
-#ifndef SIOCBRADDIF
-#define SIOCBRADDIF 0x89a2
-#endif
-#ifndef SIOCBRDELIF
-#define SIOCBRDELIF 0x89a3
-#endif
-
/* This interface is defined in linux/if_bridge.h */
#define BRCTL_GET_VERSION 0
diff --git a/src/common/ocv.c b/src/common/ocv.c
deleted file mode 100644
index 06badfb..0000000
--- a/src/common/ocv.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Operating Channel Validation (OCV)
- * Copyright (c) 2018, Mathy Vanhoef
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
-
-#include "utils/includes.h"
-#include "utils/common.h"
-#include "drivers/driver.h"
-#include "common/ieee802_11_common.h"
-#include "ocv.h"
-
-/**
- * Caller of OCV functionality may use various debug output functions, so store
- * the error here and let the caller use an appropriate debug output function.
- */
-char ocv_errorstr[256];
-
-
-int ocv_derive_all_parameters(struct oci_info *oci)
-{
- const struct oper_class_map *op_class_map;
-
- oci->freq = ieee80211_chan_to_freq(NULL, oci->op_class, oci->channel);
- if (oci->freq < 0) {
- wpa_printf(MSG_INFO,
- "Error interpreting OCI: unrecognized opclass/channel pair (%d/%d)",
- oci->op_class, oci->channel);
- return -1;
- }
-
- op_class_map = get_oper_class(NULL, oci->op_class);
- if (!op_class_map) {
- wpa_printf(MSG_INFO,
- "Error interpreting OCI: Unrecognized opclass (%d)",
- oci->op_class);
- return -1;
- }
-
- oci->chanwidth = oper_class_bw_to_int(op_class_map);
- oci->sec_channel = 0;
- if (op_class_map->bw == BW40PLUS)
- oci->sec_channel = 1;
- else if (op_class_map->bw == BW40MINUS)
- oci->sec_channel = -1;
-
- return 0;
-}
-
-
-int ocv_insert_oci(struct wpa_channel_info *ci, u8 **argpos)
-{
- u8 op_class, channel;
- u8 *pos = *argpos;
-
- if (ieee80211_chaninfo_to_channel(ci->frequency, ci->chanwidth,
- ci->sec_channel,
- &op_class, &channel) < 0) {
- wpa_printf(MSG_WARNING,
- "Cannot determine operating class and channel for OCI element");
- return -1;
- }
-
- *pos++ = op_class;
- *pos++ = channel;
- *pos++ = ci->seg1_idx;
-
- *argpos = pos;
- return 0;
-}
-
-
-int ocv_insert_oci_kde(struct wpa_channel_info *ci, u8 **argpos)
-{
- u8 *pos = *argpos;
-
- *pos++ = WLAN_EID_VENDOR_SPECIFIC;
- *pos++ = RSN_SELECTOR_LEN + 3;
- RSN_SELECTOR_PUT(pos, RSN_KEY_DATA_OCI);
- pos += RSN_SELECTOR_LEN;
-
- *argpos = pos;
- return ocv_insert_oci(ci, argpos);
-}
-
-
-int ocv_insert_extended_oci(struct wpa_channel_info *ci, u8 *pos)
-{
- *pos++ = WLAN_EID_EXTENSION;
- *pos++ = 1 + OCV_OCI_LEN;
- *pos++ = WLAN_EID_EXT_OCV_OCI;
- return ocv_insert_oci(ci, &pos);
-}
-
-
-int ocv_verify_tx_params(const u8 *oci_ie, size_t oci_ie_len,
- struct wpa_channel_info *ci, int tx_chanwidth,
- int tx_seg1_idx)
-{
- struct oci_info oci;
-
- if (!oci_ie) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: did not receive mandatory OCI");
- return -1;
- }
-
- if (oci_ie_len != 3) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: received OCI of unexpected length (%d)",
- (int) oci_ie_len);
- return -1;
- }
-
- os_memset(&oci, 0, sizeof(oci));
- oci.op_class = oci_ie[0];
- oci.channel = oci_ie[1];
- oci.seg1_idx = oci_ie[2];
- if (ocv_derive_all_parameters(&oci) != 0) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: unable to interpret received OCI");
- return -1;
- }
-
- /* Primary frequency used to send frames to STA must match the STA's */
- if ((int) ci->frequency != oci.freq) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: primary channel mismatch in received OCI (we use %d but receiver is using %d)",
- ci->frequency, oci.freq);
- return -1;
- }
-
- /* We shouldn't transmit with a higher bandwidth than the STA supports
- */
- if (tx_chanwidth > oci.chanwidth) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: channel bandwidth mismatch in received OCI (we use %d but receiver only supports %d)",
- tx_chanwidth, oci.chanwidth);
- return -1;
- }
-
- /*
- * Secondary channel only needs be checked for 40 MHz in the 2.4 GHz
- * band. In the 5 GHz band it's verified through the primary frequency.
- * Note that the field ci->sec_channel is only filled in when we use
- * 40 MHz.
- */
- if (tx_chanwidth == 40 && ci->frequency < 2500 &&
- ci->sec_channel != oci.sec_channel) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: secondary channel mismatch in received OCI (we use %d but receiver is using %d)",
- ci->sec_channel, oci.sec_channel);
- return -1;
- }
-
- /*
- * When using a 160 or 80+80 MHz channel to transmit, verify that we use
- * the same segments as the receiver by comparing frequency segment 1.
- */
- if ((ci->chanwidth == CHAN_WIDTH_160 ||
- ci->chanwidth == CHAN_WIDTH_80P80) &&
- tx_seg1_idx != oci.seg1_idx) {
- os_snprintf(ocv_errorstr, sizeof(ocv_errorstr),
- "OCV failed: frequency segment 1 mismatch in received OCI (we use %d but receiver is using %d)",
- tx_seg1_idx, oci.seg1_idx);
- return -1;
- }
-
- return 0;
-}
diff --git a/src/common/ocv.h b/src/common/ocv.h
deleted file mode 100644
index 6379d9d..0000000
--- a/src/common/ocv.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Operating Channel Validation (OCV)
- * Copyright (c) 2018, Mathy Vanhoef
- *
- * This software may be distributed under the terms of the BSD license.
- * See README for more details.
- */
-
-#ifndef OCV_H
-#define OCV_H
-
-struct wpa_channel_info;
-
-struct oci_info {
- /* Values in the OCI element */
- u8 op_class;
- u8 channel;
- u8 seg1_idx;
-
- /* Derived values for easier verification */
- int freq;
- int sec_channel;
- int chanwidth;
-};
-
-#define OCV_OCI_LEN 3
-#define OCV_OCI_EXTENDED_LEN (3 + OCV_OCI_LEN)
-#define OCV_OCI_KDE_LEN (2 + RSN_SELECTOR_LEN + OCV_OCI_LEN)
-
-extern char ocv_errorstr[256];
-
-int ocv_derive_all_parameters(struct oci_info *oci);
-int ocv_insert_oci(struct wpa_channel_info *ci, u8 **argpos);
-int ocv_insert_oci_kde(struct wpa_channel_info *ci, u8 **argpos);
-int ocv_insert_extended_oci(struct wpa_channel_info *ci, u8 *pos);
-int ocv_verify_tx_params(const u8 *oci_ie, size_t oci_ie_len,
- struct wpa_channel_info *ci, int tx_chanwidth,
- int tx_seg1_idx);
-
-#endif /* OCV_H */
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h
index 6f5b87e..7a4da46 100644
--- a/src/common/qca-vendor.h
+++ b/src/common/qca-vendor.h
@@ -42,12 +42,8 @@
*
* @QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY: Recommendation of frequency
* ranges to avoid to reduce issues due to interference or internal
- * co-existence information in the driver. These frequencies aim to
- * minimize the traffic but not to totally avoid the traffic. That said
- * for a P2P use case, these frequencies are allowed for the P2P
- * discovery/negotiation but avoid the group to get formed on these
- * frequencies. The event data structure is defined in
- * struct qca_avoid_freq_list.
+ * co-existence information in the driver. The event data structure is
+ * defined in struct qca_avoid_freq_list.
*
* @QCA_NL80211_VENDOR_SUBCMD_DFS_CAPABILITY: Command to check driver support
* for DFS offloading.
@@ -162,11 +158,6 @@
* timer value. Uses the attributes defines in
* enum qca_wlan_vendor_attr_ocb_get_tsf_resp.
*
- * @QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES: Command/event to update the
- * link properties of the respective interface. As an event, is used
- * to notify the connected station's status. The attributes for this
- * command are defined in enum qca_wlan_vendor_attr_link_properties.
- *
* @QCA_NL80211_VENDOR_SUBCMD_P2P_LISTEN_OFFLOAD_START: Command used to
* start the P2P Listen offload function in device and pass the listen
* channel, period, interval, count, device types, and vendor specific
@@ -483,30 +474,6 @@
* configure parameters per peer to capture Channel Frequency Response
* (CFR) and enable Periodic CFR capture. The attributes for this command
* are defined in enum qca_wlan_vendor_peer_cfr_capture_attr.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_THROUGHPUT_CHANGE_EVENT: Event to indicate changes
- * in throughput dynamically. The driver estimates the throughput based on
- * number of packets being transmitted/received per second and indicates
- * the changes in throughput to user space. Userspace tools can use this
- * information to configure kernel's TCP parameters in order to achieve
- * peak throughput. Optionally, the driver will also send guidance on
- * modifications to kernel's TCP parameters which can be referred by
- * userspace tools. The attributes used with this event are defined in enum
- * qca_wlan_vendor_attr_throughput_change.
- *
- * @QCA_NL80211_VENDOR_SUBCMD_COEX_CONFIG: This command is used to set
- * priorities among different types of traffic during coex scenarios.
- * Current supported prioritization is among WLAN/BT/ZIGBEE with different
- * profiles mentioned in enum qca_coex_config_profiles. The associated
- * attributes used with this command are defined in enum
- * qca_vendor_attr_coex_config.
- *
- * Based on the config provided, FW will boost the weight and prioritize
- * the traffic for that subsystem (WLAN/BT/Zigbee).
- *
- * @QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_AKMS: This command is used to query
- * the supported AKM suite selectorss from the driver. It returns the list
- * of supported AKMs in the attribute NL80211_ATTR_AKM_SUITES.
*/
enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
@@ -669,9 +636,6 @@
QCA_NL80211_VENDOR_SUBCMD_NAN_EXT = 171,
QCA_NL80211_VENDOR_SUBCMD_ROAM_SCAN_EVENT = 172,
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG = 173,
- QCA_NL80211_VENDOR_SUBCMD_THROUGHPUT_CHANGE_EVENT = 174,
- QCA_NL80211_VENDOR_SUBCMD_COEX_CONFIG = 175,
- QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_AKMS = 176,
};
enum qca_wlan_vendor_attr {
@@ -852,12 +816,6 @@
* to report the corresponding antenna index to the chain RSSI value
*/
QCA_WLAN_VENDOR_ATTR_ANTENNA_INFO = 40,
- /* Used in QCA_NL80211_VENDOR_SUBCMD_GET_CHAIN_RSSI command to report
- * the specific antenna EVM value (unsigned 32 bit value). With a
- * determinate group of antennas, the driver specifies the EVM value
- * for each antenna ID, and application extract them in user space.
- */
- QCA_WLAN_VENDOR_ATTR_CHAIN_EVM = 41,
/* keep last */
QCA_WLAN_VENDOR_ATTR_AFTER_LAST,
@@ -4448,27 +4406,6 @@
* qca_wlan_vendor_spectral_scan_cap_hw_gen.
*/
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_HW_GEN = 5,
- /* Spectral bin scaling formula ID. u16 attribute.
- * It uses values defined in enum
- * qca_wlan_vendor_spectral_scan_cap_formula_id.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_FORMULA_ID = 6,
- /* Spectral bin scaling param - low level offset.
- * s16 attribute.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_LOW_LEVEL_OFFSET = 7,
- /* Spectral bin scaling param - high level offset.
- * s16 attribute.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_HIGH_LEVEL_OFFSET = 8,
- /* Spectral bin scaling param - RSSI threshold.
- * s16 attribute.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_RSSI_THR = 9,
- /* Spectral bin scaling param - default AGC max gain.
- * u8 attribute.
- */
- QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_DEFAULT_AGC_MAX_GAIN = 10,
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_MAX =
@@ -4614,20 +4551,6 @@
};
/**
- * qca_wlan_vendor_spectral_scan_cap_formula_id: Attribute values for
- * QCA_WLAN_VENDOR_ATTR_SPECTRAL_SCAN_CAP_FORMULA_ID in the vendor subcmd
- * QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_GET_CAP_INFO. This represents the
- * Spectral bin scaling formula ID.
- * @QCA_WLAN_VENDOR_SPECTRAL_SCAN_CAP_NO_SCALING: No scaling
- * @QCA_WLAN_VENDOR_SPECTRAL_SCAN_CAP_AGC_GAIN_RSSI_CORR_BASED: AGC gain
- * and RSSI threshold based formula.
- */
-enum qca_wlan_vendor_spectral_scan_cap_formula_id {
- QCA_WLAN_VENDOR_SPECTRAL_SCAN_CAP_NO_SCALING = 0,
- QCA_WLAN_VENDOR_SPECTRAL_SCAN_CAP_AGC_GAIN_RSSI_CORR_BASED = 1,
-};
-
-/**
* enum qca_wlan_vendor_attr_rropavail_info - Specifies whether Representative
* RF Operating Parameter (RROP) information is available, and if so, at which
* point in the application-driver interaction sequence it can be retrieved by
@@ -5490,60 +5413,6 @@
QCA_WLAN_HE_16US_OF_PROCESS_TIME = 2,
};
-/**
- * enum qca_wlan_he_om_ctrl_ch_bw - HE OM control field BW configuration
- *
- * Indicates the HE Operating mode control channel width setting value.
- *
- * @QCA_WLAN_HE_OM_CTRL_BW_20M: Primary 20 MHz
- * @QCA_WLAN_HE_OM_CTRL_BW_40M: Primary 40 MHz
- * @QCA_WLAN_HE_OM_CTRL_BW_80M: Primary 80 MHz
- * @QCA_WLAN_HE_OM_CTRL_BW_160M: 160 MHz and 80+80 MHz
- */
-enum qca_wlan_he_om_ctrl_ch_bw {
- QCA_WLAN_HE_OM_CTRL_BW_20M = 0,
- QCA_WLAN_HE_OM_CTRL_BW_40M = 1,
- QCA_WLAN_HE_OM_CTRL_BW_80M = 2,
- QCA_WLAN_HE_OM_CTRL_BW_160M = 3,
-};
-
-/**
- * enum qca_wlan_vendor_attr_he_omi_tx: Represents attributes for
- * HE operating mode control transmit request. These attributes are
- * sent as part of QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OMI_TX and
- * QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION.
- *
- * @QCA_WLAN_VENDOR_ATTR_HE_OMI_RX_NSS: Mandatory 8-bit unsigned value
- * indicates the maximum number of spatial streams, NSS, that the STA
- * supports in reception for PPDU bandwidths less than or equal to 80 MHz
- * and is set to NSS - 1.
- *
- * @QCA_WLAN_VENDOR_ATTR_HE_OMI_CH_BW: Mandatory 8-bit unsigned value
- * indicates the operating channel width supported by the STA for both
- * reception and transmission. Uses enum qca_wlan_he_om_ctrl_ch_bw values.
- *
- * @QCA_WLAN_VENDOR_ATTR_HE_OMI_ULMU_DISABLE: Mandatory 8-bit unsigned value
- * indicates the all trigger based UL MU operations by the STA.
- * 0 - UL MU operations are enabled by the STA.
- * 1 - All triggered UL MU transmissions are suspended by the STA.
- *
- * @QCA_WLAN_VENDOR_ATTR_HE_OMI_TX_NSTS: Mandatory 8-bit unsigned value
- * indicates the maximum number of space-time streams, NSTS, that
- * the STA supports in transmission and is set to NSTS - 1.
- */
-enum qca_wlan_vendor_attr_he_omi_tx {
- QCA_WLAN_VENDOR_ATTR_HE_OMI_INVALID = 0,
- QCA_WLAN_VENDOR_ATTR_HE_OMI_RX_NSS = 1,
- QCA_WLAN_VENDOR_ATTR_HE_OMI_CH_BW = 2,
- QCA_WLAN_VENDOR_ATTR_HE_OMI_ULMU_DISABLE = 3,
- QCA_WLAN_VENDOR_ATTR_HE_OMI_TX_NSTS = 4,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_HE_OMI_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_HE_OMI_MAX =
- QCA_WLAN_VENDOR_ATTR_HE_OMI_AFTER_LAST - 1,
-};
-
/* Attributes for data used by
* QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION
*/
@@ -5735,79 +5604,6 @@
*/
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_TWT_RESUME = 26,
- /* 8-bit unsigned value to set the HE operating mode control
- * (OM CTRL) Channel Width subfield.
- * The Channel Width subfield indicates the operating channel width
- * supported by the STA for both reception and transmission.
- * Uses the enum qca_wlan_he_om_ctrl_ch_bw values.
- * This setting is cleared with the
- * QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_CLEAR_HE_OM_CTRL_CONFIG
- * flag attribute to reset defaults.
- * This attribute is used to configure the testbed device.
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OM_CTRL_BW = 27,
-
- /* 8-bit unsigned value to configure the number of spatial
- * streams in HE operating mode control field.
- * This setting is cleared with the
- * QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_CLEAR_HE_OM_CTRL_CONFIG
- * flag attribute to reset defaults.
- * This attribute is used to configure the testbed device.
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OM_CTRL_NSS = 28,
-
- /* Flag attribute to configure the UL MU disable bit in
- * HE operating mode control field.
- * This setting is cleared with the
- * QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_CLEAR_HE_OM_CTRL_CONFIG
- * flag attribute to reset defaults.
- * This attribute is used to configure the testbed device.
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OM_CTRL_UL_MU_DISABLE = 29,
-
- /* Flag attribute to clear the previously set HE operating mode
- * control field configuration.
- * This attribute is used to configure the testbed device to reset
- * defaults to clear any previously set HE operating mode control
- * field configuration.
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_CLEAR_HE_OM_CTRL_CONFIG = 30,
-
- /* 8-bit unsigned value to configure HE single user PPDU
- * transmission. By default this setting is disabled and it
- * is disabled in the reset defaults of the device configuration.
- * This attribute is used to configure the testbed device.
- * 1-enable, 0-disable
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_TX_SUPPDU = 31,
-
- /* 8-bit unsigned value to configure action frame transmission
- * in HE trigger based PPDU transmission.
- * By default this setting is disabled and it is disabled in
- * the reset defaults of the device configuration.
- * This attribute is used to configure the testbed device.
- * 1-enable, 0-disable
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_ACTION_TX_TB_PPDU = 32,
-
- /* Nested attribute to indicate HE operating mode control field
- * transmission. It contains operating mode control field Nss,
- * channel bandwidth, Tx Nsts and UL MU disable attributes.
- * These nested attributes are used to send HE operating mode control
- * with configured values.
- * Uses the enum qca_wlan_vendor_attr_he_omi_tx attributes.
- * This attribute is used to configure the testbed device.
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_OMI_TX = 33,
-
- /* 8-bit unsigned value to configure +HTC_HE support to indicate the
- * support for the reception of a frame that carries an HE variant
- * HT Control field.
- * This attribute is used to configure the testbed device.
- * 1-enable, 0-disable
- */
- QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_HE_HTC_HE_SUPP = 34,
-
/* keep last */
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_MAX =
@@ -6194,159 +5990,4 @@
QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST - 1,
};
-/**
- * enum qca_wlan_throughput_level - Current throughput level
- *
- * Indicates the current level of throughput calculated by the driver. The
- * driver may choose different thresholds to decide whether the throughput level
- * is low or medium or high based on variety of parameters like physical link
- * capacity of the current connection, the number of packets being dispatched
- * per second, etc. The throughput level events might not be consistent with the
- * actual current throughput value being observed.
- *
- * @QCA_WLAN_THROUGHPUT_LEVEL_LOW: Low level of throughput
- * @QCA_WLAN_THROUGHPUT_LEVEL_MEDIUM: Medium level of throughput
- * @QCA_WLAN_THROUGHPUT_LEVEL_HIGH: High level of throughput
- */
-enum qca_wlan_throughput_level {
- QCA_WLAN_THROUGHPUT_LEVEL_LOW = 0,
- QCA_WLAN_THROUGHPUT_LEVEL_MEDIUM = 1,
- QCA_WLAN_THROUGHPUT_LEVEL_HIGH = 2,
-};
-
-/**
- * enum qca_wlan_vendor_attr_throughput_change - Vendor subcmd attributes to
- * report throughput changes from the driver to user space. enum values are used
- * for netlink attributes sent with
- * %QCA_NL80211_VENDOR_SUBCMD_THROUGHPUT_CHANGE_EVENT sub command.
- */
-enum qca_wlan_vendor_attr_throughput_change {
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_INVALID = 0,
- /* Indicates the direction of throughput in which the change is being
- * reported. u8 attribute. Value is 0 for TX and 1 for RX.
- */
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_DIRECTION = 1,
- /* Indicates the newly observed throughput level. enum
- * qca_wlan_throughput_level describes the possible range of values.
- * u8 attribute.
- */
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_THROUGHPUT_LEVEL = 2,
- /* Indicates the driver's guidance on the new value to be set to
- * kernel's TCP parameter tcp_limit_output_bytes. u32 attribute. The
- * driver may optionally include this attribute.
- */
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_TCP_LIMIT_OUTPUT_BYTES = 3,
- /* Indicates the driver's guidance on the new value to be set to
- * kernel's TCP parameter tcp_adv_win_scale. s8 attribute. Possible
- * values are from -31 to 31. The driver may optionally include this
- * attribute.
- */
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_TCP_ADV_WIN_SCALE = 4,
- /* Indicates the driver's guidance on the new value to be set to
- * kernel's TCP parameter tcp_delack_seg. u32 attribute. The driver may
- * optionally include this attribute.
- */
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_TCP_DELACK_SEG = 5,
-
- /* keep last */
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_AFTER_LAST,
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_MAX =
- QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_coex_config_profiles - This enum defines different types of
- * traffic streams that can be prioritized one over the other during coex
- * scenarios.
- * The types defined in this enum are categorized in the below manner.
- * 0 - 31 values corresponds to WLAN
- * 32 - 63 values corresponds to BT
- * 64 - 95 values corresponds to Zigbee
- * @QCA_WIFI_STA_DISCOVERY: Prioritize discovery frames for WLAN STA
- * @QCA_WIFI_STA_CONNECTION: Prioritize connection frames for WLAN STA
- * @QCA_WIFI_STA_CLASS_3_MGMT: Prioritize class 3 mgmt frames for WLAN STA
- * @QCA_WIFI_STA_DATA : Prioritize data frames for WLAN STA
- * @QCA_WIFI_STA_ALL: Priritize all frames for WLAN STA
- * @QCA_WIFI_SAP_DISCOVERY: Prioritize discovery frames for WLAN SAP
- * @QCA_WIFI_SAP_CONNECTION: Prioritize connection frames for WLAN SAP
- * @QCA_WIFI_SAP_CLASS_3_MGMT: Prioritize class 3 mgmt frames for WLAN SAP
- * @QCA_WIFI_SAP_DATA: Prioritize data frames for WLAN SAP
- * @QCA_WIFI_SAP_ALL: Prioritize all frames for WLAN SAP
- * @QCA_BT_A2DP: Prioritize BT A2DP
- * @QCA_BT_BLE: Prioritize BT BLE
- * @QCA_BT_SCO: Prioritize BT SCO
- * @QCA_ZB_LOW: Prioritize Zigbee Low
- * @QCA_ZB_HIGH: Prioritize Zigbee High
- */
-enum qca_coex_config_profiles {
- /* 0 - 31 corresponds to WLAN */
- QCA_WIFI_STA_DISCOVERY = 0,
- QCA_WIFI_STA_CONNECTION = 1,
- QCA_WIFI_STA_CLASS_3_MGMT = 2,
- QCA_WIFI_STA_DATA = 3,
- QCA_WIFI_STA_ALL = 4,
- QCA_WIFI_SAP_DISCOVERY = 5,
- QCA_WIFI_SAP_CONNECTION = 6,
- QCA_WIFI_SAP_CLASS_3_MGMT = 7,
- QCA_WIFI_SAP_DATA = 8,
- QCA_WIFI_SAP_ALL = 9,
- /* 32 - 63 corresponds to BT */
- QCA_BT_A2DP = 32,
- QCA_BT_BLE = 33,
- QCA_BT_SCO = 34,
- /* 64 - 95 corresponds to Zigbee */
- QCA_ZB_LOW = 64,
- QCA_ZB_HIGH = 65
-};
-
-/**
- * enum qca_vendor_attr_coex_config - Specifies vendor coex config attributes
- *
- * @QCA_VENDOR_ATTR_COEX_CONFIG_PROFILES: This attribute contains variable
- * length array of 8-bit values from enum qca_coex_config_profiles.
- * FW will prioritize the profiles in the order given in the array encapsulated
- * in this attribute.
- * For example:
- * -----------------------------------------------------------------------
- * | 1 | 34 | 32 | 65 |
- * -----------------------------------------------------------------------
- * If the attribute contains the values defined in above array then it means
- * 1) Wifi STA connection has priority over BT_SCO, BT_A2DP and ZIGBEE HIGH.
- * 2) BT_SCO has priority over BT_A2DP.
- * 3) BT_A2DP has priority over ZIGBEE HIGH.
- * Profiles which are not listed in this array shall not be preferred over the
- * profiles which are listed in the array as a part of this attribute.
- */
-enum qca_vendor_attr_coex_config {
- QCA_VENDOR_ATTR_COEX_CONFIG_INVALID = 0,
- QCA_VENDOR_ATTR_COEX_CONFIG_PROFILES = 1,
-
- /* Keep last */
- QCA_VENDOR_ATTR_COEX_CONFIG_AFTER_LAST,
- QCA_VENDOR_ATTR_COEX_CONFIG_MAX =
- QCA_VENDOR_ATTR_COEX_CONFIG_AFTER_LAST - 1,
-};
-
-/**
- * enum qca_wlan_vendor_attr_link_properties - Represent the link properties.
- *
- * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_MAC_ADDR: MAC address of the peer
- * (STA/AP) for the connected link.
- * @QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_STA_FLAGS: Attribute containing a
- * &struct nl80211_sta_flag_update for the respective connected link. MAC
- * address of the peer represented by
- * QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_MAC_ADDR.
- */
-enum qca_wlan_vendor_attr_link_properties {
- QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_INVALID = 0,
- /* 1 - 3 are reserved */
- QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_MAC_ADDR = 4,
- QCA_WLAN_VENDOR_ATTR_LINK_PROPERTIES_STA_FLAGS = 5,
-
- /* Keep last */
- QCA_VENDOR_ATTR_LINK_PROPERTIES_AFTER_LAST,
- QCA_VENDOR_ATTR_LINK_PROPERTIES_MAX =
- QCA_VENDOR_ATTR_LINK_PROPERTIES_AFTER_LAST - 1,
-};
-
#endif /* QCA_VENDOR_H */
diff --git a/src/common/version.h b/src/common/version.h
index eb4f313..16c1004 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.8-devel" VERSION_STR_POSTFIX GIT_VERSION_STR_POSTFIX
+#define VERSION_STR "2.7-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 b47f632..14c5769 100644
--- a/src/common/wpa_common.c
+++ b/src/common/wpa_common.c
@@ -880,12 +880,6 @@
parse->igtk_len = len;
break;
#endif /* CONFIG_IEEE80211W */
-#ifdef CONFIG_OCV
- case FTIE_SUBELEM_OCI:
- parse->oci = pos;
- parse->oci_len = len;
- break;
-#endif /* CONFIG_OCV */
default:
wpa_printf(MSG_DEBUG, "FT: Unknown subelem id %u", id);
break;
@@ -1208,8 +1202,6 @@
pos = rsn_ie + 6;
left = rsn_ie_len - 6;
- data->group_cipher = WPA_CIPHER_GTK_NOT_USED;
- data->key_mgmt = WPA_KEY_MGMT_OSEN;
data->proto = WPA_PROTO_OSEN;
} else {
const struct rsn_ie_hdr *hdr;
diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
index 37b5834..6261744 100644
--- a/src/common/wpa_common.h
+++ b/src/common/wpa_common.h
@@ -110,7 +110,6 @@
#define RSN_KEY_DATA_KEYID RSN_SELECTOR(0x00, 0x0f, 0xac, 10)
#define RSN_KEY_DATA_MULTIBAND_GTK RSN_SELECTOR(0x00, 0x0f, 0xac, 11)
#define RSN_KEY_DATA_MULTIBAND_KEYID RSN_SELECTOR(0x00, 0x0f, 0xac, 12)
-#define RSN_KEY_DATA_OCI RSN_SELECTOR(0x00, 0x0f, 0xac, 13)
#define WFA_KEY_DATA_IP_ADDR_REQ RSN_SELECTOR(0x50, 0x6f, 0x9a, 4)
#define WFA_KEY_DATA_IP_ADDR_ALLOC RSN_SELECTOR(0x50, 0x6f, 0x9a, 5)
@@ -149,8 +148,7 @@
#define WPA_CAPABILITY_SPP_A_MSDU_REQUIRED BIT(11)
#define WPA_CAPABILITY_PBAC BIT(12)
#define WPA_CAPABILITY_EXT_KEY_ID_FOR_UNICAST BIT(13)
-#define WPA_CAPABILITY_OCVC BIT(14)
-/* B15: Reserved */
+/* B14-B15: Reserved */
/* IEEE 802.11r */
@@ -328,7 +326,6 @@
#define FTIE_SUBELEM_GTK 2
#define FTIE_SUBELEM_R0KH_ID 3
#define FTIE_SUBELEM_IGTK 4
-#define FTIE_SUBELEM_OCI 5
struct rsn_rdie {
u8 id;
@@ -454,10 +451,6 @@
size_t tie_len;
const u8 *igtk;
size_t igtk_len;
-#ifdef CONFIG_OCV
- const u8 *oci;
- size_t oci_len;
-#endif /* CONFIG_OCV */
const u8 *ric;
size_t ric_len;
int key_mgmt;
diff --git a/src/common/wpa_ctrl.c b/src/common/wpa_ctrl.c
index 8722b19..a0fe822 100644
--- a/src/common/wpa_ctrl.c
+++ b/src/common/wpa_ctrl.c
@@ -11,8 +11,6 @@
#ifdef CONFIG_CTRL_IFACE
#ifdef CONFIG_CTRL_IFACE_UNIX
-#include <sys/stat.h>
-#include <fcntl.h>
#include <sys/un.h>
#include <unistd.h>
#include <fcntl.h>
@@ -143,19 +141,6 @@
return NULL;
}
tries++;
-#ifdef ANDROID
- /* Set client socket file permissions so that bind() creates the client
- * socket with these permissions and there is no need to try to change
- * them with chmod() after bind() which would have potential issues with
- * race conditions. These permissions are needed to make sure the server
- * side (wpa_supplicant or hostapd) can reply to the control interface
- * messages.
- *
- * The lchown() calls below after bind() are also part of the needed
- * operations to allow the response to go through. Those are using the
- * no-deference-symlinks version to avoid races. */
- fchmod(ctrl->s, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
-#endif /* ANDROID */
if (bind(ctrl->s, (struct sockaddr *) &ctrl->local,
sizeof(ctrl->local)) < 0) {
if (errno == EADDRINUSE && tries < 2) {
@@ -174,6 +159,7 @@
}
#ifdef ANDROID
+ chmod(ctrl->local.sun_path, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
/* Set group even if we do not have privileges to change owner */
grp_wifi = getgrnam("wifi");
gid_wifi = grp_wifi ? grp_wifi->gr_gid : 0;
@@ -185,8 +171,8 @@
os_free(ctrl);
return NULL;
}
- lchown(ctrl->local.sun_path, -1, gid_wifi);
- lchown(ctrl->local.sun_path, uid_system, gid_wifi);
+ chown(ctrl->local.sun_path, -1, gid_wifi);
+ chown(ctrl->local.sun_path, uid_system, gid_wifi);
if (os_strncmp(ctrl_path, "@android:", 9) == 0) {
if (socket_local_client_connect(
@@ -572,8 +558,7 @@
res = recv(ctrl->s, reply, *reply_len, 0);
if (res < 0)
return res;
- if ((res > 0 && reply[0] == '<') ||
- (res > 6 && strncmp(reply, "IFNAME=", 7) == 0)) {
+ if (res > 0 && reply[0] == '<') {
/* This is an unsolicited message from
* wpa_supplicant, not the reply to the
* request. Use msg_cb to report this to the