qcacld-3.0: Print BTM RSP and initial roam info in kmsg

The event WMI_ROAM_STATS_EVENTID is received after
every roam, once the roam synch complete is sent by the host.
This event contains details regarding the btm response.

This helps in debugging/understanding the scenario when roam
failure happens.

Print the info received related to btm rsp and roam initial
info into kmsg.

Change-Id: Icb2058eed5df3265018b3c53548d123f3a4faf4f
CRs-Fixed: 2728267
This commit is contained in:
Abhinav Kumar
2020-06-29 01:01:01 +05:30
committed by snandini
부모 9a80ee261b
커밋 87a292e54a
8개의 변경된 파일287개의 추가작업 그리고 2개의 파일을 삭제

파일 보기

@@ -29,6 +29,34 @@
#include "wlan_mlme_api.h"
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
/**
* wlan_cm_roam_extract_btm_response() - Extract BTM rsp stats
* @wmi: wmi handle
* @evt_buf: Pointer to the event buffer
* @dst: Pointer to destination structure to fill data
* @idx: TLV id
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_cm_roam_extract_btm_response(wmi_unified_t wmi, void *evt_buf,
struct roam_btm_response_data *dst,
uint8_t idx);
/**
* wlan_cm_roam_extract_roam_initial_info() - Extract Roam Initial stats
* @wmi: wmi handle
* @evt_buf: Pointer to the event buffer
* @dst: Pointer to destination structure to fill data
* @idx: TLV id
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_cm_roam_extract_roam_initial_info(wmi_unified_t wmi, void *evt_buf,
struct roam_initial_data *dst,
uint8_t idx);
/**
* wlan_cm_roam_activate_pcl_per_vdev - Set the PCL command to be sent per
* vdev instead of pdev.
@@ -114,5 +142,22 @@ static inline void
wlan_cm_dual_sta_roam_update_connect_channels(struct wlan_objmgr_psoc *psoc,
struct scan_filter *filter)
{}
static inline QDF_STATUS
wlan_cm_roam_extract_btm_response(wmi_unified_t wmi, void *evt_buf,
struct roam_btm_response_data *dst,
uint8_t idx)
{
return true;
}
static inline QDF_STATUS
wlan_cm_roam_extract_roam_initial_info(wmi_unified_t wmi, void *evt_buf,
struct roam_initial_data *dst,
uint8_t idx)
{
return true;
}
#endif /* FEATURE_ROAM_OFFLOAD */
#endif /* WLAN_CM_ROAM_API_H__ */

파일 보기

@@ -21,9 +21,10 @@
#ifndef CM_ROAM_PUBLIC_STRUCT_H__
#define CM_ROAM_PUBLIC_STRUCT_H__
#include "wlan_policy_mgr_public_struct.h"
#include "wlan_objmgr_cmn.h"
#include "reg_services_public_struct.h"
#include "wmi_unified_param.h"
#include "wmi_unified_sta_param.h"
#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
/**
@@ -49,6 +50,36 @@ enum roam_offload_state {
WLAN_ROAM_SYNCH_IN_PROG,
};
/**
* struct roam_btm_response_data - BTM response related data
* @present: Flag to check if the roam btm_rsp tlv is present
* @btm_status: Btm request status
* @target_bssid: AP MAC address
* @vsie_reason: Vsie_reason value
*/
struct roam_btm_response_data {
bool present;
uint32_t btm_status;
struct qdf_mac_addr target_bssid;
uint32_t vsie_reason;
};
/**
* struct roam_initial_data - Roam initial related data
* @present: Flag to check if the roam btm_rsp tlv is present
* @roam_full_scan_count: Roam full scan count
* @rssi_th: RSSI threhold
* @cu_th: Channel utilization threhold
* @fw_cancel_timer_bitmap: FW timers, which are getting cancelled
*/
struct roam_initial_data {
bool present;
uint32_t roam_full_scan_count;
uint32_t rssi_th;
uint32_t cu_th;
uint32_t fw_cancel_timer_bitmap;
};
/**
* enum wlan_cm_rso_control_requestor - Driver disabled roaming requestor that
* will request the roam module to disable roaming based on the mlme operation

파일 보기

@@ -24,8 +24,33 @@
#include "wlan_vdev_mlme_api.h"
#include "wlan_mlme_main.h"
#include "wlan_policy_mgr_api.h"
#include <wmi_unified_priv.h>
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
QDF_STATUS
wlan_cm_roam_extract_btm_response(wmi_unified_t wmi, void *evt_buf,
struct roam_btm_response_data *dst,
uint8_t idx)
{
if (wmi->ops->extract_roam_btm_response_stats)
return wmi->ops->extract_roam_btm_response_stats(wmi, evt_buf,
dst, idx);
return QDF_STATUS_E_FAILURE;
}
QDF_STATUS
wlan_cm_roam_extract_roam_initial_info(wmi_unified_t wmi, void *evt_buf,
struct roam_initial_data *dst,
uint8_t idx)
{
if (wmi->ops->extract_roam_initial_info)
return wmi->ops->extract_roam_initial_info(wmi, evt_buf,
dst, idx);
return QDF_STATUS_E_FAILURE;
}
void wlan_cm_roam_activate_pcl_per_vdev(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id, bool pcl_per_vdev)
{