diff options
| author | spuligil <spuligil@codeaurora.org> | 2019-11-26 06:01:01 -0800 |
|---|---|---|
| committer | spuligil <spuligil@codeaurora.org> | 2019-11-26 06:01:01 -0800 |
| commit | 0a12a2d1cdb6bc010440f3dca83a3f69c76a40c5 (patch) | |
| tree | 1c226e052e6b7217cee152aab03a171ba8757d06 | |
| parent | 22c78fef2f5640212f2f25b9a643b8f110108bb5 (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-x | fw/wmi_tlv_defs.h | 21 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 160 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
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 |
