|
@@ -5614,6 +5614,7 @@ typedef enum {
|
|
#endif
|
|
#endif
|
|
wmi_twt_enable_complete_event_id,
|
|
wmi_twt_enable_complete_event_id,
|
|
wmi_apf_get_vdev_work_memory_resp_event_id,
|
|
wmi_apf_get_vdev_work_memory_resp_event_id,
|
|
|
|
+ wmi_roam_scan_stats_event_id,
|
|
|
|
|
|
#ifdef OL_ATH_SMART_LOGGING
|
|
#ifdef OL_ATH_SMART_LOGGING
|
|
wmi_debug_fatal_condition_eventid,
|
|
wmi_debug_fatal_condition_eventid,
|
|
@@ -8752,4 +8753,82 @@ struct wmi_apf_read_memory_resp_event_params {
|
|
#define WMI_HOST_VDEV_FLAGS_TRANSMIT_AP 0x00000002
|
|
#define WMI_HOST_VDEV_FLAGS_TRANSMIT_AP 0x00000002
|
|
#define WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP 0x00000004
|
|
#define WMI_HOST_VDEV_FLAGS_NON_TRANSMIT_AP 0x00000004
|
|
|
|
|
|
|
|
+/* Begin of roam scan stats definitions */
|
|
|
|
+
|
|
|
|
+#define WMI_ROAM_SCAN_STATS_MAX 5
|
|
|
|
+#define WMI_ROAM_SCAN_STATS_CANDIDATES_MAX 4
|
|
|
|
+#define WMI_ROAM_SCAN_STATS_CHANNELS_MAX 50
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * struct wmi_roam_scan_stats_req - Structure to hold roam scan stats request
|
|
|
|
+ * @vdev_id: interface id
|
|
|
|
+ */
|
|
|
|
+struct wmi_roam_scan_stats_req {
|
|
|
|
+ uint32_t vdev_id;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * struct wmi_roam_scan_cand - Roam scan candidates
|
|
|
|
+ * @score: score of AP
|
|
|
|
+ * @rssi: rssi of the AP
|
|
|
|
+ * @freq: center frequency
|
|
|
|
+ * @bssid: bssid of AP
|
|
|
|
+ */
|
|
|
|
+struct wmi_roam_scan_cand {
|
|
|
|
+ uint32_t score;
|
|
|
|
+ uint32_t rssi;
|
|
|
|
+ uint32_t freq;
|
|
|
|
+ uint8_t bssid[QDF_MAC_ADDR_SIZE];
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * struct wmi_roam_scan_stats_params - Roam scan details
|
|
|
|
+ * @time_stamp: time at which this roam scan happened
|
|
|
|
+ * @client_id: id of client which triggered this scan
|
|
|
|
+ * @num_scan_chans: number of channels that were scanned as part of this scan
|
|
|
|
+ * @scan_freqs: frequencies of the channels that were scanned
|
|
|
|
+ * @is_roam_successful: whether a successful roaming happened after this scan
|
|
|
|
+ * @old_bssid: bssid to which STA is connected just before this scan
|
|
|
|
+ * @new_bssid: bssid to which STA is roamed to in case of successful roaming
|
|
|
|
+ * @num_roam_candidates: no.of roam candidates that are being reported
|
|
|
|
+ * @roam_candidate: roam scan candidate details
|
|
|
|
+ * @trigger_id: reason for triggering this roam or roam scan
|
|
|
|
+ * @trigger_value: threshold value related to trigger_id
|
|
|
|
+ */
|
|
|
|
+struct wmi_roam_scan_stats_params {
|
|
|
|
+ uint64_t time_stamp;
|
|
|
|
+ uint32_t client_id;
|
|
|
|
+ uint32_t num_scan_chans;
|
|
|
|
+ uint32_t scan_freqs[WMI_ROAM_SCAN_STATS_CHANNELS_MAX];
|
|
|
|
+ uint32_t is_roam_successful;
|
|
|
|
+
|
|
|
|
+ /* Bssid to which STA is connected when the roam scan is triggered */
|
|
|
|
+ uint8_t old_bssid[QDF_MAC_ADDR_SIZE];
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Bssid to which STA is connected after roaming. Will be valid only
|
|
|
|
+ * if is_roam_successful is true.
|
|
|
|
+ */
|
|
|
|
+ uint8_t new_bssid[QDF_MAC_ADDR_SIZE];
|
|
|
|
+
|
|
|
|
+ /* Number of roam candidates that are being reported in the stats */
|
|
|
|
+ uint32_t num_roam_candidates;
|
|
|
|
+ struct wmi_roam_scan_cand cand[WMI_ROAM_SCAN_STATS_CANDIDATES_MAX];
|
|
|
|
+ uint32_t trigger_id;
|
|
|
|
+ uint32_t trigger_value;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * struct wmi_roam_scan_stats_res - Roam scan stats response from firmware
|
|
|
|
+ * @num_roam_scan: number of roam scans triggered
|
|
|
|
+ * @roam_scan: place holder to indicate the array of
|
|
|
|
+ * wmi_roam_scan_stats_params followed by this structure
|
|
|
|
+ */
|
|
|
|
+struct wmi_roam_scan_stats_res {
|
|
|
|
+ uint32_t num_roam_scans;
|
|
|
|
+ struct wmi_roam_scan_stats_params roam_scan[0];
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* End of roam scan stats definitions */
|
|
|
|
+
|
|
#endif /* _WMI_UNIFIED_PARAM_H_ */
|
|
#endif /* _WMI_UNIFIED_PARAM_H_ */
|