فهرست منبع

qcacmn: Add MLO support for roam_scan_stats_tlv

Modify roam_scan_stats_tlv and roam_scan_ap_stats_tlv
to introduce mlo specific elements for Roam scan start
and Roam candidate ap logging.

Change-Id: I8e72abc3b888614faf533fd8086cf73a29c26f85
CRs-Fixed: 3582433
Vijay Raj 1 سال پیش
والد
کامیت
489ba59cfe
2فایلهای تغییر یافته به همراه11 افزوده شده و 0 حذف شده
  1. 6 0
      wmi/inc/wmi_unified_param.h
  2. 5 0
      wmi/src/wmi_unified_tlv.c

+ 6 - 0
wmi/inc/wmi_unified_param.h

@@ -9276,6 +9276,7 @@ struct wmi_roam_trigger_abort_reason {
  *  to denylist.
  *  @dl_original_timeout: Original timeout value in milli seconds
  *  when AP added to DL
+ *  @is_mlo: Flag to check whether the existing connection is MLO connection
  */
 struct wmi_roam_candidate_info {
 	uint32_t timestamp;
@@ -9292,6 +9293,7 @@ struct wmi_roam_candidate_info {
 	uint32_t dl_source;
 	uint32_t dl_timestamp;
 	uint32_t dl_original_timeout;
+	bool is_mlo;
 };
 
 /**
@@ -9307,6 +9309,8 @@ struct wmi_roam_candidate_info {
  * @ap: List of candidate AP info
  * @dwell_type: roam scan channel dwell type, enum in roam_scan_dwell_type
  * @scan_complete_timestamp: timestamp of all channels scan completed
+ * @is_mlo: Flag to check whether the existing connection is MLO connection
+ * @band: Band involved in the roaming during a MLO connection.
  */
 struct wmi_roam_scan_data {
 	bool present;
@@ -9320,6 +9324,8 @@ struct wmi_roam_scan_data {
 	struct wmi_roam_candidate_info ap[MAX_ROAM_CANDIDATE_AP];
 	uint8_t dwell_type[MAX_ROAM_SCAN_CHAN];
 	uint32_t scan_complete_timestamp;
+	bool is_mlo;
+	uint8_t band;
 };
 
 /**

+ 5 - 0
wmi/src/wmi_unified_tlv.c

@@ -19866,6 +19866,7 @@ extract_roam_scan_ap_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf,
 		dst->dl_source = src->bl_source;
 		dst->dl_timestamp = src->bl_timestamp;
 		dst->dl_original_timeout = src->bl_original_timeout;
+		dst->is_mlo = WMI_GET_AP_INFO_MLO_STATUS(src->flags);
 
 		src++;
 		dst++;
@@ -19912,6 +19913,10 @@ extract_roam_scan_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf,
 	if (dst->frame_info_count >  WLAN_ROAM_MAX_FRAME_INFO)
 		dst->frame_info_count =  WLAN_ROAM_MAX_FRAME_INFO;
 
+	dst->band = WMI_GET_MLO_BAND(src_data->flags);
+	if (dst->band != WMI_MLO_BAND_NO_MLO)
+		dst->is_mlo = true;
+
 	/* Read the channel data only for dst->type is 0 (partial scan) */
 	if (dst->num_chan && !dst->type && param_buf->num_roam_scan_chan_info &&
 	    chan_idx < param_buf->num_roam_scan_chan_info) {