summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Dhamdhere <ddhamdhe@codeaurora.org>2016-11-28 17:56:33 -0800
committerqcabuildsw <qcabuildsw@localhost>2016-12-06 12:26:23 -0800
commit7282f533774de1ab99a28f34ab5b96ba331e4f99 (patch)
tree7a2a929a883a01e43b5afe2a7d4a82e877af0862
parentaa8404efc98dd9389dc5a2d27e8f356452287c2e (diff)
qcacld-3.0: Do not send WEP keys to firmware after roaming
LFR module in firmware copies WEP keys from old AP to new AP during roaming. Host driver should not install 0 length keys during roam sync indication processing. Change-Id: I002be0ab330a7161ca2554d9d423e8e1b2170e55 CRs-Fixed: 1096918
-rw-r--r--core/sme/src/csr/csr_api_roam.c38
1 files changed, 14 insertions, 24 deletions
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 48bcc6bf6b87..c268abbf5c79 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -19440,7 +19440,6 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx,
tCsrRoamInfo *roam_info;
tCsrRoamConnectedProfile *conn_profile = NULL;
sme_QosAssocInfo assoc_info;
- struct qdf_mac_addr bcast_mac = QDF_MAC_ADDR_BROADCAST_INITIALIZER;
tpAddBssParams add_bss_params;
QDF_STATUS status = QDF_STATUS_SUCCESS;
uint16_t len;
@@ -19550,29 +19549,20 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx,
session->pCurRoamProfile->negotiatedAuthType,
bss_desc, ies_local);
roam_info->isESEAssoc = conn_profile->isESEAssoc;
- if (CSR_IS_ENC_TYPE_STATIC
- (session->pCurRoamProfile->negotiatedUCEncryptionType) &&
- !session->pCurRoamProfile->bWPSAssociation) {
- if (!QDF_IS_STATUS_SUCCESS(
- csr_roam_issue_set_context_req(mac_ctx,
- session_id,
- session->pCurRoamProfile->negotiatedUCEncryptionType,
- bss_desc,
- &(bss_desc->bssId),
- false, true,
- eSIR_TX_RX, 0, 0, NULL, 0))) {
- /* NO keys. these key parameters don't matter */
- sms_log(mac_ctx, LOGE,
- FL("Set context for unicast fail"));
- csr_roam_substate_change(mac_ctx,
- eCSR_ROAM_SUBSTATE_NONE, session_id);
- }
- csr_roam_issue_set_context_req(mac_ctx, session_id,
- session->pCurRoamProfile->negotiatedMCEncryptionType,
- bss_desc,
- &bcast_mac.bytes, false, false,
- eSIR_TX_RX, 0, 0, NULL, 0);
- }
+
+ /*
+ * Encryption keys for new connection are obtained as follows:
+ * authStatus = CSR_ROAM_AUTH_STATUS_AUTHENTICATED
+ * Open - No keys required.
+ * Static WEP - Firmware copies keys from old AP to new AP.
+ * Fast roaming authentications e.g. PSK, FT, CCKM - firmware
+ * supplicant obtains them through 4-way handshake.
+ *
+ * authStatus = CSR_ROAM_AUTH_STATUS_CONNECTED
+ * All other authentications - Host supplicant performs EAPOL
+ * with AP after this point and sends new keys to the driver.
+ * Driver starts wait_for_key timer for that purpose.
+ */
if ((roam_synch_data->authStatus
== CSR_ROAM_AUTH_STATUS_AUTHENTICATED)) {
QDF_TRACE(QDF_MODULE_ID_SME,