qcacld-3.0: Add chipset stats for deauth evt
Add chipset stats for deauth event when roam is trgiggered due to deauth frame from AP Change-Id: I21125d1fde5805a3893ff8d0f9ec2be49082f994 CRs-Fixed: 3804975
This commit is contained in:

committed by
Ravindra Konda

parent
5e55c17777
commit
5a4b009a56
@@ -3758,9 +3758,63 @@ mlme_cm_alloc_roam_stats_info(struct vdev_mlme_obj *vdev_mlme)
|
|||||||
qdf_mutex_create(&vdev_mlme->ext_vdev_ptr->roam_rd_wr_lock);
|
qdf_mutex_create(&vdev_mlme->ext_vdev_ptr->roam_rd_wr_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WLAN_CHIPSET_STATS
|
||||||
|
static void
|
||||||
|
cm_cp_stats_cstats_log_deauth_evt(struct wlan_objmgr_vdev *vdev,
|
||||||
|
enum cstats_dir dir, uint16_t reason_code)
|
||||||
|
{
|
||||||
|
struct cstats_deauth_mgmt_frm stat = {0};
|
||||||
|
|
||||||
|
stat.cmn.hdr.evt_id = WLAN_CHIPSET_STATS_MGMT_DEAUTH_EVENT_ID;
|
||||||
|
stat.cmn.hdr.length = sizeof(struct cstats_deauth_mgmt_frm) -
|
||||||
|
sizeof(struct cstats_hdr);
|
||||||
|
stat.cmn.opmode = wlan_vdev_mlme_get_opmode(vdev);
|
||||||
|
stat.cmn.vdev_id = wlan_vdev_get_id(vdev);
|
||||||
|
stat.cmn.timestamp_us = qdf_get_time_of_the_day_us();
|
||||||
|
stat.cmn.time_tick = qdf_get_log_timestamp();
|
||||||
|
|
||||||
|
stat.reason = reason_code;
|
||||||
|
stat.direction = dir;
|
||||||
|
|
||||||
|
wlan_cstats_host_stats(sizeof(struct cstats_deauth_mgmt_frm), &stat);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
cm_cp_stats_cstats_log_disassoc_evt(struct wlan_objmgr_vdev *vdev,
|
||||||
|
enum cstats_dir dir, uint16_t reason_code)
|
||||||
|
{
|
||||||
|
struct cstats_disassoc_mgmt_frm stat = {0};
|
||||||
|
|
||||||
|
stat.cmn.hdr.evt_id = WLAN_CHIPSET_STATS_MGMT_DISASSOC_EVENT_ID;
|
||||||
|
stat.cmn.hdr.length = sizeof(struct cstats_disassoc_mgmt_frm) -
|
||||||
|
sizeof(struct cstats_hdr);
|
||||||
|
stat.cmn.opmode = wlan_vdev_mlme_get_opmode(vdev);
|
||||||
|
stat.cmn.vdev_id = wlan_vdev_get_id(vdev);
|
||||||
|
stat.cmn.timestamp_us = qdf_get_time_of_the_day_us();
|
||||||
|
stat.cmn.time_tick = qdf_get_log_timestamp();
|
||||||
|
|
||||||
|
stat.reason = reason_code;
|
||||||
|
stat.direction = dir;
|
||||||
|
|
||||||
|
wlan_cstats_host_stats(sizeof(struct cstats_disassoc_mgmt_frm), &stat);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void
|
||||||
|
cm_cp_stats_cstats_log_deauth_evt(struct wlan_objmgr_vdev *vdev,
|
||||||
|
enum cstats_dir dir, uint16_t reason_code)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
cm_cp_stats_cstats_log_disassoc_evt(struct wlan_objmgr_vdev *vdev,
|
||||||
|
enum cstats_dir dir, uint16_t reason_code)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* WLAN_CHIPSET_STATS */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_cm_update_roam_trigger_info() - API to update roam trigger info
|
* wlan_cm_update_roam_trigger_info() - API to update roam trigger info
|
||||||
* @mlme_priv: Pointer to vdev mlme legacy priv struct
|
* @vdev: Pointer to vdev object
|
||||||
* @data: Data from target_if wmi event
|
* @data: Data from target_if wmi event
|
||||||
*
|
*
|
||||||
* Get roam trigger info from target_if wmi event and save in vdev mlme ring
|
* Get roam trigger info from target_if wmi event and save in vdev mlme ring
|
||||||
@@ -3770,12 +3824,13 @@ mlme_cm_alloc_roam_stats_info(struct vdev_mlme_obj *vdev_mlme)
|
|||||||
* Return: void
|
* Return: void
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
wlan_cm_update_roam_trigger_info(struct mlme_legacy_priv *mlme_priv,
|
wlan_cm_update_roam_trigger_info(struct wlan_objmgr_vdev *vdev,
|
||||||
struct wmi_roam_trigger_info *data)
|
struct wmi_roam_trigger_info *data)
|
||||||
{
|
{
|
||||||
uint32_t trigger_reason;
|
uint32_t trigger_reason;
|
||||||
uint32_t index;
|
uint32_t index;
|
||||||
struct enhance_roam_info *info;
|
struct enhance_roam_info *info;
|
||||||
|
struct mlme_legacy_priv *mlme_priv = wlan_vdev_mlme_get_ext_hdl(vdev);
|
||||||
|
|
||||||
index = mlme_priv->roam_write_index;
|
index = mlme_priv->roam_write_index;
|
||||||
info = &mlme_priv->roam_info[index];
|
info = &mlme_priv->roam_info[index];
|
||||||
@@ -3909,6 +3964,15 @@ wlan_cm_update_roam_trigger_info(struct mlme_legacy_priv *mlme_priv,
|
|||||||
mlme_debug("roam disconnection: type:%u reason:%u",
|
mlme_debug("roam disconnection: type:%u reason:%u",
|
||||||
data->deauth_trig_data.type,
|
data->deauth_trig_data.type,
|
||||||
data->deauth_trig_data.reason);
|
data->deauth_trig_data.reason);
|
||||||
|
if (data->deauth_trig_data.type == 1) {
|
||||||
|
cm_cp_stats_cstats_log_deauth_evt(
|
||||||
|
vdev, CSTATS_DIR_RX,
|
||||||
|
data->deauth_trig_data.reason);
|
||||||
|
} else if (data->deauth_trig_data.type == 2) {
|
||||||
|
cm_cp_stats_cstats_log_disassoc_evt(
|
||||||
|
vdev, CSTATS_DIR_RX,
|
||||||
|
data->deauth_trig_data.reason);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ROAM_TRIGGER_REASON_STA_KICKOUT:
|
case ROAM_TRIGGER_REASON_STA_KICKOUT:
|
||||||
info->trigger.condition.roam_tx_failures.kickout_threshold =
|
info->trigger.condition.roam_tx_failures.kickout_threshold =
|
||||||
@@ -4261,7 +4325,7 @@ wlan_cm_update_roam_stats_info(struct wlan_objmgr_psoc *psoc,
|
|||||||
|
|
||||||
if (stats_info->trigger[index].present) {
|
if (stats_info->trigger[index].present) {
|
||||||
wlan_cm_clear_current_roam_stats_info(mlme_priv);
|
wlan_cm_clear_current_roam_stats_info(mlme_priv);
|
||||||
wlan_cm_update_roam_trigger_info(mlme_priv,
|
wlan_cm_update_roam_trigger_info(vdev,
|
||||||
&stats_info->trigger[index]);
|
&stats_info->trigger[index]);
|
||||||
if (stats_info->scan[index].present)
|
if (stats_info->scan[index].present)
|
||||||
wlan_cm_update_roam_scan_info(vdev,
|
wlan_cm_update_roam_scan_info(vdev,
|
||||||
@@ -4479,7 +4543,6 @@ static void cm_cp_stats_cstats_roam_result(struct wlan_objmgr_vdev *vdev,
|
|||||||
|
|
||||||
wlan_cstats_host_stats(sizeof(struct cstats_sta_roam_result), &stat);
|
wlan_cstats_host_stats(sizeof(struct cstats_sta_roam_result), &stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline void
|
static inline void
|
||||||
cm_cp_stats_cstats_roam_scan_start(struct wlan_objmgr_vdev *vdev,
|
cm_cp_stats_cstats_roam_scan_start(struct wlan_objmgr_vdev *vdev,
|
||||||
|
Reference in New Issue
Block a user