qcacld-3.0: Add additional debugs for roam scan offload commands

Add additional debugs in wmi for roam scan offload mode command
TLVs.
Also add changes to fill scan parameters for Roam scan offload
mode command start scan fixed param.

Change-Id: I9610d54a1f331c5f9910d44b11c5841e034036b8
CRs-Fixed: 2770713
This commit is contained in:
Pragaspathi Thilagaraj
2020-09-03 19:52:30 +05:30
committed by snandini
parent 88bb348b43
commit 86c2433d79
3 changed files with 268 additions and 52 deletions

View File

@@ -1946,6 +1946,10 @@ static uint8_t *wmi_add_fils_tlv(wmi_unified_t wmi_handle,
erp_info->realm_len);
buf_ptr += sizeof(*fils_tlv);
wmi_debug("RSO_CONFIG: ERP: usrname_len:%d next_erp_seq_num:%d rRk_len:%d rIk_len:%d realm_len:%d",
erp_info->username_length, erp_info->next_erp_seq_num,
erp_info->rRk_length, erp_info->rIk_length,
erp_info->realm_len);
return buf_ptr;
}
#else
@@ -2045,6 +2049,17 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf,
src_lfr3_params->rct_validity_timer;
roam_offload_params->roam_to_current_bss_disable =
src_lfr3_params->disable_self_roam;
wmi_debug("RSO_CFG: prefer_5g:%d rssi_cat_gap:%d select_5g_margin:%d ho_delay:%d max_sw_retry:%d no_ack_timeout:%d",
roam_offload_params->prefer_5g,
roam_offload_params->rssi_cat_gap,
roam_offload_params->select_5g_margin,
roam_offload_params->handoff_delay_for_rx,
roam_offload_params->max_mlme_sw_retries,
roam_offload_params->no_ack_timeout);
wmi_debug("RSO_CFG: reassoc_fail_timeout:%d rct_validity_time:%d disable_self_roam:%d",
roam_offload_params->reassoc_failure_timeout,
roam_offload_params->roam_candidate_validity_time,
roam_offload_params->roam_to_current_bss_disable);
/* Fill the capabilities */
roam_offload_params->capability = src_lfr3_caps->capability;
@@ -2059,6 +2074,15 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf,
qdf_mem_copy((uint8_t *)roam_offload_params->mcsset,
(uint8_t *)src_lfr3_caps->mcsset,
ROAM_OFFLOAD_NUM_MCS_SET);
wmi_debug("RSO_CFG: capability:0x%x ht_caps:0x%x ampdu_param:0%x ht_ext_cap:0x%x ht_txbf:0x%x asel_cap:0x%x qos_caps:0x%x qos_en:%d wmm_caps:0x%x",
roam_offload_params->capability,
roam_offload_params->ht_caps_info,
roam_offload_params->ampdu_param,
roam_offload_params->ht_ext_cap,
roam_offload_params->ht_txbf, roam_offload_params->asel_cap,
roam_offload_params->qos_caps,
roam_offload_params->qos_enabled,
roam_offload_params->wmm_caps);
buf += sizeof(wmi_roam_offload_tlv_param);
/*
@@ -2141,25 +2165,10 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf,
WMITLV_SET_HDR(buf, WMITLV_TAG_ARRAY_STRUC, 0);
buf += WMI_TLV_HDR_SIZE;
wmi_debug("vdev[%d] 11r TLV psk_msk_len = %d psk_msk_ext:%d",
wmi_debug("RSO_CFG: vdev[%d] 11r TLV psk_msk_len = %d psk_msk_ext:%d",
roam_req->vdev_id,
roam_offload_11r->psk_msk_len,
roam_offload_11r->psk_msk_ext_len);
if (roam_offload_11r->psk_msk_len)
QDF_TRACE_HEX_DUMP(
QDF_MODULE_ID_WMI,
QDF_TRACE_LEVEL_DEBUG,
roam_offload_11r->psk_msk,
WLAN_MAX_PMK_DUMP_BYTES);
if (roam_offload_11r->psk_msk_ext_len)
QDF_TRACE_HEX_DUMP(
QDF_MODULE_ID_WMI,
QDF_TRACE_LEVEL_DEBUG,
roam_offload_11r->psk_msk_ext +
(roam_offload_11r->psk_msk_ext_len -
WLAN_MAX_PMK_DUMP_BYTES),
WLAN_MAX_PMK_DUMP_BYTES);
} else {
WMITLV_SET_HDR(buf, WMITLV_TAG_ARRAY_STRUC,
sizeof(wmi_roam_11i_offload_tlv_param));
@@ -2222,7 +2231,7 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf,
WMITLV_SET_HDR(buf, WMITLV_TAG_ARRAY_STRUC, 0);
buf += WMI_TLV_HDR_SIZE;
wmi_info("LFR3: vdev:%d pmk_len = %d pmksa caching:%d OKC:%d sae_same_pmk:%d key_mgmt_offload:%d",
wmi_info("RSO_CFG: vdev:%d pmk_len = %d pmksa caching:%d OKC:%d sae_same_pmk:%d key_mgmt_offload:%d",
roam_req->vdev_id, roam_offload_11i->pmk_len,
src_11i_info->fw_pmksa_cache,
src_11i_info->fw_okc,
@@ -2260,7 +2269,8 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf,
roundup(assoc_ies->buf_len, sizeof(uint32_t)));
buf += WMI_TLV_HDR_SIZE;
if (assoc_ies->buf_len != 0)
wmi_debug("RSO_CFG: assoc_ies len:%d", assoc_ies->buf_len);
if (assoc_ies->buf_len)
qdf_mem_copy(buf, roam_req->assoc_ie, assoc_ies->buf_len);
buf += qdf_roundup(assoc_ies->buf_len, sizeof(uint32_t));
@@ -2283,6 +2293,67 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf_ptr,
}
#endif
static QDF_STATUS
wmi_fill_rso_start_scan_tlv(struct wlan_roam_scan_offload_params *rso_req,
wmi_start_scan_cmd_fixed_param *scan_tlv)
{
struct wlan_roam_scan_params *src_scan_params;
src_scan_params = &rso_req->rso_scan_params;
qdf_mem_zero(scan_tlv, sizeof(*scan_tlv));
scan_tlv->scan_ctrl_flags = WMI_SCAN_ADD_CCK_RATES |
WMI_SCAN_ADD_OFDM_RATES |
WMI_SCAN_ADD_DS_IE_IN_PROBE_REQ;
if (rso_req->is_rso_stop) {
scan_tlv->dwell_time_active =
ROAM_SCAN_DWELL_TIME_ACTIVE_DEFAULT;
scan_tlv->dwell_time_passive =
ROAM_SCAN_DWELL_TIME_PASSIVE_DEFAULT;
scan_tlv->min_rest_time = ROAM_SCAN_MIN_REST_TIME_DEFAULT;
scan_tlv->max_rest_time = ROAM_SCAN_MAX_REST_TIME_DEFAULT;
scan_tlv->repeat_probe_time = 0;
scan_tlv->probe_spacing_time = 0;
scan_tlv->probe_delay = 0;
scan_tlv->max_scan_time = ROAM_SCAN_HW_DEF_SCAN_MAX_DURATION;
scan_tlv->idle_time = src_scan_params->min_rest_time;
scan_tlv->burst_duration = 0;
return QDF_STATUS_SUCCESS;
}
scan_tlv->dwell_time_active = src_scan_params->dwell_time_active;
scan_tlv->dwell_time_passive = src_scan_params->dwell_time_passive;
scan_tlv->burst_duration = src_scan_params->burst_duration;
scan_tlv->min_rest_time = src_scan_params->min_rest_time;
scan_tlv->max_rest_time = src_scan_params->max_rest_time;
scan_tlv->repeat_probe_time = src_scan_params->repeat_probe_time;
scan_tlv->probe_spacing_time = src_scan_params->probe_spacing_time;
scan_tlv->probe_delay = src_scan_params->probe_delay;
scan_tlv->max_scan_time = ROAM_SCAN_HW_DEF_SCAN_MAX_DURATION;
scan_tlv->idle_time = src_scan_params->idle_time;
scan_tlv->n_probes = src_scan_params->n_probes;
scan_tlv->scan_ctrl_flags |= src_scan_params->scan_ctrl_flags;
WMI_SCAN_SET_DWELL_MODE(scan_tlv->scan_ctrl_flags,
src_scan_params->rso_adaptive_dwell_mode);
/* Configure roaming scan behavior (DBS/Non-DBS scan) */
if (rso_req->roaming_scan_policy)
scan_tlv->scan_ctrl_flags_ext |=
WMI_SCAN_DBS_POLICY_FORCE_NONDBS;
else
scan_tlv->scan_ctrl_flags_ext |=
WMI_SCAN_DBS_POLICY_DEFAULT;
wmi_debug("RSO_CFG: dwell time: active %d passive %d, minrest %d max rest %d repeat probe time %d probe_spacing:%d",
scan_tlv->dwell_time_active, scan_tlv->dwell_time_passive,
scan_tlv->min_rest_time, scan_tlv->max_rest_time,
scan_tlv->repeat_probe_time, scan_tlv->probe_spacing_time);
return QDF_STATUS_SUCCESS;
}
/**
* send_roam_scan_offload_mode_cmd_tlv() - send roam scan mode request to fw
* @wmi_handle: wmi handle
@@ -2359,13 +2430,7 @@ send_roam_scan_offload_mode_cmd_tlv(
WMITLV_GET_STRUCT_TLVLEN(wmi_start_scan_cmd_fixed_param));
scan_cmd_fp = (wmi_start_scan_cmd_fixed_param *)buf_ptr;
/* Configure roaming scan behavior (DBS/Non-DBS scan) */
if (rso_req->roaming_scan_policy)
scan_cmd_fp->scan_ctrl_flags_ext |=
WMI_SCAN_DBS_POLICY_FORCE_NONDBS;
else
scan_cmd_fp->scan_ctrl_flags_ext |=
WMI_SCAN_DBS_POLICY_DEFAULT;
wmi_fill_rso_start_scan_tlv(rso_req, scan_cmd_fp);
/* Ensure there is no additional IEs */
scan_cmd_fp->ie_len = 0;