diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index ff60a3b74c67..f71e88ccdc10 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -7717,6 +7717,27 @@ struct wmi_roam_deauth_trigger_data { uint32_t reason; }; +/** + * struct wmi_roam_wtc_btm_trigger_data - wtc btm roaming trigger related + * parameters + * @roaming_mode: Roaming Mode + * @vsie_trigger_reason: Roam trigger reason present in btm request + * @sub_code: Sub code present in btm request + * @wtc_mode: WTC mode + * @wtc_scan_mode: WTC scan mode + * @wtc_rssi_th: Connected AP threshold + * @wtc_candi_rssi_th: Candidate AP threshold + */ +struct wmi_roam_wtc_btm_trigger_data { + uint32_t roaming_mode; + uint32_t vsie_trigger_reason; + uint32_t sub_code; + uint32_t wtc_mode; + uint32_t wtc_scan_mode; + uint32_t wtc_rssi_th; + uint32_t wtc_candi_rssi_th; +}; + /** * struct wmi_roam_candidate_info - Roam scan candidate APs related info * @timestamp: Host timestamp in millisecs @@ -7808,6 +7829,7 @@ struct wmi_neighbor_report_data { * @cu_trig_data: BSS Load roam trigger parameters. * @rssi_trig_data: RSSI trigger related info. * @deauth_trig_data: Deauth roam trigger related info + * @wtc_btm_trig_data: WTC BTM roam trigger related info */ struct wmi_roam_trigger_info { bool present; @@ -7820,6 +7842,7 @@ struct wmi_roam_trigger_info { struct wmi_roam_cu_trigger_data cu_trig_data; struct wmi_roam_rssi_trigger_data rssi_trig_data; struct wmi_roam_deauth_trigger_data deauth_trig_data; + struct wmi_roam_wtc_btm_trigger_data wtc_btm_trig_data; }; }; diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index d443bb978eaa..7a98a6281f4a 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -13845,6 +13845,22 @@ extract_roam_trigger_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf, trig->rssi_trig_data.threshold = src_data->roam_rssi_threshold; return QDF_STATUS_SUCCESS; + case WMI_ROAM_TRIGGER_REASON_WTC_BTM: + trig->wtc_btm_trig_data.roaming_mode = + src_data->vendor_specific1[0]; + trig->wtc_btm_trig_data.vsie_trigger_reason = + src_data->vendor_specific1[1]; + trig->wtc_btm_trig_data.sub_code = + src_data->vendor_specific1[2]; + trig->wtc_btm_trig_data.wtc_mode = + src_data->vendor_specific1[3]; + trig->wtc_btm_trig_data.wtc_scan_mode = + src_data->vendor_specific1[4]; + trig->wtc_btm_trig_data.wtc_rssi_th = + src_data->vendor_specific1[5]; + trig->wtc_btm_trig_data.wtc_candi_rssi_th = + src_data->vendor_specific1[6]; + return QDF_STATUS_SUCCESS; default: return QDF_STATUS_SUCCESS; }