mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
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:
parent
88bb348b43
commit
86c2433d79
3 changed files with 268 additions and 52 deletions
|
|
@ -693,6 +693,7 @@ struct wlan_roam_fils_params {
|
|||
* @n_probes: Max number of probes to be sent
|
||||
* @scan_ctrl_flags: Scan control flags
|
||||
* @scan_ctrl_flags_ext: Scan control flags extended
|
||||
* @rso_adaptive_dwell_mode: Adaptive dwell mode
|
||||
* @num_chan: number of channels
|
||||
* @num_bssid: number of bssids in tlv bssid_list[]
|
||||
* @ie_len: number of bytes in ie data. In the TLV ie_data[]
|
||||
|
|
@ -716,6 +717,7 @@ struct wlan_roam_scan_params {
|
|||
uint32_t n_probes;
|
||||
uint32_t scan_ctrl_flags;
|
||||
uint32_t scan_ctrl_flags_ext;
|
||||
enum scan_dwelltime_adaptive_mode rso_adaptive_dwell_mode;
|
||||
uint32_t num_chan;
|
||||
uint32_t num_bssid;
|
||||
uint32_t ie_len;
|
||||
|
|
@ -853,12 +855,20 @@ struct wlan_rso_ese_params {
|
|||
};
|
||||
#endif
|
||||
|
||||
#define ROAM_SCAN_DWELL_TIME_ACTIVE_DEFAULT (100)
|
||||
#define ROAM_SCAN_DWELL_TIME_PASSIVE_DEFAULT (110)
|
||||
#define ROAM_SCAN_MIN_REST_TIME_DEFAULT (50)
|
||||
#define ROAM_SCAN_MAX_REST_TIME_DEFAULT (500)
|
||||
#define ROAM_SCAN_HW_DEF_SCAN_MAX_DURATION 30000 /* 30 secs */
|
||||
#define ROAM_SCAN_CHANNEL_SWITCH_TIME (4)
|
||||
|
||||
/**
|
||||
* struct roam_offload_scan_params - structure containing roaming offload scan
|
||||
* parameters to be filled over WMI_ROAM_SCAN_MODE command.
|
||||
* @vdev_id: vdev id
|
||||
* @is_rso_stop: flag to tell whether roam req is valid or NULL
|
||||
* @rso_mode_info: Roam scan mode related parameters
|
||||
* @rso_scan_params: Roam scan offload scan start params
|
||||
* @scan_params: Roaming scan related parameters
|
||||
* @assoc_ie_length: Assoc IE length
|
||||
* @assoc_ie: Assoc IE buffer
|
||||
|
|
@ -878,6 +888,7 @@ struct wlan_roam_scan_offload_params {
|
|||
/* Parameters common for LFR-3.0 and LFR-2.0 */
|
||||
bool roaming_scan_policy;
|
||||
struct wlan_roam_scan_mode_params rso_mode_info;
|
||||
struct wlan_roam_scan_params rso_scan_params;
|
||||
uint32_t assoc_ie_length;
|
||||
uint8_t assoc_ie[MAX_ASSOC_IE_LENGTH];
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue