diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 022b12fc0674..2d6e8acc4003 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -285,9 +285,76 @@ static inline void wma_roam_scan_fill_fils_params( { } #endif +/** + * wma_roam_scan_offload_set_params() - Set roam scan offload params + * @wma_handle: pointer to wma context + * @params: pointer to roam scan offload params + * @roam_req: roam request param + * + * Get roam scan offload parameters from roam req and prepare to fill + * WMI_ROAM_SCAN_MODE TLV + * + * Return: None + */ +#ifdef WLAN_FEATURE_ROAM_OFFLOAD +static void wma_roam_scan_offload_set_params( + tp_wma_handle wma_handle, + struct roam_offload_scan_params *params, + tSirRoamOffloadScanReq *roam_req) +{ + params->auth_mode = WMI_AUTH_NONE; + if (!roam_req) + return; + params->auth_mode = e_csr_auth_type_to_rsn_authmode + (roam_req->ConnectedNetwork.authentication, + roam_req->ConnectedNetwork.encryption); + WMA_LOGD("%s : auth mode = %d", __func__, params->auth_mode); + + params->roam_offload_enabled = roam_req->RoamOffloadEnabled; + params->roam_offload_params.ho_delay_for_rx = + roam_req->ho_delay_for_rx; + params->roam_offload_params.roam_preauth_retry_count = + roam_req->roam_preauth_retry_count; + params->roam_offload_params.roam_preauth_no_ack_timeout = + roam_req->roam_preauth_no_ack_timeout; + params->prefer_5ghz = roam_req->Prefer5GHz; + params->roam_rssi_cat_gap = roam_req->RoamRssiCatGap; + params->select_5ghz_margin = roam_req->Select5GHzMargin; + params->reassoc_failure_timeout = + roam_req->ReassocFailureTimeout; + params->rokh_id_length = roam_req->R0KH_ID_Length; + qdf_mem_copy(params->rokh_id, roam_req->R0KH_ID, + WMI_ROAM_R0KH_ID_MAX_LEN); + qdf_mem_copy(params->krk, roam_req->KRK, WMI_KRK_KEY_LEN); + qdf_mem_copy(params->btk, roam_req->BTK, WMI_BTK_KEY_LEN); + qdf_mem_copy(params->psk_pmk, roam_req->PSK_PMK, + WMI_ROAM_SCAN_PSK_SIZE); + params->pmk_len = roam_req->pmk_len; + params->roam_key_mgmt_offload_enabled = + roam_req->RoamKeyMgmtOffloadEnabled; + wma_roam_scan_fill_self_caps(wma_handle, + ¶ms->roam_offload_params, roam_req); + params->fw_okc = roam_req->pmkid_modes.fw_okc; + params->fw_pmksa_cache = roam_req->pmkid_modes.fw_pmksa_cache; + WMA_LOGD(FL("qos_caps: %d, qos_enabled: %d, ho_delay_for_rx: %d, roam_scan_mode: %d"), + params->roam_offload_params.qos_caps, + params->roam_offload_params.qos_enabled, + params->roam_offload_params.ho_delay_for_rx, params->mode); + WMA_LOGD(FL("roam_preauth_retry_count: %d, roam_preauth_no_ack_timeout: %d"), + params->roam_offload_params.roam_preauth_retry_count, + params->roam_offload_params.roam_preauth_no_ack_timeout); +} +#else +static void wma_roam_scan_offload_set_params( + tp_wma_handle wma_handle, + struct roam_offload_scan_params *params, + tSirRoamOffloadScanReq *roam_req) +{} +#endif + /** * wma_roam_scan_offload_mode() - send roam scan mode request to fw - * @wma_handle: wma handle + * @wma_handle: pointer to wma context * @scan_cmd_fp: start scan command ptr * @roam_req: roam request param * @mode: mode @@ -311,48 +378,11 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle, if (!params) return QDF_STATUS_E_NOMEM; -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - params->auth_mode = WMI_AUTH_NONE; - if (roam_req) - params->auth_mode = e_csr_auth_type_to_rsn_authmode - (roam_req->ConnectedNetwork.authentication, - roam_req->ConnectedNetwork.encryption); - WMA_LOGD("%s : auth mode = %d", __func__, params->auth_mode); -#endif /* WLAN_FEATURE_ROAM_OFFLOAD */ - params->is_roam_req_valid = 0; params->mode = mode; params->vdev_id = vdev_id; if (roam_req) { params->is_roam_req_valid = 1; -#ifdef WLAN_FEATURE_ROAM_OFFLOAD - params->roam_offload_enabled = roam_req->RoamOffloadEnabled; - params->roam_offload_params.ho_delay_for_rx = - roam_req->ho_delay_for_rx; - params->roam_offload_params.roam_preauth_retry_count = - roam_req->roam_preauth_retry_count; - params->roam_offload_params.roam_preauth_no_ack_timeout = - roam_req->roam_preauth_no_ack_timeout; - params->prefer_5ghz = roam_req->Prefer5GHz; - params->roam_rssi_cat_gap = roam_req->RoamRssiCatGap; - params->select_5ghz_margin = roam_req->Select5GHzMargin; - params->reassoc_failure_timeout = - roam_req->ReassocFailureTimeout; - params->rokh_id_length = roam_req->R0KH_ID_Length; - qdf_mem_copy(params->rokh_id, roam_req->R0KH_ID, - WMI_ROAM_R0KH_ID_MAX_LEN); - qdf_mem_copy(params->krk, roam_req->KRK, WMI_KRK_KEY_LEN); - qdf_mem_copy(params->btk, roam_req->BTK, WMI_BTK_KEY_LEN); - qdf_mem_copy(params->psk_pmk, roam_req->PSK_PMK, - WMI_ROAM_SCAN_PSK_SIZE); - params->pmk_len = roam_req->pmk_len; - params->roam_key_mgmt_offload_enabled = - roam_req->RoamKeyMgmtOffloadEnabled; - wma_roam_scan_fill_self_caps(wma_handle, - ¶ms->roam_offload_params, roam_req); - params->fw_okc = roam_req->pmkid_modes.fw_okc; - params->fw_pmksa_cache = roam_req->pmkid_modes.fw_pmksa_cache; -#endif params->min_delay_btw_roam_scans = roam_req->min_delay_btw_roam_scans; params->roam_trigger_reason_bitmask = @@ -367,19 +397,14 @@ QDF_STATUS wma_roam_scan_offload_mode(tp_wma_handle wma_handle, wma_roam_scan_fill_fils_params(wma_handle, params, roam_req); } - - WMA_LOGD(FL("qos_caps: %d, qos_enabled: %d, ho_delay_for_rx: %d, roam_scan_mode: %d"), - params->roam_offload_params.qos_caps, - params->roam_offload_params.qos_enabled, - params->roam_offload_params.ho_delay_for_rx, params->mode); - WMA_LOGD(FL("min_delay_btw_roam_scans:%d, roam_tri_reason_bitmask:%d"), params->min_delay_btw_roam_scans, params->roam_trigger_reason_bitmask); - WMA_LOGD(FL("roam_preauth_retry_count: %d, roam_preauth_no_ack_timeout: %d"), - params->roam_offload_params.roam_preauth_retry_count, - params->roam_offload_params.roam_preauth_no_ack_timeout); + wma_roam_scan_offload_set_params( + wma_handle, + params, + roam_req); status = wmi_unified_roam_scan_offload_mode_cmd(wma_handle->wmi_handle, scan_cmd_fp, params);