summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2020-06-13 01:57:02 -0700
committerLinux Build Service Account <lnxbuild@localhost>2020-06-13 01:57:02 -0700
commit97eb8a79a94658a5d10282b0cf487f1727060a0d (patch)
tree0b833612fc5d408a0479619122411d28e06f62e9
parenta679627ff374395f0d0d565b1c1603fa32fe3f81 (diff)
parentb331b8d91d3ec4729b8c2da0bc24245e15165c19 (diff)
downloadwlan-fw-api-97eb8a79a94658a5d10282b0cf487f1727060a0d.tar.gz
Merge b331b8d91d3ec4729b8c2da0bc24245e15165c19 on remote branch
Change-Id: Ifbd1d2c3f529958b628d07ddbdca7a6ce9418544
-rw-r--r--fw/htt_stats.h26
-rw-r--r--fw/wmi_services.h1
-rw-r--r--fw/wmi_tlv_defs.h27
-rw-r--r--fw/wmi_unified.h223
-rw-r--r--fw/wmi_version.h2
5 files changed, 256 insertions, 23 deletions
diff --git a/fw/htt_stats.h b/fw/htt_stats.h
index 674176f..9a10f1f 100644
--- a/fw/htt_stats.h
+++ b/fw/htt_stats.h
@@ -3596,6 +3596,8 @@ typedef struct {
#define HTT_RX_PDEV_STATS_NUM_GI_COUNTERS 4
#define HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS 5
#define HTT_RX_PDEV_STATS_NUM_BW_COUNTERS 4
+#define HTT_RX_PDEV_STATS_TOTAL_BW_COUNTERS \
+ (HTT_RX_PDEV_STATS_NUM_BW_EXT_COUNTERS + HTT_RX_PDEV_STATS_NUM_BW_COUNTERS)
#define HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS 8
#define HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS 8
#define HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
@@ -3901,6 +3903,15 @@ typedef struct {
/* Stats for MCS 12/13 */
A_UINT32 ul_mumimo_rx_mcs_ext[HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS];
A_UINT32 ul_mumimo_rx_gi_ext[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS][HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS];
+
+ /* RSSI in dBm for Rx TB PPDUs */
+ A_INT8 rx_ul_mumimo_chain_rssi_in_dbm[HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS][HTT_RX_PDEV_STATS_TOTAL_BW_COUNTERS];
+ /* Target RSSI stats for UL MUMIMO triggers. Units dBm */
+ A_INT8 rx_ul_mumimo_target_rssi[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS][HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
+ /* FD RSSI stats for UL TB PPDUs. Units dBm */
+ A_INT8 rx_ul_mumimo_fd_rssi[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS][HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS];
+ /* Pilot EVM Stats */
+ A_INT8 rx_ulmumimo_pilot_evm_dB_mean[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS][HTT_RX_PDEV_STATS_ULMUMIMO_NUM_SPATIAL_STREAMS];
} htt_rx_pdev_ul_mumimo_trig_stats_tlv;
/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_UL_MUMIMO_TRIG_STATS
@@ -4735,6 +4746,7 @@ typedef struct {
#define HTT_LATENCY_PROFILE_MAX_HIST 3
#define HTT_STATS_MAX_PROF_STATS_NAME_LEN 32
+#define HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST 3
typedef struct {
htt_tlv_hdr_t tlv_hdr;
/* print_header:
@@ -4760,6 +4772,20 @@ typedef struct {
*/
A_UINT32 hist_intvl;
A_UINT32 hist[HTT_LATENCY_PROFILE_MAX_HIST];
+ A_UINT32 page_fault_max; /* max page faults in any 1 sampling window */
+ A_UINT32 page_fault_total; /* summed over all sampling windows */
+ /* ignored_latency_count:
+ * ignore some of profile latency to avoid avg skewing
+ */
+ A_UINT32 ignored_latency_count;
+ /* interrupts_max: max interrupts within any single sampling window */
+ A_UINT32 interrupts_max;
+ /* interrupts_hist: histogram of interrupt rate
+ * bin0 contains the number of sampling windows that had 0 interrupts,
+ * bin1 contains the number of sampling windows that had 1-4 interrupts,
+ * bin2 contains the number of sampling windows that had > 4 interrupts
+ */
+ A_UINT32 interrupts_hist[HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST];
} htt_latency_prof_stats_tlv;
typedef struct {
diff --git a/fw/wmi_services.h b/fw/wmi_services.h
index c6acdd9..b2b02cb 100644
--- a/fw/wmi_services.h
+++ b/fw/wmi_services.h
@@ -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_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_REQUEST_CTRL_PATH_STATS_REQUEST = 250, /* FW supports control path stats */
/******* ADD NEW SERVICES UP TO 256 HERE *******/
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index 9d3a5a2..c9bdc6f 100644
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -1076,6 +1076,11 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_non_srg_obss_color_enable_bitmap_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_non_srg_obss_bssid_enable_bitmap_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_pmf_bcn_protect_stats,
+ 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;
/*
@@ -1520,6 +1525,7 @@ typedef enum {
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_BSSID_ENABLE_BITMAP_CMDID) \
+ OP(WMI_REQUEST_CTRL_PATH_STATS_CMDID) \
/* add new CMD_LIST elements above this line */
@@ -1770,6 +1776,7 @@ typedef enum {
OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \
OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \
OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \
+ OP(WMI_CTRL_PATH_STATS_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -3988,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_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 */
#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)
@@ -4458,7 +4473,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_DMA_RING_CAPABILITIES, dma_ring_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_spectral_bin_scaling_params, wmi_bin_scaling_params, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES_EXT, mac_phy_caps, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT2, hal_reg_caps, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT2, hal_reg_caps, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_capabilities, wmi_nan_capabilities, nan_cap, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT2_EVENTID);
#define WMITLV_TABLE_WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENTID(id,op,buf,len) \
@@ -4916,7 +4932,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HOST_SWFDA_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats, wmi_per_chain_rssi_stats, chain_stats, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_stats, rssi_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_congestion_stats, congestion_stats, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_extd2_stats, peer_extd2_stats, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_extd2_stats, peer_extd2_stats, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pmf_bcn_protect_stats, pmf_bcn_protect_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_STATS_EVENTID);
/* Update PN response Event */
@@ -5721,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_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) \
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)
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index c0bf638..2b9c082 100644
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -914,6 +914,9 @@ typedef enum {
/** request for WLM (wlan latency manager) stats */
WMI_REQUEST_WLM_STATS_CMDID,
+ /** request for control path stats */
+ WMI_REQUEST_CTRL_PATH_STATS_CMDID,
+
/** ARP OFFLOAD REQUEST*/
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 */
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 match event after the first match */
@@ -3651,6 +3658,13 @@ typedef struct {
* for any EMA VAP on any pdev.
*/
A_UINT32 ema_max_profile_period;
+ /** @brief max_ndp_sessions
+ * This is the max ndp sessions sent by the host which is the minimum
+ * of the value requested within the host's ini configurations and
+ * the max ndp sessions supported by the firmware (as reported in the
+ * SERVICE_READY_EXT2_EVENT message).
+ */
+ A_UINT32 max_ndp_sessions;
} wmi_resource_config;
#define WMI_MSDU_FLOW_AST_ENABLE_GET(msdu_flow_config0, ast_x) \
@@ -6818,6 +6832,23 @@ typedef enum {
#define WMI_PDEV_LSIG_LEN_DURATION_GET(lsig_len) WMI_GET_BITS(lsig_len, 0, 30)
#define WMI_PDEV_LSIG_LEN_DURATION_SET(lsig_len, value) WMI_SET_BITS(lsig_len, 0, 30, value)
+#define WMI_PDEV_IS_NON_SRG_ENABLED(pd_threshold_cfg) WMI_GET_BITS(pd_threshold_cfg, 31, 1)
+#define WMI_PDEV_NON_SRG_ENABLE(pd_threshold_cfg) WMI_SET_BITS(pd_threshold_cfg, 31, 1, 1)
+#define WMI_PDEV_NON_SRG_DISABLE(pd_threshold_cfg) WMI_SET_BITS(pd_threshold_cfg, 31, 1, 0)
+#define WMI_PDEV_NON_SRG_PD_THRESHOLD_SET(pd_threshold_cfg, value) WMI_SET_BITS(pd_threshold_cfg, 0, 8, value)
+#define WMI_PDEV_NON_SRG_PD_THRESHOLD_GET(pd_threshold_cfg) WMI_GET_BITS(pd_threshold_cfg, 0, 8)
+
+#define WMI_PDEV_IS_SRG_ENABLED(pd_threshold_cfg) WMI_GET_BITS(pd_threshold_cfg, 30, 1)
+#define WMI_PDEV_SRG_ENABLE(pd_threshold_cfg) WMI_SET_BITS(pd_threshold_cfg, 30, 1, 1)
+#define WMI_PDEV_SRG_DISABLE(pd_threshold_cfg) WMI_SET_BITS(pd_threshold_cfg, 30, 1, 0)
+#define WMI_PDEV_SRG_PD_THRESHOLD_SET(pd_threshold_cfg, value) WMI_SET_BITS(pd_threshold_cfg, 8, 8, value)
+#define WMI_PDEV_SRG_PD_THRESHOLD_GET(pd_threshold_cfg) WMI_GET_BITS(pd_threshold_cfg, 8, 8)
+
+#define WMI_PDEV_OBSS_PD_ENABLE_PER_AC_SET(per_ac_cfg, value) WMI_SET_BITS(per_ac_cfg, 0, 4, value)
+ #define WMI_PDEV_OBSS_PD_ENABLE_PER_AC_GET(per_ac_cfg) WMI_GET_BITS(per_ac_cfg, 0, 4)
+#define WMI_PDEV_SRP_ENABLE_PER_AC_SET(per_ac_cfg, value) WMI_SET_BITS(per_ac_cfg, 16, 4, value)
+ #define WMI_PDEV_SRP_ENABLE_PER_AC_GET(per_ac_cfg) WMI_GET_BITS(per_ac_cfg, 16, 4)
+
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param */
/** pdev_id for identifying the MAC
@@ -7533,21 +7564,22 @@ typedef struct {
} wmi_pdev_set_wmm_params_cmd_fixed_param;
typedef enum {
- WMI_REQUEST_PEER_STAT = 0x0001,
- WMI_REQUEST_AP_STAT = 0x0002,
- WMI_REQUEST_PDEV_STAT = 0x0004,
- WMI_REQUEST_VDEV_STAT = 0x0008,
- WMI_REQUEST_BCNFLT_STAT = 0x0010,
- WMI_REQUEST_VDEV_RATE_STAT = 0x0020,
- WMI_REQUEST_INST_STAT = 0x0040,
- WMI_REQUEST_MIB_STAT = 0x0080,
- WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x0100,
- WMI_REQUEST_CONGESTION_STAT = 0x0200,
- WMI_REQUEST_PEER_EXTD_STAT = 0x0400,
- WMI_REQUEST_BCN_STAT = 0x0800,
- WMI_REQUEST_BCN_STAT_RESET = 0x1000,
- WMI_REQUEST_PEER_EXTD2_STAT = 0x2000,
- WMI_REQUEST_MIB_EXTD_STAT = 0x4000,
+ WMI_REQUEST_PEER_STAT = 0x0001,
+ WMI_REQUEST_AP_STAT = 0x0002,
+ WMI_REQUEST_PDEV_STAT = 0x0004,
+ WMI_REQUEST_VDEV_STAT = 0x0008,
+ WMI_REQUEST_BCNFLT_STAT = 0x0010,
+ WMI_REQUEST_VDEV_RATE_STAT = 0x0020,
+ WMI_REQUEST_INST_STAT = 0x0040,
+ WMI_REQUEST_MIB_STAT = 0x0080,
+ WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x0100,
+ WMI_REQUEST_CONGESTION_STAT = 0x0200,
+ WMI_REQUEST_PEER_EXTD_STAT = 0x0400,
+ WMI_REQUEST_BCN_STAT = 0x0800,
+ WMI_REQUEST_BCN_STAT_RESET = 0x1000,
+ WMI_REQUEST_PEER_EXTD2_STAT = 0x2000,
+ WMI_REQUEST_MIB_EXTD_STAT = 0x4000,
+ WMI_REQUEST_PMF_BCN_PROTECT_STAT = 0x8000,
} wmi_stats_id;
/*
@@ -8268,6 +8300,10 @@ typedef struct {
* num_mib_extd_stats * size of(struct wmi_mib_extd_stats)
* following the information elements listed above.
*/
+/* If WMI_REQUEST_PMF_BCN_PROTECT_STAT is set in stats_id, then TLV
+ * wmi_pmf_bcn_protect_stats pmf_bcn_protect_stats[]
+ * follows the other TLVs
+ */
} wmi_stats_event_fixed_param;
/* WLAN channel CCA stats bitmap */
@@ -8828,6 +8864,73 @@ typedef struct {
*/
} 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 {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_radio_chan_stats */
@@ -9122,6 +9225,17 @@ typedef struct {
A_UINT32 reserved[8]; /* Reserve more fields for future extension */
} wmi_mib_extd_stats;
+/**
+ * Beacon protection statistics.
+ */
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pmf_bcn_protect_stats */
+ A_UINT32 igtk_mic_fail_cnt; /* MIC failure count of management packets using IGTK */
+ A_UINT32 igtk_replay_cnt; /* Replay detection count of management packets using IGTK */
+ A_UINT32 bcn_mic_fail_cnt; /* MIC failure count of beacon packets using BIGTK */
+ A_UINT32 bcn_replay_cnt; /* Replay detection count of beacon packets using BIGTK */
+} wmi_pmf_bcn_protect_stats;
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rssi_stats */
A_UINT32 vdev_id;
@@ -9974,14 +10088,14 @@ typedef struct {
A_UINT32 profile_idx;
/** the total profile numbers of non-trans aps (mbssid case). 0 means legacy AP */
A_UINT32 profile_num;
+ /** flags - this is a bitwise-or combination of WMI_VDEV_UP_FLAGS values */
+ A_UINT32 flags;
} wmi_vdev_up_cmd_fixed_param;
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
A_UINT32 vdev_id;
- /** flags - this is a bitwise-or combination of WMI_VDEV_UP_FLAGS values */
- A_UINT32 flags;
} wmi_vdev_stop_cmd_fixed_param;
typedef struct {
@@ -10907,7 +11021,7 @@ typedef enum {
* take effect if the WMI_PDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD
* setting is also set for the pdev that the vdev belongs to.
*/
- WMI_VDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD,
+ WMI_VDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD, /* 0x9E */
/* Parameter used to configure OBSS Packet Detection per Access Category
* for SRP based and OBSS_PD based spatial reuse feature.
@@ -10931,7 +11045,14 @@ typedef enum {
* if the WMI_PDEV_PARAM_SET_CMD_OBSS_PD_PER_AC setting is also set for
* the pdev that the vdev belongs to.
*/
- WMI_VDEV_PARAM_SET_CMD_OBSS_PD_PER_AC,
+ WMI_VDEV_PARAM_SET_CMD_OBSS_PD_PER_AC, /* 0x9F */
+
+ /**
+ * VDEV parameter to indicate RSN (Robust Security Network) capability.
+ * This value will be intersection of the local vdev's (STA's)
+ * RSN capability and the peer's (AP's) RSN capability.
+ */
+ WMI_VDEV_PARAM_RSN_CAPABILITY, /* 0xA0 */
/* Parameter used to enable/disable SRP feature */
WMI_VDEV_PARAM_ENABLE_SRP,
@@ -13513,7 +13634,8 @@ typedef struct {
#define WLAN_ROAM_SCORE_BAND_2G_INDEX 0
#define WLAN_ROAM_SCORE_BAND_5G_INDEX 1
-/* 2 and 3 are reserved */
+#define WLAN_ROAM_SCORE_BAND_6G_INDEX 2
+/* 3 is reserved */
#define WLAN_ROAM_SCORE_MAX_BAND_INDEX 4
#define WMI_ROAM_GET_BAND_SCORE_PERCENTAGE(value32, band_index) WMI_GET_BITS(value32, (8 * (band_index)), 8)
#define WMI_ROAM_SET_BAND_SCORE_PERCENTAGE(value32, score_pcnt, band_index) WMI_SET_BITS(value32, (8 * (band_index)), 8, score_pcnt)
@@ -16099,6 +16221,10 @@ typedef struct {
A_UINT8 gtk_keyLength; /* GTK key length */
A_UINT8 gtk_keyRSC[GTK_REPLAY_COUNTER_BYTES]; /* GTK key replay sequence counter */
A_UINT8 gtk_key[WMI_MAX_KEY_LEN]; /* GTK key data */
+ A_UINT8 bigtk_keyIndex; /* Use if IGTK_OFFLOAD is defined */
+ A_UINT8 bigtk_keyLength; /* Use if IGTK_OFFLOAD is defined */
+ A_UINT8 bigtk_keyRSC[IGTK_PN_SIZE]; /* key replay sequence counter *//* Use if IGTK_OFFLOAD is defined */
+ A_UINT8 bigtk_key[WMI_MAX_KEY_LEN]; /* Use if IGTK_OFFLOAD is defined */
} WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param;
typedef struct {
@@ -18988,6 +19114,13 @@ typedef struct {
*/
} wmi_nan_dmesg_event_fixed_param;
+typedef struct {
+ /** TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_nan_capabilities */
+ A_UINT32 tlv_header;
+ /** Maximum number of ndp sessions supported by the Firmware */
+ A_UINT32 max_ndp_sessions;
+} wmi_nan_capabilities;
+
/** NAN DATA CMD's */
/**
@@ -24617,6 +24750,55 @@ typedef struct {
} 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 {
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_radio_chan_stats_request_type;
@@ -26131,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_SIMULATION_TEST_CMDID);
WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID);
+ WMI_RETURN_STRING(WMI_REQUEST_CTRL_PATH_STATS_CMDID);
}
return "Invalid WMI cmd";
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index 737285e..3204313 100644
--- 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_ 836
+#define __WMI_REVISION_ 843
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work