fw-api: CL 10528997 - update fw common interface files

Change-Id: I7609cc2c5c3477558c086eed6a55eb5de7ffb1c9
WMI: control path stats request/report
CRs-Fixed: 2262693
This commit is contained in:
spuligil
2020-05-21 18:00:42 -07:00
committed by nshrivas
parent a6e5686a07
commit b331b8d91d
4 changed files with 145 additions and 1 deletions

View File

@@ -442,6 +442,7 @@ typedef enum {
WMI_SERVICE_5_DOT_9GHZ_SUPPORT = 247, /* Indicates FW supports new 5.9GHZ (scan, connection and so on) */ WMI_SERVICE_5_DOT_9GHZ_SUPPORT = 247, /* Indicates FW supports new 5.9GHZ (scan, connection and so on) */
WMI_SERVICE_MU_PREAMBLE_PUNCTURE_SUPPORT = 248, /* Indicates FW supports MU preamble puncture */ WMI_SERVICE_MU_PREAMBLE_PUNCTURE_SUPPORT = 248, /* Indicates FW supports MU preamble puncture */
WMI_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT = 249, /* Support for SRG, SRP based spatial reuse support */ WMI_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT = 249, /* Support for SRG, SRP based spatial reuse support */
WMI_REQUEST_CTRL_PATH_STATS_REQUEST = 250, /* FW supports control path stats */
/******* ADD NEW SERVICES UP TO 256 HERE *******/ /******* ADD NEW SERVICES UP TO 256 HERE *******/

View File

@@ -1078,6 +1078,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param, WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param,
WMITLV_TAG_STRUC_wmi_pmf_bcn_protect_stats, WMITLV_TAG_STRUC_wmi_pmf_bcn_protect_stats,
WMITLV_TAG_STRUC_wmi_nan_capabilities, WMITLV_TAG_STRUC_wmi_nan_capabilities,
WMITLV_TAG_STRUC_wmi_request_ctrl_path_stats_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param,
WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_stats_struct,
} WMITLV_TAG_ID; } WMITLV_TAG_ID;
/* /*
@@ -1522,6 +1525,7 @@ typedef enum {
OP(WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \ OP(WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \
OP(WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID) \ OP(WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID) \
OP(WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \ OP(WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \
OP(WMI_REQUEST_CTRL_PATH_STATS_CMDID) \
/* add new CMD_LIST elements above this line */ /* add new CMD_LIST elements above this line */
@@ -1772,6 +1776,7 @@ typedef enum {
OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \ OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \
OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \ OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \
OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \ OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \
OP(WMI_CTRL_PATH_STATS_EVENTID) \
/* add new EVT_LIST elements above this line */ /* add new EVT_LIST elements above this line */
@@ -3990,6 +3995,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_WLAN_STATS_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_peer_stats_info_cmd_fixed_param, wmi_request_peer_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_peer_stats_info_cmd_fixed_param, wmi_request_peer_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_PEER_STATS_INFO_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_PEER_STATS_INFO_CMDID);
/* Request Control Path stats info cmd */
#define WMITLV_TABLE_WMI_REQUEST_CTRL_PATH_STATS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_ctrl_path_stats_cmd_fixed_param, wmi_request_ctrl_path_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, pdev_ids, WMITLV_SIZE_VAR)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_ids, WMITLV_SIZE_VAR)\
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mac_addr_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_CTRL_PATH_STATS_CMDID);
/* Host sets the current country code */ /* Host sets the current country code */
#define WMITLV_TABLE_WMI_SET_CURRENT_COUNTRY_CMDID(id,op,buf,len) \ #define WMITLV_TABLE_WMI_SET_CURRENT_COUNTRY_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, wmi_set_current_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, wmi_set_current_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -5725,6 +5738,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID); WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
/* Update Control Path stats event */
#define WMITLV_TABLE_WMI_CTRL_PATH_STATS_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param, wmi_ctrl_path_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pdev_stats_struct, ctrl_path_pdev_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);
#define WMITLV_TABLE_WMI_RADIO_CHAN_STATS_EVENTID(id, op, buf, len) \ #define WMITLV_TABLE_WMI_RADIO_CHAN_STATS_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_radio_chan_stats_event_fixed_param, wmi_radio_chan_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_radio_chan_stats_event_fixed_param, wmi_radio_chan_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_chan_stats, radio_chan_stats, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_chan_stats, radio_chan_stats, WMITLV_SIZE_VAR)

View File

@@ -914,6 +914,9 @@ typedef enum {
/** request for WLM (wlan latency manager) stats */ /** request for WLM (wlan latency manager) stats */
WMI_REQUEST_WLM_STATS_CMDID, WMI_REQUEST_WLM_STATS_CMDID,
/** request for control path stats */
WMI_REQUEST_CTRL_PATH_STATS_CMDID,
/** ARP OFFLOAD REQUEST*/ /** ARP OFFLOAD REQUEST*/
WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL), WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL),
@@ -1732,6 +1735,10 @@ typedef enum {
* and report WLM (WLAN latency manager) stats info to host */ * and report WLM (WLAN latency manager) stats info to host */
WMI_WLM_STATS_EVENTID, WMI_WLM_STATS_EVENTID,
/** This event is used to respond to WMI_REQUEST_CTRL_PATH_STATS_CMDID
* and report stats info to host */
WMI_CTRL_PATH_STATS_EVENTID,
/* NLO specific events */ /* NLO specific events */
/** NLO match event after the first match */ /** NLO match event after the first match */
@@ -8857,6 +8864,73 @@ typedef struct {
*/ */
} wmi_peer_stats_info_event_fixed_param; } wmi_peer_stats_info_event_fixed_param;
/**
* WMI arrays of length WMI_MGMT_FRAME_SUBTYPE_MAX use the
* IEEE802.11 standard's enumeration of mgmt frame subtypes:
* 0 -> IEEE80211_FC0_SUBTYPE_ASSOC_REQ
* 1 -> IEEE80211_FC0_SUBTYPE_ASSOC_RESP
* 2 -> IEEE80211_FC0_SUBTYPE_REASSOC_REQ
* 3 -> IEEE80211_FC0_SUBTYPE_REASSOC_RESP
* 4 -> IEEE80211_FC0_SUBTYPE_PROBE_REQ
* 5 -> IEEE80211_FC0_SUBTYPE_PROBE_RESP
* 6 -> Reserved
* 7 -> Reserved
* 8 -> IEEE80211_FC0_SUBTYPE_BEACON
* 9 -> IEEE80211_FC0_SUBTYPE_ATIM
* 10 -> IEEE80211_FC0_SUBTYPE_DISASSOC
* 11 -> IEEE80211_FC0_SUBTYPE_AUTH
* 12 -> IEEE80211_FC0_SUBTYPE_DEAUTH
* 13 -> IEEE80211_FCO_SUBTYPE_ACTION
* 14 -> IEEE80211_FC0_SUBTYPE_ACTION_NOACK
* 15 -> IEEE80211_FC0_SUBTYPE_RESERVED
*/
#define WMI_MGMT_FRAME_SUBTYPE_MAX 16
typedef struct {
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_stats_struct*/
A_UINT32 tlv_header;
/** pdev_id for identifying the MAC */
A_UINT32 pdev_id;
/** counter of how many times this pdev has
* transmitted each management frame sub-type */
A_UINT32 tx_mgmt_subtype[WMI_MGMT_FRAME_SUBTYPE_MAX];
/** counter of how many times this pdev has
* received each management frame sub-type */
A_UINT32 rx_mgmt_subtype[WMI_MGMT_FRAME_SUBTYPE_MAX];
/** scan fail dfs violation time in ms */
A_UINT32 scan_fail_dfs_violation_time_ms;
/** NOL check failed latest channel frequency in MHz */
A_UINT32 nol_check_fail_last_chan_freq;
/** NOL check failed timestamp in ms */
A_UINT32 nol_check_fail_time_stamp_ms;
/** total peer create count */
A_UINT32 total_peer_create_cnt;
/** total peer delete count */
A_UINT32 total_peer_delete_cnt;
/** total peer delete response count */
A_UINT32 total_peer_delete_resp_cnt;
/** sched algo FIFO full count */
A_UINT32 vdev_pause_fail_rt_to_sched_algo_fifo_full_cnt;
} wmi_ctrl_path_pdev_stats_struct;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */
A_UINT32 tlv_header;
/** Request ID*/
A_UINT32 request_id;
/** more flag
* 1 - More events sent after this event.
* 0 - no more events after this event.
*/
A_UINT32 more;
/** This TLV is (optionally) followed by TLV arrays containing
* different types of stats:
* 1. wmi_ctrl_path_pdev_stats_struct ctrl_path_pdev_stats[];
* This TLV array contains zero or more pdev stats instances.
*/
} wmi_ctrl_path_stats_event_fixed_param;
typedef struct { typedef struct {
/** TLV tag and len; tag equals /** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_radio_chan_stats */ * WMITLV_TAG_STRUC_wmi_radio_chan_stats */
@@ -24675,6 +24749,55 @@ typedef struct {
A_UINT32 reset_after_request; A_UINT32 reset_after_request;
} wmi_request_peer_stats_info_cmd_fixed_param; } wmi_request_peer_stats_info_cmd_fixed_param;
typedef enum {
/*
* Multiple stats type can be requested together, so each value
* within this enum represents a bit within a stats bitmap.
*/
WMI_REQUEST_CTRL_PATH_PDEV_TX_STAT = 0x00000001,
} wmi_ctrl_path_stats_id;
typedef enum {
/*
* The following stats actions are mutually exclusive.
* A single stats request message can only specify one action.
*/
WMI_REQUEST_CTRL_PATH_STAT_GET = 1,
WMI_REQUEST_CTRL_PATH_STAT_RESET = 2,
WMI_REQUEST_CTRL_PATH_STAT_START = 3,
WMI_REQUEST_CTRL_PATH_STAT_STOP = 4,
} wmi_ctrl_path_stats_action;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_request_ctrl_path_stats_cmd_fixed_param */
A_UINT32 tlv_header;
/** Bitmask showing which of stats IDs 0-31 have been requested.
* These stats ids are defined in enum wmi_ctrl_path_stats_id.
*/
A_UINT32 stats_id_mask;
/** request ID to store the cookies in wifistats */
A_UINT32 request_id;
/** action
* get/reset/start/stop based on stats id
* defined as a part of wmi_ctrl_path_stats_action
**/
A_UINT32 action; /* refer to wmi_ctrl_path_stats_action */
/** The below TLV arrays optionally follow this fixed_param TLV structure:
* 1. A_UINT32 pdev_ids[];
* If this array is present and non-zero length, stats should only
* be provided from the pdevs identified in the array.
* 2. A_UINT32 vdev_ids[];
* If this array is present and non-zero length, stats should only
* be provided from the vdevs identified in the array.
* 3. wmi_mac_addr peer_macaddr[];
* If this array is present and non-zero length, stats should only
* be provided from the peers with the MAC addresses specified
* in the array.
*/
} wmi_request_ctrl_path_stats_cmd_fixed_param;
typedef enum { typedef enum {
WMI_REQUEST_ONE_RADIO_CHAN_STATS = 0x01, /* request stats of one specified channel */ WMI_REQUEST_ONE_RADIO_CHAN_STATS = 0x01, /* request stats of one specified channel */
WMI_REQUEST_ALL_RADIO_CHAN_STATS = 0x02, /* request stats of all channels */ WMI_REQUEST_ALL_RADIO_CHAN_STATS = 0x02, /* request stats of all channels */
@@ -26190,6 +26313,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_ANT_CONTROLLER_CMDID); WMI_RETURN_STRING(WMI_ANT_CONTROLLER_CMDID);
WMI_RETURN_STRING(WMI_SIMULATION_TEST_CMDID); WMI_RETURN_STRING(WMI_SIMULATION_TEST_CMDID);
WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID); WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_REQUEST_CTRL_PATH_STATS_CMDID);
} }
return "Invalid WMI cmd"; return "Invalid WMI cmd";

View File

@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0 #define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a /** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */ * change that may or may not break compatibility. */
#define __WMI_REVISION_ 842 #define __WMI_REVISION_ 843
/** The Version Namespace should not be normally changed. Only /** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work * host and firmware of the same WMI namespace will work