diff --git a/components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c b/components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c index 80ab090981..50435c17db 100644 --- a/components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c +++ b/components/umac/mlme/connection_mgr/core/src/wlan_cm_vdev_connect.c @@ -70,6 +70,8 @@ void cm_update_hlp_info(struct wlan_objmgr_vdev *vdev, qdf_mem_copy(mlme_priv->connect_info.hlp_ie + mlme_priv->connect_info.hlp_ie_len, gen_ie, len); mlme_priv->connect_info.hlp_ie_len += len; + mlme_debug("hlp_ie_len %d len %d", mlme_priv->connect_info.hlp_ie_len, + len); } #endif @@ -842,14 +844,32 @@ QDF_STATUS wlan_cm_send_connect_rsp(struct scheduler_msg *msg) return status; } +#define FILS_HLP_OUI_TYPE "\x5" +#define FILS_HLP_OUI_LEN 1 + static void cm_update_hlp_data_from_assoc_ie(struct wlan_objmgr_vdev *vdev, struct wlan_cm_vdev_connect_req *req) { - /* - * loop through req->assoc IE and fill hld date from - * DOT11F_EID_FRAGMENT_IE and SIR_FILS_HLP_EXT_EID - */ + const uint8_t *hlp_ext_ie; + const uint8_t *fragment_ie; + + /* clear hlp IE */ + cm_update_hlp_info(vdev, NULL, 0, true); + + hlp_ext_ie = wlan_get_ext_ie_ptr_from_ext_id(FILS_HLP_OUI_TYPE, + FILS_HLP_OUI_LEN, + req->assoc_ie.ptr, + req->assoc_ie.len); + if (hlp_ext_ie) + cm_update_hlp_info(vdev, hlp_ext_ie, hlp_ext_ie[1] + 2, false); + + fragment_ie = wlan_get_ie_ptr_from_eid(DOT11F_EID_FRAGMENT_IE, + req->assoc_ie.ptr, + req->assoc_ie.len); + if (fragment_ie) + cm_update_hlp_info(vdev, fragment_ie, + fragment_ie[1] + 2, false); } QDF_STATUS diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c index 87fc1b1435..ca8a08e7d7 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c @@ -714,6 +714,10 @@ static void lim_process_mlm_auth_req(struct mac_context *mac_ctx, uint32_t *msg) * Unexpected auth request. * Return Auth confirm with Invalid parameters code. */ + pe_err("Auth req not expected is_privacy_enabled %d is_auth_open_system %d auth type %d", + mac_ctx->mlme_cfg->wep_params.is_privacy_enabled, + mac_ctx->mlme_cfg->wep_params.is_auth_open_system, + mac_ctx->lim.gpLimMlmAuthReq->authType); mlm_auth_cnf.resultCode = eSIR_SME_INVALID_PARAMETERS; goto end; } diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 0ede6d16e3..a0c39db79a 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -3136,7 +3136,7 @@ static void lim_fill_crypto_params(struct mac_context *mac_ctx, privacy = true; rsn_enabled = false; } else if (QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_TKIP) || - QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_AES_CMAC) || + QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_AES_CCM) || QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_AES_OCB) || QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_AES_CCM_256) || @@ -3155,6 +3155,9 @@ static void lim_fill_crypto_params(struct mac_context *mac_ctx, mac_ctx->mlme_cfg->feature_flags.enable_rsn = rsn_enabled; mac_ctx->mlme_cfg->wep_params.is_privacy_enabled = privacy; mac_ctx->mlme_cfg->wep_params.wep_default_key_id = 0; + pe_debug("rsn_enabled %d privacy %d ucast_cipher %x auth_mode %x akm %x auth_type %d", + rsn_enabled, privacy, ucast_cipher, auth_mode, akm, + mac_ctx->mlme_cfg->wep_params.auth_type); session->encryptType = lim_get_encrypt_ed_type(ucast_cipher); session->connected_akm = lim_get_connected_akm(session, ucast_cipher, auth_mode, akm);