qcacld-3.0: Optimize logs in connect req in HDD and CSR
Remove redundant logs and optimize the logs for connect in HDD and CSR. Change-Id: I2d2d63aaaff814d91018e95a30869b81c1349a80 CRs-Fixed: 2615902
这个提交包含在:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -895,7 +895,6 @@ action_oui_search(struct action_oui_psoc_priv *psoc_priv,
|
||||
qdf_mutex_acquire(&oui_priv->extension_lock);
|
||||
if (qdf_list_empty(extension_list)) {
|
||||
qdf_mutex_release(&oui_priv->extension_lock);
|
||||
action_oui_debug("OUI List Empty");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -911,44 +910,25 @@ action_oui_search(struct action_oui_psoc_priv *psoc_priv,
|
||||
* to other checks skipping the OUI and vendor data checks
|
||||
*/
|
||||
|
||||
if (!(extension->info_mask & ACTION_OUI_INFO_OUI)) {
|
||||
action_oui_debug("Wildcard OUI found");
|
||||
if (!(extension->info_mask & ACTION_OUI_INFO_OUI))
|
||||
wildcard_oui = true;
|
||||
}
|
||||
|
||||
oui_ptr = action_oui_get_oui_ptr(extension, attr);
|
||||
|
||||
if (!oui_ptr && !wildcard_oui) {
|
||||
action_oui_debug("No matching IE found for OUI");
|
||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE,
|
||||
QDF_TRACE_LEVEL_DEBUG,
|
||||
extension->oui,
|
||||
extension->oui_length);
|
||||
if (!oui_ptr && !wildcard_oui)
|
||||
goto next;
|
||||
}
|
||||
|
||||
action_oui_debug("IE found for OUI");
|
||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE,
|
||||
QDF_TRACE_LEVEL_DEBUG,
|
||||
extension->oui,
|
||||
extension->oui_length);
|
||||
|
||||
if (extension->data_length && !wildcard_oui &&
|
||||
!check_for_vendor_oui_data(extension, oui_ptr)) {
|
||||
action_oui_debug("Vendor IE Data mismatch");
|
||||
!check_for_vendor_oui_data(extension, oui_ptr))
|
||||
goto next;
|
||||
}
|
||||
|
||||
|
||||
if ((extension->info_mask & ACTION_OUI_INFO_MAC_ADDRESS) &&
|
||||
!check_for_vendor_ap_mac(extension, attr)) {
|
||||
action_oui_debug("Vendor IE MAC Mismatch");
|
||||
!check_for_vendor_ap_mac(extension, attr))
|
||||
goto next;
|
||||
}
|
||||
|
||||
if (!check_for_vendor_ap_capabilities(extension, attr)) {
|
||||
action_oui_debug("Vendor IE capabilties mismatch");
|
||||
if (!check_for_vendor_ap_capabilities(extension, attr))
|
||||
goto next;
|
||||
}
|
||||
|
||||
action_oui_debug("Vendor AP/STA found for OUI");
|
||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
|
||||
|
@@ -141,8 +141,6 @@ QDF_STATUS ucfg_action_oui_send(struct wlan_objmgr_psoc *psoc)
|
||||
QDF_STATUS status = QDF_STATUS_E_INVAL;
|
||||
uint32_t id;
|
||||
|
||||
ACTION_OUI_ENTER();
|
||||
|
||||
if (!psoc) {
|
||||
action_oui_err("psoc is NULL");
|
||||
goto exit;
|
||||
@@ -161,7 +159,7 @@ QDF_STATUS ucfg_action_oui_send(struct wlan_objmgr_psoc *psoc)
|
||||
}
|
||||
|
||||
exit:
|
||||
ACTION_OUI_EXIT();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
@@ -266,9 +266,12 @@ void hdd_conn_set_connection_state(struct hdd_adapter *adapter,
|
||||
uint32_t time_buffer_size;
|
||||
|
||||
/* save the new connection state */
|
||||
hdd_debug("Changed conn state from old:%d to new:%d for dev %s",
|
||||
if (conn_state == hdd_sta_ctx->conn_info.conn_state)
|
||||
return;
|
||||
|
||||
hdd_nofl_debug("connection state changed %d --> %d for dev %s (vdev %d)",
|
||||
hdd_sta_ctx->conn_info.conn_state, conn_state,
|
||||
adapter->dev->name);
|
||||
adapter->dev->name, adapter->vdev_id);
|
||||
|
||||
hdd_tsf_notify_wlan_state_change(adapter,
|
||||
hdd_sta_ctx->conn_info.conn_state,
|
||||
@@ -5078,7 +5081,7 @@ enum csr_akm_type hdd_translate_rsn_to_csr_auth_type(uint8_t auth_suite[4])
|
||||
hdd_translate_fils_rsn_to_csr_auth(auth_suite, &auth_type);
|
||||
hdd_translate_sae_rsn_to_csr_auth(auth_suite, &auth_type);
|
||||
}
|
||||
hdd_debug("auth_type: %d", auth_type);
|
||||
|
||||
return auth_type;
|
||||
}
|
||||
|
||||
@@ -5105,7 +5108,7 @@ enum csr_akm_type hdd_translate_wpa_to_csr_auth_type(uint8_t auth_suite[4])
|
||||
{
|
||||
hdd_translate_fils_rsn_to_csr_auth(auth_suite, &auth_type);
|
||||
}
|
||||
hdd_debug("auth_type: %d", auth_type);
|
||||
|
||||
return auth_type;
|
||||
}
|
||||
|
||||
@@ -5138,7 +5141,6 @@ hdd_translate_rsn_to_csr_encryption_type(uint8_t cipher_suite[4])
|
||||
else
|
||||
cipher_type = eCSR_ENCRYPT_TYPE_FAILED;
|
||||
|
||||
hdd_debug("cipher_type: %d", cipher_type);
|
||||
return cipher_type;
|
||||
}
|
||||
|
||||
@@ -5167,7 +5169,6 @@ hdd_translate_wpa_to_csr_encryption_type(uint8_t cipher_suite[4])
|
||||
else
|
||||
cipher_type = eCSR_ENCRYPT_TYPE_FAILED;
|
||||
|
||||
hdd_debug("cipher_type: %d", cipher_type);
|
||||
return cipher_type;
|
||||
}
|
||||
|
||||
@@ -5251,13 +5252,7 @@ static int32_t hdd_process_genie(struct hdd_adapter *adapter,
|
||||
parse_status);
|
||||
return -EINVAL;
|
||||
}
|
||||
hdd_debug("gp_cipher_suite_present: %d",
|
||||
dot11_rsn_ie.gp_cipher_suite_present);
|
||||
/* Copy out the encryption and authentication types */
|
||||
hdd_debug("pairwise cipher suite count: %d",
|
||||
dot11_rsn_ie.pwise_cipher_suite_count);
|
||||
hdd_debug("authentication suite count: %d",
|
||||
dot11_rsn_ie.akm_suite_cnt);
|
||||
|
||||
/* dot11_rsn_ie.akm_suite_cnt */
|
||||
/* Just translate the FIRST one */
|
||||
*auth_type =
|
||||
@@ -5298,11 +5293,7 @@ static int32_t hdd_process_genie(struct hdd_adapter *adapter,
|
||||
parse_status);
|
||||
return -EINVAL;
|
||||
}
|
||||
/* Copy out the encryption and authentication types */
|
||||
hdd_debug("WPA unicast cipher suite count: %d",
|
||||
dot11_wpa_ie.unicast_cipher_count);
|
||||
hdd_debug("WPA authentication suite count: %d",
|
||||
dot11_wpa_ie.auth_suite_count);
|
||||
|
||||
/* dot11_wpa_ie.auth_suite_count */
|
||||
/* Just translate the FIRST one */
|
||||
*auth_type =
|
||||
@@ -5405,7 +5396,6 @@ static void hdd_update_values_mfp_cap(
|
||||
*/
|
||||
static void hdd_set_mfp_enable(struct csr_roam_profile *roam_profile)
|
||||
{
|
||||
hdd_debug("MFPEnabled %d", roam_profile->MFPEnabled);
|
||||
/*
|
||||
* Reset MFPEnabled if testmode RSNE passed doesn't have MFPR
|
||||
* or MFPC bit set
|
||||
@@ -5538,9 +5528,6 @@ int hdd_set_genie_to_csr(struct hdd_adapter *adapter,
|
||||
|
||||
hdd_update_values_mfp_cap(roam_profile, mfp_required,
|
||||
mfp_capable);
|
||||
|
||||
hdd_debug("CSR AuthType = %d, EncryptionType = %d mcEncryptionType = %d",
|
||||
*rsn_auth_type, rsn_encrypt_type, mc_rsn_encrypt_type);
|
||||
}
|
||||
|
||||
if (QDF_STATUS_SUCCESS != wlan_set_vdev_crypto_prarams_from_ie(
|
||||
@@ -5621,9 +5608,6 @@ int hdd_set_csr_auth_type(struct hdd_adapter *adapter,
|
||||
|
||||
roam_profile = hdd_roam_profile(adapter);
|
||||
roam_profile->AuthType.numEntries = 1;
|
||||
hdd_debug("auth_type = %d rsn_auth_type %d wpa_versions %d key_mgmt : 0x%x",
|
||||
sta_ctx->conn_info.auth_type, rsn_auth_type,
|
||||
sta_ctx->wpa_versions, key_mgmt);
|
||||
|
||||
switch (sta_ctx->conn_info.auth_type) {
|
||||
case eCSR_AUTH_TYPE_OPEN_SYSTEM:
|
||||
@@ -5642,11 +5626,9 @@ int hdd_set_csr_auth_type(struct hdd_adapter *adapter,
|
||||
if ((rsn_auth_type == eCSR_AUTH_TYPE_CCKM_WPA) &&
|
||||
((key_mgmt & HDD_AUTH_KEY_MGMT_802_1X)
|
||||
== HDD_AUTH_KEY_MGMT_802_1X)) {
|
||||
hdd_debug("set authType to CCKM WPA. AKM also 802.1X.");
|
||||
roam_profile->AuthType.authType[0] =
|
||||
eCSR_AUTH_TYPE_CCKM_WPA;
|
||||
} else if (rsn_auth_type == eCSR_AUTH_TYPE_CCKM_WPA) {
|
||||
hdd_debug("Last chance to set authType to CCKM WPA.");
|
||||
roam_profile->AuthType.authType[0] =
|
||||
eCSR_AUTH_TYPE_CCKM_WPA;
|
||||
} else
|
||||
@@ -5670,11 +5652,9 @@ int hdd_set_csr_auth_type(struct hdd_adapter *adapter,
|
||||
if ((rsn_auth_type == eCSR_AUTH_TYPE_CCKM_RSN) &&
|
||||
((key_mgmt & HDD_AUTH_KEY_MGMT_802_1X)
|
||||
== HDD_AUTH_KEY_MGMT_802_1X)) {
|
||||
hdd_debug("set authType to CCKM RSN. AKM also 802.1X.");
|
||||
roam_profile->AuthType.authType[0] =
|
||||
eCSR_AUTH_TYPE_CCKM_RSN;
|
||||
} else if (rsn_auth_type == eCSR_AUTH_TYPE_CCKM_RSN) {
|
||||
hdd_debug("Last chance to set authType to CCKM RSN.");
|
||||
roam_profile->AuthType.authType[0] =
|
||||
eCSR_AUTH_TYPE_CCKM_RSN;
|
||||
} else
|
||||
@@ -5712,9 +5692,6 @@ int hdd_set_csr_auth_type(struct hdd_adapter *adapter,
|
||||
rsn_auth_type)) {
|
||||
roam_profile->AuthType.authType[0] =
|
||||
rsn_auth_type;
|
||||
hdd_debug("updated profile authtype as %d",
|
||||
rsn_auth_type);
|
||||
|
||||
} else if ((rsn_auth_type == eCSR_AUTH_TYPE_OWE) &&
|
||||
((key_mgmt & HDD_AUTH_KEY_MGMT_802_1X)
|
||||
== HDD_AUTH_KEY_MGMT_802_1X)) {
|
||||
@@ -5791,9 +5768,6 @@ int hdd_set_csr_auth_type(struct hdd_adapter *adapter,
|
||||
break;
|
||||
}
|
||||
|
||||
hdd_debug("Set roam Authtype to %d",
|
||||
roam_profile->AuthType.authType[0]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -17710,8 +17710,6 @@ static int wlan_hdd_cfg80211_connect_start(struct hdd_adapter *adapter,
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
uint32_t channel_bonding_mode;
|
||||
|
||||
hdd_enter();
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
|
||||
|
||||
@@ -17819,7 +17817,6 @@ static int wlan_hdd_cfg80211_connect_start(struct hdd_adapter *adapter,
|
||||
*/
|
||||
qdf_mem_copy(sta_ctx->requested_bssid.bytes,
|
||||
bssid, QDF_MAC_ADDR_SIZE);
|
||||
hdd_debug("bssid is given by upper layer %pM", bssid);
|
||||
} else if (bssid_hint) {
|
||||
qdf_mem_copy(roam_profile->bssid_hint.bytes,
|
||||
bssid_hint, QDF_MAC_ADDR_SIZE);
|
||||
@@ -17831,34 +17828,23 @@ static int wlan_hdd_cfg80211_connect_start(struct hdd_adapter *adapter,
|
||||
*/
|
||||
qdf_mem_copy(sta_ctx->requested_bssid.bytes,
|
||||
bssid_hint, QDF_MAC_ADDR_SIZE);
|
||||
hdd_debug("bssid_hint is given by upper layer %pM",
|
||||
bssid_hint);
|
||||
}
|
||||
|
||||
hdd_debug("Connect to SSID: %.*s operating Ch freq: %u",
|
||||
roam_profile->SSIDs.SSIDList->SSID.length,
|
||||
roam_profile->SSIDs.SSIDList->SSID.ssId, oper_freq);
|
||||
|
||||
if (hdd_sta_ctx->wpa_versions) {
|
||||
hdd_set_genie_to_csr(adapter, &rsn_auth_type);
|
||||
hdd_set_csr_auth_type(adapter, rsn_auth_type);
|
||||
}
|
||||
#ifdef FEATURE_WLAN_WAPI
|
||||
if (adapter->wapi_info.wapi_mode) {
|
||||
hdd_debug("Setting WAPI AUTH Type and Encryption Mode values");
|
||||
switch (adapter->wapi_info.wapi_auth_mode) {
|
||||
case WAPI_AUTH_MODE_PSK:
|
||||
{
|
||||
hdd_debug("WAPI AUTH TYPE: PSK: %d",
|
||||
adapter->wapi_info.wapi_auth_mode);
|
||||
roam_profile->AuthType.authType[0] =
|
||||
eCSR_AUTH_TYPE_WAPI_WAI_PSK;
|
||||
break;
|
||||
}
|
||||
case WAPI_AUTH_MODE_CERT:
|
||||
{
|
||||
hdd_debug("WAPI AUTH TYPE: CERT: %d",
|
||||
adapter->wapi_info.wapi_auth_mode);
|
||||
roam_profile->AuthType.authType[0] =
|
||||
eCSR_AUTH_TYPE_WAPI_WAI_CERTIFICATE;
|
||||
break;
|
||||
@@ -17870,7 +17856,6 @@ static int wlan_hdd_cfg80211_connect_start(struct hdd_adapter *adapter,
|
||||
WAPI_AUTH_MODE_PSK
|
||||
|| adapter->wapi_info.wapi_auth_mode ==
|
||||
WAPI_AUTH_MODE_CERT) {
|
||||
hdd_debug("WAPI PAIRWISE/GROUP ENCRYPTION: WPI");
|
||||
roam_profile->AuthType.numEntries = 1;
|
||||
roam_profile->EncryptionType.numEntries = 1;
|
||||
roam_profile->EncryptionType.encryptionType[0] =
|
||||
@@ -18022,8 +18007,7 @@ static int wlan_hdd_cfg80211_connect_start(struct hdd_adapter *adapter,
|
||||
if ((QDF_STATUS_SUCCESS != qdf_status) &&
|
||||
(QDF_STA_MODE == adapter->device_mode ||
|
||||
QDF_P2P_CLIENT_MODE == adapter->device_mode)) {
|
||||
hdd_err("sme_roam_connect (session %d) failed with "
|
||||
"qdf_status %d. -> NotConnected",
|
||||
hdd_err("Vdev %d connect failed with status %d",
|
||||
adapter->vdev_id, qdf_status);
|
||||
/* change back to NotAssociated */
|
||||
hdd_conn_set_connection_state(adapter,
|
||||
@@ -18056,7 +18040,6 @@ ret_status:
|
||||
if (status)
|
||||
wlan_hdd_enable_roaming(adapter, RSO_CONNECT_START);
|
||||
|
||||
hdd_exit();
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -18079,23 +18062,19 @@ static int wlan_hdd_cfg80211_set_auth_type(struct hdd_adapter *adapter,
|
||||
/*set authentication type */
|
||||
switch (auth_type) {
|
||||
case NL80211_AUTHTYPE_AUTOMATIC:
|
||||
hdd_debug("set authentication type to AUTOSWITCH");
|
||||
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_AUTOSWITCH;
|
||||
break;
|
||||
|
||||
case NL80211_AUTHTYPE_OPEN_SYSTEM:
|
||||
case NL80211_AUTHTYPE_FT:
|
||||
hdd_debug("set authentication type to OPEN");
|
||||
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_OPEN_SYSTEM;
|
||||
break;
|
||||
|
||||
case NL80211_AUTHTYPE_SHARED_KEY:
|
||||
hdd_debug("set authentication type to SHARED");
|
||||
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_SHARED_KEY;
|
||||
break;
|
||||
#ifdef FEATURE_WLAN_ESE
|
||||
case NL80211_AUTHTYPE_NETWORK_EAP:
|
||||
hdd_debug("set authentication type to CCKM WPA");
|
||||
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_CCKM_WPA;
|
||||
break;
|
||||
#endif
|
||||
@@ -18103,12 +18082,10 @@ static int wlan_hdd_cfg80211_set_auth_type(struct hdd_adapter *adapter,
|
||||
(defined(CFG80211_FILS_SK_OFFLOAD_SUPPORT) || \
|
||||
(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)))
|
||||
case NL80211_AUTHTYPE_FILS_SK:
|
||||
hdd_debug("set authentication type to FILS SHARED");
|
||||
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_OPEN_SYSTEM;
|
||||
break;
|
||||
#endif
|
||||
case NL80211_AUTHTYPE_SAE:
|
||||
hdd_debug("set authentication type to SAE");
|
||||
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_SAE;
|
||||
break;
|
||||
default:
|
||||
@@ -18311,7 +18288,6 @@ static bool wlan_hdd_is_conn_type_fils(struct cfg80211_connect_params *req)
|
||||
enum eAniAuthType fils_auth_type =
|
||||
wlan_hdd_get_fils_auth_type(req->auth_type);
|
||||
|
||||
hdd_debug("Num of AKM suites = %d", num_akm_suites);
|
||||
if (num_akm_suites <= 0)
|
||||
return false;
|
||||
|
||||
@@ -18319,16 +18295,13 @@ static bool wlan_hdd_is_conn_type_fils(struct cfg80211_connect_params *req)
|
||||
* Auth type will be either be OPEN or FILS type for a FILS connection
|
||||
*/
|
||||
if ((auth_type != NL80211_AUTHTYPE_OPEN_SYSTEM) &&
|
||||
(fils_auth_type == eSIR_DONOT_USE_AUTH_TYPE)) {
|
||||
hdd_debug("Not a FILS auth type, auth = %d, fils auth = %d",
|
||||
auth_type, fils_auth_type);
|
||||
(fils_auth_type == eSIR_DONOT_USE_AUTH_TYPE))
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!wlan_hdd_is_akm_suite_fils(key_mgmt)) {
|
||||
hdd_debug("Not a FILS AKM SUITE %d", key_mgmt);
|
||||
if (!wlan_hdd_is_akm_suite_fils(key_mgmt))
|
||||
return false;
|
||||
}
|
||||
|
||||
hdd_debug("Fils Auth %d AKM %d", fils_auth_type, key_mgmt);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -18390,20 +18363,17 @@ static int wlan_hdd_set_akm_suite(struct hdd_adapter *adapter, u32 key_mgmt)
|
||||
case WLAN_AKM_SUITE_PSK_SHA256:
|
||||
case WLAN_AKM_SUITE_FT_PSK:
|
||||
case WLAN_AKM_SUITE_DPP_RSN:
|
||||
hdd_debug("setting key mgmt type to PSK");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_PSK;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_8021X_SHA256:
|
||||
case WLAN_AKM_SUITE_8021X:
|
||||
case WLAN_AKM_SUITE_FT_8021X:
|
||||
hdd_debug("setting key mgmt type to 8021x");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
#ifdef FEATURE_WLAN_ESE
|
||||
#define WLAN_AKM_SUITE_CCKM 0x00409600 /* Should be in ieee802_11_defs.h */
|
||||
case WLAN_AKM_SUITE_CCKM:
|
||||
hdd_debug("setting key mgmt type to CCKM");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_CCKM;
|
||||
break;
|
||||
#endif
|
||||
@@ -18411,35 +18381,30 @@ static int wlan_hdd_set_akm_suite(struct hdd_adapter *adapter, u32 key_mgmt)
|
||||
#define WLAN_AKM_SUITE_OSEN 0x506f9a01 /* Should be in ieee802_11_defs.h */
|
||||
#endif
|
||||
case WLAN_AKM_SUITE_OSEN:
|
||||
hdd_debug("setting key mgmt type to OSEN");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
#if defined(WLAN_FEATURE_FILS_SK) && \
|
||||
(defined(CFG80211_FILS_SK_OFFLOAD_SUPPORT) || \
|
||||
(LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)))
|
||||
case WLAN_AKM_SUITE_FILS_SHA256:
|
||||
hdd_debug("setting key mgmt type to FILS SHA256");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
roam_profile->fils_con_info->akm_type =
|
||||
eCSR_AUTH_TYPE_FILS_SHA256;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_FILS_SHA384:
|
||||
hdd_debug("setting key mgmt type to FILS SHA384");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
roam_profile->fils_con_info->akm_type =
|
||||
eCSR_AUTH_TYPE_FILS_SHA384;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_FT_FILS_SHA256:
|
||||
hdd_debug("setting key mgmt type to FILS FT SHA256");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
roam_profile->fils_con_info->akm_type =
|
||||
eCSR_AUTH_TYPE_FT_FILS_SHA256;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_FT_FILS_SHA384:
|
||||
hdd_debug("setting key mgmt type to FILS FT SHA384");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
roam_profile->fils_con_info->akm_type =
|
||||
eCSR_AUTH_TYPE_FT_FILS_SHA384;
|
||||
@@ -18447,31 +18412,25 @@ static int wlan_hdd_set_akm_suite(struct hdd_adapter *adapter, u32 key_mgmt)
|
||||
#endif
|
||||
|
||||
case WLAN_AKM_SUITE_OWE:
|
||||
hdd_debug("setting key mgmt type to OWE");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_EAP_SHA256:
|
||||
hdd_debug("setting key mgmt type to EAP_SHA256");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
case WLAN_AKM_SUITE_EAP_SHA384:
|
||||
hdd_debug("setting key mgmt type to EAP_SHA384");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_SAE:
|
||||
hdd_debug("setting key mgmt type to SAE");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_FT_SAE:
|
||||
hdd_debug("setting key mgmt type to FT-SAE");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
|
||||
case WLAN_AKM_SUITE_FT_EAP_SHA_384:
|
||||
hdd_debug("setting key mgmt type to FT-EAP-SHA384");
|
||||
sta_ctx->auth_key_mgmt |= HDD_AUTH_KEY_MGMT_802_1X;
|
||||
break;
|
||||
|
||||
@@ -18502,7 +18461,6 @@ static int wlan_hdd_cfg80211_set_cipher(struct hdd_adapter *adapter,
|
||||
struct csr_roam_profile *roam_profile;
|
||||
|
||||
if (!cipher) {
|
||||
hdd_debug("received cipher %d - considering none", cipher);
|
||||
encryptionType = eCSR_ENCRYPT_TYPE_NONE;
|
||||
} else {
|
||||
|
||||
@@ -18557,13 +18515,11 @@ static int wlan_hdd_cfg80211_set_cipher(struct hdd_adapter *adapter,
|
||||
|
||||
roam_profile = hdd_roam_profile(adapter);
|
||||
if (ucast) {
|
||||
hdd_debug("setting unicast cipher type to %d", encryptionType);
|
||||
sta_ctx->conn_info.uc_encrypt_type = encryptionType;
|
||||
roam_profile->EncryptionType.numEntries = 1;
|
||||
roam_profile->EncryptionType.encryptionType[0] =
|
||||
encryptionType;
|
||||
} else {
|
||||
hdd_debug("setting mcast cipher type to %d", encryptionType);
|
||||
sta_ctx->conn_info.mc_encrypt_type = encryptionType;
|
||||
roam_profile->mcEncryptionType.numEntries = 1;
|
||||
roam_profile->mcEncryptionType.encryptionType[0] =
|
||||
@@ -18672,7 +18628,6 @@ static void hdd_populate_crypto_auth_type(struct wlan_objmgr_vdev *vdev,
|
||||
wlan_crypto_auth_mode crypto_auth_type =
|
||||
osif_nl_to_crypto_auth_type(auth_type);
|
||||
|
||||
hdd_debug("set auth type %d to crypto component", crypto_auth_type);
|
||||
HDD_SET_BIT(set_val, crypto_auth_type);
|
||||
status = wlan_crypto_set_vdev_param(vdev,
|
||||
WLAN_CRYPTO_PARAM_AUTH_MODE,
|
||||
@@ -18700,7 +18655,6 @@ static void hdd_populate_crypto_akm_type(struct wlan_objmgr_vdev *vdev,
|
||||
wlan_crypto_key_mgmt crypto_akm_type =
|
||||
osif_nl_to_crypto_akm_type(key_mgmt);
|
||||
|
||||
hdd_debug("set akm type %d to crypto component", crypto_akm_type);
|
||||
HDD_SET_BIT(set_val, crypto_akm_type);
|
||||
|
||||
status = wlan_crypto_set_vdev_param(vdev,
|
||||
@@ -18732,8 +18686,6 @@ static void hdd_populate_crypto_cipher_type(u32 cipher,
|
||||
wlan_crypto_cipher_type crypto_cipher_type =
|
||||
osif_nl_to_crypto_cipher_type(cipher);
|
||||
|
||||
hdd_debug("set cipher params %d type %d to crypto",
|
||||
cipher_param_type, crypto_cipher_type);
|
||||
HDD_SET_BIT(set_val, crypto_cipher_type);
|
||||
status = wlan_crypto_set_vdev_param(vdev, cipher_param_type, set_val);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
@@ -18758,16 +18710,12 @@ static void hdd_populate_crypto_params(struct wlan_objmgr_vdev *vdev,
|
||||
if (req->crypto.n_akm_suites)
|
||||
hdd_populate_crypto_akm_type(vdev, req->crypto.akm_suites[0]);
|
||||
|
||||
if (req->crypto.n_ciphers_pairwise) {
|
||||
if (req->crypto.n_ciphers_pairwise)
|
||||
hdd_populate_crypto_cipher_type(req->crypto.ciphers_pairwise[0],
|
||||
vdev,
|
||||
WLAN_CRYPTO_PARAM_UCAST_CIPHER);
|
||||
} else {
|
||||
/* Reset previous cipher suite to none */
|
||||
hdd_populate_crypto_cipher_type(0, vdev,
|
||||
WLAN_CRYPTO_PARAM_UCAST_CIPHER);
|
||||
}
|
||||
|
||||
if (req->crypto.cipher_group)
|
||||
hdd_populate_crypto_cipher_type(req->crypto.cipher_group,
|
||||
vdev,
|
||||
WLAN_CRYPTO_PARAM_MCAST_CIPHER);
|
||||
@@ -18852,18 +18800,16 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdd_debug("IE[0x%X], LEN[%d]", elementId, eLen);
|
||||
|
||||
switch (elementId) {
|
||||
case DOT11F_EID_WPA:
|
||||
if (4 > eLen) { /* should have at least OUI which is 4 bytes so extra 2 bytes not needed */
|
||||
hdd_err("Invalid WPA IE");
|
||||
hdd_err("Invalid vendor ie");
|
||||
return -EINVAL;
|
||||
} else if (0 ==
|
||||
memcmp(&genie[0], "\x00\x50\xf2\x04", 4)) {
|
||||
uint16_t curAddIELen = assoc_add_ie->length;
|
||||
|
||||
hdd_debug("Set WPS IE(len %d)", eLen + 2);
|
||||
hdd_debug("WPS IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -18888,7 +18834,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
QDF_ASSERT(0);
|
||||
return -EINVAL;
|
||||
}
|
||||
hdd_debug("Set WPA IE (len %d)", eLen + 2);
|
||||
hdd_debug("WPA IE (len %d)", eLen + 2);
|
||||
memset(security_ie, 0, WLAN_MAX_IE_LEN);
|
||||
memcpy(security_ie, genie - 2, (eLen + 2));
|
||||
roam_profile->pWPAReqIE = security_ie;
|
||||
@@ -18897,7 +18843,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
P2P_OUI_TYPE_SIZE))) {
|
||||
uint16_t curAddIELen =
|
||||
assoc_add_ie->length;
|
||||
hdd_debug("Set P2P IE(len %d)", eLen + 2);
|
||||
hdd_debug("P2P IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -18923,7 +18869,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
adapter->device_mode)) {
|
||||
uint16_t curAddIELen =
|
||||
assoc_add_ie->length;
|
||||
hdd_debug("Set WFD IE(len %d)", eLen + 2);
|
||||
hdd_debug("WFD IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -18950,7 +18896,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
HS20_OUI_TYPE_SIZE))) {
|
||||
uint16_t curAddIELen =
|
||||
assoc_add_ie->length;
|
||||
hdd_debug("Set HS20 IE(len %d)", eLen + 2);
|
||||
hdd_debug("HS20 IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -18972,7 +18918,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
OSEN_OUI_TYPE_SIZE))) {
|
||||
uint16_t curAddIELen =
|
||||
assoc_add_ie->length;
|
||||
hdd_debug("Set OSEN IE(len %d)", eLen + 2);
|
||||
hdd_debug("OSEN IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -19000,7 +18946,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
uint16_t add_ie_len =
|
||||
assoc_add_ie->length;
|
||||
|
||||
hdd_debug("Set OSEN IE(len %d)", eLen + 2);
|
||||
hdd_debug("Additional IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -19029,7 +18975,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
memcpy(security_ie, genie - 2, (eLen + 2));
|
||||
roam_profile->pRSNReqIE = security_ie;
|
||||
roam_profile->nRSNReqIELength = eLen + 2; /* ie_len; */
|
||||
hdd_debug("Set RSN IE(len %d)", eLen + 2);
|
||||
hdd_debug("RSN IE(len %d)", eLen + 2);
|
||||
break;
|
||||
/*
|
||||
* Appending Extended Capabilities with Interworking bit set
|
||||
@@ -19046,7 +18992,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
{
|
||||
uint16_t curAddIELen =
|
||||
assoc_add_ie->length;
|
||||
hdd_debug("Set Extended CAPS IE(len %d)", eLen + 2);
|
||||
hdd_debug("Extended CAPS IE(len %d)", eLen + 2);
|
||||
|
||||
if (SIR_MAC_MAX_ADD_IE_LENGTH <
|
||||
(assoc_add_ie->length + eLen)) {
|
||||
@@ -19113,7 +19059,8 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
#endif
|
||||
case DOT11F_EID_SUPPOPERATINGCLASSES:
|
||||
{
|
||||
hdd_debug("Set Supported Operating Classes IE(len %d)", eLen + 2);
|
||||
hdd_debug("Supported Operating Classes IE(len %d)",
|
||||
eLen + 2);
|
||||
status = wlan_hdd_add_assoc_ie(adapter,
|
||||
genie - 2, eLen + 2);
|
||||
if (status)
|
||||
@@ -19123,7 +19070,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
case WLAN_REQUEST_IE_MAX_LEN:
|
||||
{
|
||||
if (genie[0] == SIR_FILS_HLP_EXT_EID) {
|
||||
hdd_debug("Set HLP EXT IE(len %d)",
|
||||
hdd_debug("HLP EXT IE(len %d)",
|
||||
eLen + 2);
|
||||
wlan_hdd_save_hlp_ie(roam_profile,
|
||||
genie - 2, eLen + 2,
|
||||
@@ -19135,7 +19082,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
return status;
|
||||
} else if (genie[0] ==
|
||||
SIR_DH_PARAMETER_ELEMENT_EXT_EID) {
|
||||
hdd_debug("Set DH EXT IE(len %d)",
|
||||
hdd_debug("DH EXT IE(len %d)",
|
||||
eLen + 2);
|
||||
status = wlan_hdd_add_assoc_ie(
|
||||
adapter, genie - 2,
|
||||
@@ -19149,7 +19096,7 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
}
|
||||
case DOT11F_EID_FRAGMENT_IE:
|
||||
{
|
||||
hdd_debug("Set Fragment IE(len %d)", eLen + 2);
|
||||
hdd_debug("Fragment IE(len %d)", eLen + 2);
|
||||
wlan_hdd_save_hlp_ie(roam_profile,
|
||||
genie - 2, eLen + 2,
|
||||
false);
|
||||
@@ -19160,14 +19107,14 @@ static int wlan_hdd_cfg80211_set_ie(struct hdd_adapter *adapter,
|
||||
break;
|
||||
}
|
||||
case WLAN_ELEMID_RSNXE:
|
||||
hdd_debug("Set RSNXE(len %d)", eLen + 2);
|
||||
hdd_debug("RSNXE(len %d)", eLen + 2);
|
||||
status = wlan_hdd_add_assoc_ie(adapter, genie - 2,
|
||||
eLen + 2);
|
||||
if (status)
|
||||
return status;
|
||||
break;
|
||||
default:
|
||||
hdd_err("Set UNKNOWN IE: %X", elementId);
|
||||
hdd_err("UNKNOWN IE: %X", elementId);
|
||||
/* when Unknown IE is received we break
|
||||
* and continue to the next IE in the buffer
|
||||
*/
|
||||
@@ -19722,12 +19669,8 @@ static int wlan_hdd_cfg80211_set_privacy(struct hdd_adapter *adapter,
|
||||
struct csr_roam_profile *roam_profile;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
||||
hdd_enter();
|
||||
|
||||
sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
|
||||
sta_ctx->wpa_versions = req->crypto.wpa_versions;
|
||||
hdd_debug("set wpa version to %d", sta_ctx->wpa_versions);
|
||||
|
||||
roam_profile = hdd_roam_profile(adapter);
|
||||
|
||||
/* populate auth,akm and cipher params for crypto */
|
||||
@@ -19946,12 +19889,17 @@ static void wlan_hdd_wait_for_roaming(mac_handle_t mac_handle,
|
||||
{
|
||||
struct hdd_context *hdd_ctx;
|
||||
unsigned long rc;
|
||||
struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
|
||||
|
||||
if (adapter->device_mode != QDF_STA_MODE)
|
||||
return;
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_debug("Stop firmware roaming");
|
||||
|
||||
/* Return if not in connected state */
|
||||
if (sta_ctx->conn_info.conn_state != eConnectionState_Associated)
|
||||
return;
|
||||
|
||||
sme_stop_roaming(mac_handle, adapter->vdev_id,
|
||||
REASON_DRIVER_DISABLED,
|
||||
RSO_INVALID_REQUESTOR);
|
||||
@@ -20038,10 +19986,10 @@ static int wlan_hdd_reassoc_bssid_hint(struct hdd_adapter *adapter,
|
||||
|
||||
status = hdd_reassoc(adapter, bssid, ch_freq,
|
||||
CONNECT_CMD_USERSPACE);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
hdd_set_roaming_in_progress(false);
|
||||
|
||||
hdd_debug("hdd_reassoc: status: %d", status);
|
||||
hdd_debug("Failed with status: %d", status);
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
@@ -20088,9 +20036,8 @@ wlan_hdd_check_ht20_ht40_ind(struct hdd_context *hdd_ctx,
|
||||
!(req->ht_capa.cap_info & IEEE80211_HT_CAP_SUP_WIDTH_20_40))
|
||||
roam_profile->force_24ghz_in_ht20 = true;
|
||||
|
||||
hdd_debug("req->ht_capa.cap_info %x override_ht20_40_24g %d",
|
||||
req->ht_capa.cap_info,
|
||||
is_override_ht20_40_24g);
|
||||
if (is_override_ht20_40_24g)
|
||||
hdd_nofl_debug("HT cap %x", req->ht_capa.cap_info);
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
@@ -20106,6 +20053,35 @@ wlan_hdd_check_ht20_ht40_ind(struct hdd_context *hdd_ctx,
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void hdd_dump_connect_req(struct hdd_adapter *adapter,
|
||||
struct net_device *ndev,
|
||||
struct cfg80211_connect_params *req)
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
hdd_nofl_debug("cfg80211_connect req for %s(vdevid-%d): mode %d freq %d SSID %.*s auth type %d WPA ver %d n_akm %d n_cipher %d grp_cipher %x mfp %d freq hint %d",
|
||||
ndev->name, adapter->vdev_id, adapter->device_mode,
|
||||
req->channel ? req->channel->center_freq : 0,
|
||||
(int)req->ssid_len, req->ssid, req->auth_type,
|
||||
req->crypto.wpa_versions,
|
||||
req->crypto.n_akm_suites, req->crypto.n_ciphers_pairwise,
|
||||
req->crypto.cipher_group, req->mfp,
|
||||
req->channel_hint ? req->channel_hint->center_freq : 0);
|
||||
if (req->bssid)
|
||||
hdd_nofl_debug("BSSID %pM", req->bssid);
|
||||
if (req->bssid_hint)
|
||||
hdd_nofl_debug("BSSID hint %pM", req->bssid_hint);
|
||||
if (req->prev_bssid)
|
||||
hdd_nofl_debug("prev BSSID %pM", req->prev_bssid);
|
||||
|
||||
for (i = 0; i < req->crypto.n_akm_suites; i++)
|
||||
hdd_nofl_debug("akm[%d] = %x", i, req->crypto.akm_suites[i]);
|
||||
|
||||
for (i = 0; i < req->crypto.n_ciphers_pairwise; i++)
|
||||
hdd_nofl_debug("cipher_pairwise[%d] = %x", i,
|
||||
req->crypto.ciphers_pairwise[i]);
|
||||
}
|
||||
|
||||
/**
|
||||
* __wlan_hdd_cfg80211_connect() - cfg80211 connect api
|
||||
* @wiphy: Pointer to wiphy
|
||||
@@ -20145,10 +20121,6 @@ static int __wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
|
||||
TRACE_CODE_HDD_CFG80211_CONNECT,
|
||||
adapter->vdev_id, adapter->device_mode);
|
||||
|
||||
hdd_debug("%s(vdevid-%d): Device_mode %s(%d)",
|
||||
ndev->name, adapter->vdev_id,
|
||||
qdf_opmode_str(adapter->device_mode), adapter->device_mode);
|
||||
|
||||
if (adapter->device_mode != QDF_STA_MODE &&
|
||||
adapter->device_mode != QDF_P2P_CLIENT_MODE) {
|
||||
hdd_err("Device_mode %s(%d) is not supported",
|
||||
@@ -20167,6 +20139,19 @@ static int __wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
|
||||
if (0 != status)
|
||||
return status;
|
||||
|
||||
if (req->bssid)
|
||||
bssid = req->bssid;
|
||||
else if (bssid_hint)
|
||||
bssid = bssid_hint;
|
||||
|
||||
if (bssid && hdd_get_adapter_by_macaddr(hdd_ctx, (uint8_t *)bssid)) {
|
||||
hdd_err("adapter exist with same mac address " QDF_MAC_ADDR_STR,
|
||||
QDF_MAC_ADDR_ARRAY(bssid));
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdd_dump_connect_req(adapter, ndev, req);
|
||||
|
||||
/*
|
||||
* Disable NAN Discovery if incoming connection is P2P or if a STA
|
||||
* connection already exists and if this is a case of STA+STA
|
||||
@@ -20189,17 +20174,6 @@ static int __wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
|
||||
*/
|
||||
ucfg_nan_check_and_disable_unsupported_ndi(hdd_ctx->psoc, false);
|
||||
|
||||
if (req->bssid)
|
||||
bssid = req->bssid;
|
||||
else if (bssid_hint)
|
||||
bssid = bssid_hint;
|
||||
|
||||
if (bssid && hdd_get_adapter_by_macaddr(hdd_ctx, (uint8_t *)bssid)) {
|
||||
hdd_err("adapter exist with same mac address " QDF_MAC_ADDR_STR,
|
||||
QDF_MAC_ADDR_ARRAY(bssid));
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* In STA + STA roaming scenario, connection to same ssid but different
|
||||
* bssid is allowed on both vdevs. So there could be a race where the
|
||||
@@ -20235,71 +20209,11 @@ static int __wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
|
||||
|
||||
/*initialise security parameters */
|
||||
status = wlan_hdd_cfg80211_set_privacy(adapter, req);
|
||||
|
||||
if (status < 0) {
|
||||
hdd_err("Failed to set security params");
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for max concurrent connections after doing disconnect if any,
|
||||
* must be called after the invocation of wlan_hdd_cfg80211_set_privacy
|
||||
* so privacy is already set for the current adapter before it's
|
||||
* checked against concurrency.
|
||||
*/
|
||||
if (req->channel) {
|
||||
bool ok = false;
|
||||
|
||||
if (req->channel->center_freq && policy_mgr_is_chan_ok_for_dnbs(
|
||||
hdd_ctx->psoc,
|
||||
req->channel->center_freq,
|
||||
&ok)) {
|
||||
hdd_warn("Unable to get ch freq:%d eligibility for DNBS",
|
||||
req->channel->center_freq);
|
||||
return -EINVAL;
|
||||
}
|
||||
/**
|
||||
* Send connection timedout, so that Android framework does not
|
||||
* blacklist us.
|
||||
*/
|
||||
if (!ok) {
|
||||
struct ieee80211_channel *chan = ieee80211_get_channel(
|
||||
wiphy, req->channel->center_freq);
|
||||
struct cfg80211_bss *bss;
|
||||
|
||||
hdd_warn("Ch freq:%d not OK for DNBS",
|
||||
req->channel->center_freq);
|
||||
if (chan) {
|
||||
bss = wlan_cfg80211_get_bss(wiphy, chan,
|
||||
req->bssid,
|
||||
req->ssid,
|
||||
req->ssid_len);
|
||||
if (bss) {
|
||||
cfg80211_assoc_timeout(ndev, bss);
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
}
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!policy_mgr_allow_concurrency(hdd_ctx->psoc,
|
||||
policy_mgr_convert_device_mode_to_qdf_type(
|
||||
adapter->device_mode),
|
||||
req->channel->center_freq, HW_MODE_20_MHZ)) {
|
||||
hdd_warn("This concurrency combination is not allowed");
|
||||
status = -ECONNREFUSED;
|
||||
goto con_chk_failed;
|
||||
}
|
||||
} else {
|
||||
if (!policy_mgr_allow_concurrency(hdd_ctx->psoc,
|
||||
policy_mgr_convert_device_mode_to_qdf_type(
|
||||
adapter->device_mode), 0, HW_MODE_20_MHZ)) {
|
||||
hdd_warn("This concurrency combination is not allowed");
|
||||
status = -ECONNREFUSED;
|
||||
goto con_chk_failed;
|
||||
}
|
||||
}
|
||||
|
||||
if (req->channel)
|
||||
ch_freq = req->channel->center_freq;
|
||||
else
|
||||
@@ -20310,14 +20224,13 @@ static int __wlan_hdd_cfg80211_connect(struct wiphy *wiphy,
|
||||
status = wlan_hdd_cfg80211_connect_start(adapter, req->ssid,
|
||||
req->ssid_len, req->bssid,
|
||||
bssid_hint, ch_freq, 0);
|
||||
if (0 > status)
|
||||
hdd_err("connect failed");
|
||||
|
||||
return status;
|
||||
|
||||
con_chk_failed:
|
||||
if (status) {
|
||||
wlan_hdd_cfg80211_clear_privacy(adapter);
|
||||
hdd_err("connect failed");
|
||||
}
|
||||
|
||||
hdd_exit();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
@@ -7647,7 +7647,6 @@ void hdd_set_disconnect_status(struct hdd_adapter *adapter, bool status)
|
||||
qdf_mutex_acquire(&adapter->disconnection_status_lock);
|
||||
adapter->disconnection_in_progress = status;
|
||||
qdf_mutex_release(&adapter->disconnection_status_lock);
|
||||
hdd_debug("setting disconnection status: %d", status);
|
||||
}
|
||||
|
||||
#ifdef FEATURE_RUNTIME_PM
|
||||
@@ -13446,10 +13445,8 @@ void wlan_hdd_disable_roaming(struct hdd_adapter *cur_adapter,
|
||||
struct csr_roam_profile *roam_profile;
|
||||
struct hdd_station_ctx *sta_ctx;
|
||||
|
||||
if (!policy_mgr_is_sta_active_connection_exists(hdd_ctx->psoc)) {
|
||||
hdd_debug("No active sta session");
|
||||
if (!policy_mgr_is_sta_active_connection_exists(hdd_ctx->psoc))
|
||||
return;
|
||||
}
|
||||
|
||||
hdd_for_each_adapter(hdd_ctx, adapter) {
|
||||
roam_profile = hdd_roam_profile(adapter);
|
||||
@@ -15858,7 +15855,8 @@ bool hdd_is_roaming_in_progress(struct hdd_context *hdd_ctx)
|
||||
return false;
|
||||
}
|
||||
|
||||
hdd_debug("roaming_in_progress = %d", hdd_ctx->roaming_in_progress);
|
||||
if (hdd_ctx->roaming_in_progress)
|
||||
hdd_debug("Roaming is in progress");
|
||||
|
||||
return hdd_ctx->roaming_in_progress;
|
||||
}
|
||||
|
@@ -8477,9 +8477,6 @@ QDF_STATUS csr_roam_issue_connect(struct mac_context *mac, uint32_t sessionId,
|
||||
/* We need to free the BssList when the command is done */
|
||||
pCommand->u.roamCmd.fReleaseBssList = true;
|
||||
pCommand->u.roamCmd.fUpdateCurRoamProfile = true;
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
FL("CSR PERSONA=%d"),
|
||||
pCommand->u.roamCmd.roamProfile.csrPersona);
|
||||
status = csr_queue_sme_command(mac, pCommand, fImediate);
|
||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||
sme_err("fail to send message status: %d", status);
|
||||
@@ -8628,7 +8625,7 @@ static void csr_roam_print_candidate_aps(tScanResultHandle results)
|
||||
while (entry) {
|
||||
bss_desc = GET_BASE_ADDR(entry,
|
||||
struct tag_csrscan_result, Link);
|
||||
sme_debug("BSSID" QDF_MAC_ADDR_STR "score is %d",
|
||||
sme_debug(QDF_MAC_ADDR_STR " score: %d",
|
||||
QDF_MAC_ADDR_ARRAY(bss_desc->Result.BssDescriptor.bssId),
|
||||
bss_desc->bss_score);
|
||||
|
||||
@@ -8670,11 +8667,10 @@ QDF_STATUS csr_roam_connect(struct mac_context *mac, uint32_t sessionId,
|
||||
pSession->join_bssid_count = 0;
|
||||
pSession->discon_in_progress = false;
|
||||
pSession->is_fils_connection = csr_is_fils_connection(pProfile);
|
||||
sme_debug(
|
||||
"called BSSType = %s (%d) authtype = %d encryType = %d",
|
||||
sme_bss_type_to_string(pProfile->BSSType),
|
||||
pProfile->BSSType, pProfile->AuthType.authType[0],
|
||||
pProfile->EncryptionType.encryptionType[0]);
|
||||
sme_debug("Persona %d authtype %d encryType %d mc_encType %d",
|
||||
pProfile->csrPersona, pProfile->AuthType.authType[0],
|
||||
pProfile->EncryptionType.encryptionType[0],
|
||||
pProfile->mcEncryptionType.encryptionType[0]);
|
||||
csr_roam_cancel_roaming(mac, sessionId);
|
||||
csr_scan_abort_mac_scan(mac, sessionId, INVAL_SCAN_ID);
|
||||
csr_roam_remove_duplicate_command(mac, sessionId, NULL, eCsrHddIssued);
|
||||
@@ -8740,7 +8736,6 @@ QDF_STATUS csr_roam_connect(struct mac_context *mac, uint32_t sessionId,
|
||||
}
|
||||
status = csr_scan_get_result(mac, filter, &hBSSList);
|
||||
qdf_mem_free(filter);
|
||||
sme_debug("csr_scan_get_result Status: %d", status);
|
||||
csr_roam_print_candidate_aps(hBSSList);
|
||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||
/* check if set hw mode needs to be done */
|
||||
@@ -8823,8 +8818,6 @@ QDF_STATUS csr_roam_connect(struct mac_context *mac, uint32_t sessionId,
|
||||
sme_err("CSR failed to issue SSID scan cmd with status: 0x%08X",
|
||||
status);
|
||||
fCallCallback = true;
|
||||
} else {
|
||||
sme_debug("SSID scan requested");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -9525,9 +9518,6 @@ static QDF_STATUS csr_roam_issue_join(struct mac_context *mac, uint32_t sessionI
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
sme_debug("Attempting to Join Bssid= " QDF_MAC_ADDR_STR,
|
||||
QDF_MAC_ADDR_ARRAY(pSirBssDesc->bssId));
|
||||
|
||||
/* Set the roaming substate to 'join attempt'... */
|
||||
csr_roam_substate_change(mac, eCSR_ROAM_SUBSTATE_JOIN_REQ, sessionId);
|
||||
/* attempt to Join this BSS... */
|
||||
@@ -9667,8 +9657,6 @@ csr_roaming_state_config_cnf_processor(struct mac_context *mac_ctx,
|
||||
return;
|
||||
}
|
||||
|
||||
/* we have active entry */
|
||||
sme_debug("Cfg sequence complete");
|
||||
/*
|
||||
* Successfully set the configuration parameters for the new Bss.
|
||||
* Attempt to join the roaming Bss
|
||||
@@ -14834,10 +14822,6 @@ static void csr_set_mgmt_enc_type(struct csr_roam_profile *profile,
|
||||
tDot11fBeaconIEs *ies,
|
||||
struct join_req *csr_join_req)
|
||||
{
|
||||
sme_debug("mgmt encryption type %d MFPe %d MFPr %d",
|
||||
profile->mgmt_encryption_type,
|
||||
profile->MFPEnabled, profile->MFPRequired);
|
||||
|
||||
if (profile->MFPEnabled)
|
||||
csr_join_req->MgmtEncryptionType =
|
||||
profile->mgmt_encryption_type;
|
||||
@@ -14888,9 +14872,10 @@ static void csr_update_fils_connection_info(struct csr_roam_profile *profile,
|
||||
|
||||
#ifdef WLAN_FEATURE_SAE
|
||||
/*
|
||||
* csr_update_sae_config: Copy SAE info to join request
|
||||
* @profile: pointer to profile
|
||||
* csr_update_sae_config() - Copy SAE info to join request
|
||||
* @csr_join_req: csr join request
|
||||
* @mac: mac context
|
||||
* @session: sme session
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
@@ -14906,8 +14891,10 @@ static void csr_update_sae_config(struct join_req *csr_join_req,
|
||||
csr_join_req->sae_pmk_cached =
|
||||
csr_lookup_pmkid_using_bssid(mac, session, &pmkid_cache, &index);
|
||||
|
||||
sme_debug("pmk_cached %d for BSSID=" QDF_MAC_ADDR_STR,
|
||||
csr_join_req->sae_pmk_cached,
|
||||
if (!csr_join_req->sae_pmk_cached)
|
||||
return;
|
||||
|
||||
sme_debug("Found for BSSID=" QDF_MAC_ADDR_STR,
|
||||
QDF_MAC_ADDR_ARRAY(csr_join_req->bssDescription.bssId));
|
||||
}
|
||||
#else
|
||||
@@ -14968,42 +14955,6 @@ static uint8_t csr_get_nss_supported_by_sta_and_ap(tDot11fIEVHTCaps *vht_caps,
|
||||
return NSS_1x1_MODE;
|
||||
}
|
||||
|
||||
/**
|
||||
* csr_dump_vendor_ies() - Dumps all the vendor IEs
|
||||
* @ie: ie buffer
|
||||
* @ie_len: length of ie buffer
|
||||
*
|
||||
* This function dumps the vendor IEs present in the AP's IE buffer
|
||||
*
|
||||
* Return: none
|
||||
*/
|
||||
static
|
||||
void csr_dump_vendor_ies(uint8_t *ie, uint16_t ie_len)
|
||||
{
|
||||
int32_t left = ie_len;
|
||||
uint8_t *ptr = ie;
|
||||
uint8_t elem_id, elem_len;
|
||||
|
||||
while (left >= 2) {
|
||||
elem_id = ptr[0];
|
||||
elem_len = ptr[1];
|
||||
left -= 2;
|
||||
if (elem_len > left) {
|
||||
sme_err("Invalid IEs eid: %d elem_len: %d left: %d",
|
||||
elem_id, elem_len, left);
|
||||
return;
|
||||
}
|
||||
if (elem_id == WLAN_ELEMID_VENDOR) {
|
||||
sme_debug("Dumping Vendor IE of len %d", elem_len);
|
||||
QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE,
|
||||
QDF_TRACE_LEVEL_DEBUG,
|
||||
&ptr[2], elem_len);
|
||||
}
|
||||
left -= elem_len;
|
||||
ptr += (elem_len + 2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* csr_check_vendor_ap_3_present() - Check if Vendor AP 3 is present
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
@@ -15334,10 +15285,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
||||
|
||||
ieLen = csr_get_ielen_from_bss_description(pBssDescription);
|
||||
|
||||
/* Dump the Vendor Specific IEs*/
|
||||
csr_dump_vendor_ies((uint8_t *)&pBssDescription->ieFields[0],
|
||||
ieLen);
|
||||
|
||||
/* Fill the Vendor AP search params */
|
||||
vendor_ap_search_attr.ie_data =
|
||||
(uint8_t *)&pBssDescription->ieFields[0];
|
||||
@@ -15481,10 +15428,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
||||
csr_join_req->nss = pSession->nss;
|
||||
csr_join_req->nss_forced_1x1 = pSession->nss_forced_1x1;
|
||||
csr_join_req->dot11mode = (uint8_t)dot11mode;
|
||||
sme_debug("dot11mode=%d, uCfgDot11Mode=%d nss=%d",
|
||||
csr_join_req->dot11mode,
|
||||
pSession->bssParams.uCfgDot11Mode,
|
||||
csr_join_req->nss);
|
||||
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
||||
csr_join_req->cc_switch_mode =
|
||||
mac->roam.configParam.cc_switch_mode;
|
||||
@@ -15494,9 +15437,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
||||
csr_join_req->cbMode = (uint8_t) pSession->bssParams.cbMode;
|
||||
csr_join_req->force_24ghz_in_ht20 =
|
||||
pProfile->force_24ghz_in_ht20;
|
||||
sme_debug("CSR PERSONA: %d CSR CbMode: %d force 24gh ht20 %d",
|
||||
pProfile->csrPersona, pSession->bssParams.cbMode,
|
||||
csr_join_req->force_24ghz_in_ht20);
|
||||
pSession->uapsd_mask = pProfile->uapsd_mask;
|
||||
status =
|
||||
csr_get_rate_set(mac, pProfile,
|
||||
@@ -16091,7 +16031,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
||||
}
|
||||
|
||||
if (pProfile->csrPersona == QDF_STA_MODE) {
|
||||
sme_debug("Invoking packetdump register API");
|
||||
wlan_register_txrx_packetdump(OL_TXRX_PDEV_ID);
|
||||
packetdump_timer_status = qdf_mc_timer_start(
|
||||
&mac->roam.packetdump_timer,
|
||||
@@ -16106,8 +16045,6 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
||||
if (eWNI_SME_JOIN_REQ == messageType) {
|
||||
/* Notify QoS module that join happening */
|
||||
pSession->join_bssid_count++;
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"BSSID Count: %d", pSession->join_bssid_count);
|
||||
sme_qos_csr_event_ind(mac, (uint8_t) sessionId,
|
||||
SME_QOS_CSR_JOIN_REQ, NULL);
|
||||
} else if (eWNI_SME_REASSOC_REQ == messageType)
|
||||
|
@@ -1557,7 +1557,6 @@ uint32_t csr_translate_to_wni_cfg_dot11_mode(struct mac_context *mac,
|
||||
|
||||
switch (csrDot11Mode) {
|
||||
case eCSR_CFG_DOT11_MODE_AUTO:
|
||||
sme_debug("eCSR_CFG_DOT11_MODE_AUTO");
|
||||
if (IS_FEATURE_SUPPORTED_BY_FW(DOT11AX))
|
||||
ret = MLME_DOT11_MODE_11AX;
|
||||
else if (IS_FEATURE_SUPPORTED_BY_FW(DOT11AC))
|
||||
|
@@ -897,9 +897,7 @@ QDF_STATUS sme_qos_csr_event_ind(struct mac_context *mac,
|
||||
{
|
||||
QDF_STATUS status = QDF_STATUS_E_FAILURE;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: %d: On Session %d Event %d received from CSR",
|
||||
__func__, __LINE__, sessionId, ind);
|
||||
sme_debug("On Session %d Event %d received from CSR", sessionId, ind);
|
||||
switch (ind) {
|
||||
case SME_QOS_CSR_ASSOC_COMPLETE:
|
||||
/* expecting assoc info in pEvent_info */
|
||||
@@ -957,14 +955,11 @@ QDF_STATUS sme_qos_csr_event_ind(struct mac_context *mac,
|
||||
break;
|
||||
default:
|
||||
/* Err msg */
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: %d: On Session %d Unknown Event %d received from CSR",
|
||||
__func__, __LINE__, sessionId, ind);
|
||||
sme_err("On Session %d Unknown Event %d received from CSR",
|
||||
sessionId, ind);
|
||||
break;
|
||||
}
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: %d: On Session %d processed Event %d with status %d",
|
||||
__func__, __LINE__, sessionId, ind, status);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -4966,20 +4961,14 @@ static QDF_STATUS sme_qos_process_join_req_ev(struct mac_context *mac, uint8_t
|
||||
struct sme_qos_sessioninfo *pSession;
|
||||
enum qca_wlan_ac_type ac;
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: %d: invoked on session %d",
|
||||
__func__, __LINE__, sessionId);
|
||||
pSession = &sme_qos_cb.sessionInfo[sessionId];
|
||||
if (pSession->handoffRequested) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: %d: no need for state transition, should already be in handoff state",
|
||||
__func__, __LINE__);
|
||||
sme_debug("No need for state transition, should already be in handoff state");
|
||||
if ((pSession->ac_info[0].curr_state != SME_QOS_HANDOFF) ||
|
||||
(pSession->ac_info[1].curr_state != SME_QOS_HANDOFF) ||
|
||||
(pSession->ac_info[2].curr_state != SME_QOS_HANDOFF) ||
|
||||
(pSession->ac_info[3].curr_state != SME_QOS_HANDOFF))
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("curr_state is not HANDOFF, session %d"),
|
||||
sme_err("curr_state is not HANDOFF, session %d",
|
||||
sessionId);
|
||||
/* buffer the existing flows to be renewed after handoff is
|
||||
* done
|
||||
@@ -5831,10 +5820,10 @@ static void sme_qos_state_transition(uint8_t sessionId,
|
||||
pACInfo = &pSession->ac_info[ac];
|
||||
pACInfo->prev_state = pACInfo->curr_state;
|
||||
pACInfo->curr_state = new_state;
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: %d: On session %d new state=%d, old state=%d, for AC=%d",
|
||||
__func__, __LINE__,
|
||||
sessionId, pACInfo->curr_state, pACInfo->prev_state, ac);
|
||||
if (pACInfo->curr_state != pACInfo->prev_state)
|
||||
sme_debug("On session %d new %d old %d, for AC %d",
|
||||
sessionId, pACInfo->curr_state,
|
||||
pACInfo->prev_state, ac);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -108,10 +108,9 @@ void hdd_notify_teardown_tdls_links(struct wlan_objmgr_psoc *psoc)
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
||||
vdev = ucfg_get_tdls_vdev(psoc, WLAN_OSIF_ID);
|
||||
if (!vdev) {
|
||||
osif_debug("Unable to get the vdev");
|
||||
if (!vdev)
|
||||
return;
|
||||
}
|
||||
|
||||
osif_priv = wlan_vdev_get_ospriv(vdev);
|
||||
|
||||
if (!osif_priv || !osif_priv->osif_tdls) {
|
||||
|
在新工单中引用
屏蔽一个用户