summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspuligil <spuligil@codeaurora.org>2019-11-26 06:01:01 -0800
committerspuligil <spuligil@codeaurora.org>2019-11-26 06:01:01 -0800
commit0a12a2d1cdb6bc010440f3dca83a3f69c76a40c5 (patch)
tree1c226e052e6b7217cee152aab03a171ba8757d06
parent22c78fef2f5640212f2f25b9a643b8f110108bb5 (diff)
fw-api: CL 8854881 - update fw common interface files
Change-Id: I7ed12e0a03177c93664e1589a11b0426675ae82b WMI: add WMI_ROAM_STATS_EVENT msg def CRs-Fixed: 2262693
-rwxr-xr-xfw/wmi_tlv_defs.h21
-rwxr-xr-xfw/wmi_unified.h160
-rwxr-xr-xfw/wmi_version.h2
3 files changed, 182 insertions, 1 deletions
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index 6ec1fc20de34..a7a869e64d70 100755
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -1023,6 +1023,14 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_get_channel_ani_event_fixed_param,
WMITLV_TAG_STRUC_wmi_oem_data_event_fixed_param,
WMITLV_TAG_STRUC_wmi_peer_config_vlan_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_roam_stats_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_roam_trigger_reason_tlv_param,
+ WMITLV_TAG_STRUC_wmi_roam_scan_info_tlv_param,
+ WMITLV_TAG_STRUC_wmi_roam_scan_channel_info_tlv_param,
+ WMITLV_TAG_STRUC_wmi_roam_ap_info_tlv_param,
+ WMITLV_TAG_STRUC_wmi_roam_result_tlv_param,
+ WMITLV_TAG_STRUC_wmi_roam_neighbor_report_info_tlv_param,
+ WMITLV_TAG_STRUC_wmi_roam_neighbor_report_channel_info_tlv_param,
} WMITLV_TAG_ID;
/*
@@ -1681,6 +1689,7 @@ typedef enum {
OP(WMI_GET_ELNA_BYPASS_EVENTID) \
OP(WMI_ROAM_PMKID_REQUEST_EVENTID) \
OP(WMI_GET_CHANNEL_ANI_EVENTID) \
+ OP(WMI_ROAM_STATS_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -3986,6 +3995,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_BTM_CONFIG_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlm_config_cmd_fixed_param, wmi_wlm_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_WLM_CONFIG_CMDID);
+/* Event to send roam stats */
+#define WMITLV_TABLE_WMI_ROAM_STATS_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_stats_event_fixed_param, wmi_roam_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_trigger_reason, roam_trigger_reason, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_scan_info, roam_scan_info, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_scan_channel_info, roam_scan_chan_info, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ap_info, roam_ap_info, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_result, roam_result, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_neighbor_report_info, roam_neighbor_report_info, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_neighbor_report_channel_info, roam_neighbor_report_chan_info, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_STATS_EVENTID);
+
/* Motion detection cmd */
#define WMITLV_TABLE_WMI_MOTION_DET_CONFIG_PARAM_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_config_params_cmd_fixed_param, wmi_motion_det_config_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index adabab8c4e1b..954140702ad9 100755
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -1574,6 +1574,8 @@ typedef enum {
WMI_ROAM_PREAUTH_START_EVENTID,
/** Roaming PMKID request event */
WMI_ROAM_PMKID_REQUEST_EVENTID,
+ /** roam stats */
+ WMI_ROAM_STATS_EVENTID,
/** P2P disc found */
WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P),
@@ -26405,6 +26407,164 @@ typedef struct {
*/
} wmi_roam_scan_stats_event_fixed_param;
+typedef enum {
+ WMI_ROAM_TRIGGER_SUB_REASON_PERIODIC_TIMER = 1, /* Roam scan triggered due to periodic timer expiry */
+ WMI_ROAM_TRIGGER_SUB_REASON_INACTIVITY_TIMER, /* Roam scan triggered due to inactivity detection */
+ WMI_ROAM_TRIGGER_SUB_REASON_BTM_DI_TIMER, /* Roam scan triggered due to BTM Disassoc Imminent timeout */
+ WMI_ROAM_TRIGGER_SUB_REASON_FULL_SCAN, /* Roam scan triggered due to partial scan failure */
+} WMI_ROAM_TRIGGER_SUB_REASON_ID;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_trigger_reason_tlv_param */
+ /*
+ * timestamp is the absolute time w.r.t host timer which is synchronized
+ * between the host and target.
+ * This timestamp indicates the time when roam trigger happened.
+ */
+ A_UINT32 timestamp; /* Timestamp in milli seconds */
+ /* trigger_reason:
+ * Roam trigger reason from WMI_ROAM_TRIGGER_REASON_ID
+ */
+ A_UINT32 trigger_reason;
+ /* trigger_sub_reason:
+ * Reason for each roam scan from WMI_ROAM_TRIGGER_SUB_REASON_ID,
+ * if multiple scans are triggered for a single roam trigger.
+ */
+ A_UINT32 trigger_sub_reason;
+ A_UINT32 current_rssi; /* Connected AP rssi in dBm */
+ /* roam_rssi_threshold:
+ * RSSI threshold value in dBm for low RSSI roam trigger.
+ */
+ A_UINT32 roam_rssi_threshold;
+ A_UINT32 cu_load; /* Connected AP CU load percentage (0-100) */
+ /* deauth_type:
+ * 1 -> De-authentication
+ * 2 -> Disassociation
+ */
+ A_UINT32 deauth_type;
+ /* deauth_reason:
+ * De-authentication or disassociation reason.
+ * De-authentication / disassociation Values are enumerated in the
+ * 802.11 spec.
+ */
+ A_UINT32 deauth_reason;
+ /* btm_request_mode:
+ * Mode Values are enumerated in the 802.11 spec.
+ */
+ A_UINT32 btm_request_mode;
+ A_UINT32 disassoc_imminent_timer; /* in Milli seconds */
+ /* validity_internal:
+ * Preferred candidate list validity interval in Milli seconds.
+ */
+ A_UINT32 validity_internal;
+ /* candidate_list_count:
+ * Number of preferred candidates from BTM request.
+ */
+ A_UINT32 candidate_list_count;
+ /* btm_response_status_code:
+ * Response status Values are enumerated in the 802.11 spec.
+ */
+ A_UINT32 btm_response_status_code;
+} wmi_roam_trigger_reason;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_info_tlv_param */
+ /* roam_scan_type:
+ * 0 -> Partial roam scan
+ * 1 -> Full roam scan
+ */
+ A_UINT32 roam_scan_type;
+ /* next_rssi_trigger_threshold:
+ * Updated RSSI threshold value in dBm for next roam trigger.
+ */
+ A_UINT32 next_rssi_trigger_threshold;
+} wmi_roam_scan_info;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_channel_info_tlv_param */
+ A_UINT32 channel; /* Channel frequency in MHz */
+} wmi_roam_scan_channel_info;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ap_info_tlv_param */
+ /*
+ * timestamp is the absolute time w.r.t host timer which is synchronized
+ * between the host and target.
+ * This timestamp indicates the time when candidate AP is found
+ * during roam scan.
+ */
+ A_UINT32 timestamp; /* Timestamp in milli seconds */
+ A_UINT32 candidate_type; /* 0 - Candidate AP, 1 - Connected AP */
+ wmi_mac_addr bssid; /* AP MAC address */
+ A_UINT32 channel; /* AP channel frequency in MHz */
+ A_UINT32 rssi; /* AP current rssi in dBm */
+ A_UINT32 cu_load; /* AP current cu load percentage (0-100) */
+ /*
+ * The score fields below don't have a pre-determined range,
+ * but use the sense that a higher score indicates a better
+ * roam candidate.
+ */
+ A_UINT32 rssi_score; /* AP current rssi score */
+ A_UINT32 cu_score; /* AP current cu score */
+ A_UINT32 total_score; /* AP total score */
+ A_UINT32 etp; /* AP Estimated Throughput (ETP) value in mbps */
+} wmi_roam_ap_info;
+
+typedef enum {
+ /* Failures for not triggering roam scan */
+ WMI_ROAM_FAIL_REASON_NO_SCAN_START = 1,
+ WMI_ROAM_FAIL_REASON_NO_AP_FOUND,
+ WMI_ROAM_FAIL_REASON_NO_CAND_AP_FOUND,
+
+ /* Roam scan is triggered but roaming failed reasons */
+ WMI_ROAM_FAIL_REASON_AP_REJECT,
+ WMI_ROAM_FAIL_REASON_HANDSHAKE_TIMEOUT,
+
+ WMI_ROAM_FAIL_REASON_UNKNOWN,
+} WMI_ROAM_FAIL_REASON_ID;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_result_tlv_param */
+ /*
+ * timestamp is the absolute time w.r.t host timer which is synchronized
+ * between the host and target.
+ * This timestamp indicates the time when roaming is completed.
+ */
+ A_UINT32 timestamp; /* Timestamp in milli seconds */
+ A_UINT32 roam_status; /* 0 - Roaming is success, 1 - Roaming is failed */
+ A_UINT32 roam_fail_reason; /* from WMI_ROAM_FAIL_REASON_ID */
+} wmi_roam_result;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_neighbor_report_info_tlv_param */
+ /* request_type:
+ * 1 -> BTM query
+ * 2 -> 11K neighbor report request
+ */
+ A_UINT32 request_type;
+ /* neighbor_report_request_timestamp:
+ * timestamp is the absolute time w.r.t host timer which is synchronized
+ * between the host and target.
+ * This timestamp indicates the time when neighbor report request
+ * is received.
+ */
+ A_UINT32 neighbor_report_request_timestamp; /* in milli seconds */
+ /* neighbor_report_response_timestamp:
+ * This timestamp indicates the time when neighbor report response is sent.
+ */
+ A_UINT32 neighbor_report_response_timestamp; /* in milli seconds */
+} wmi_roam_neighbor_report_info;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_neighbor_report_channel_info_tlv_param */
+ A_UINT32 channel; /* Channel frequency in MHz */
+} wmi_roam_neighbor_report_channel_info;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_stats_event_fixed_param */
+ A_UINT32 vdev_id;
+} wmi_roam_stats_event_fixed_param;
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_txpower_query_cmd_fixed_param */
A_UINT32 request_id; /* unique request ID to distinguish the command / event set */
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index c30fe3235472..0fda1b8e8fc3 100755
--- a/fw/wmi_version.h
+++ b/fw/wmi_version.h
@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */
-#define __WMI_REVISION_ 742
+#define __WMI_REVISION_ 743
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work