diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index 6fed7f977c..3796323d74 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -3888,43 +3888,43 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); /* Layout of WMI_REPORT_STATS_EVENTID message: * fixed_param; - * wmi_chan_cca_stats chan_cca_stats[]; Array size is specified by num_chan_cca_stats - * wmi_peer_signal_stats peer_signal_stats[]; Array size is specified by num_peer_signal_stats - * wmi_peer_ac_tx_stats peer_ac_tx_stats[]; Array size is specified by num_peer_ac_tx_stats - * wmi_tx_stats tx_stats[][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) - * A_UINT32 tx_mpdu_aggr[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_mpdu_aggr_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_mpdu_aggr_array_size + A-MPDU size index + * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats + * wmi_peer_signal_stats peer_signal_stats[]; Array length is specified by num_peer_signal_stats + * wmi_peer_ac_tx_stats peer_ac_tx_stats[]; Array length is specified by num_peer_ac_tx_stats + * wmi_tx_stats tx_stats[][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) + * A_UINT32 tx_mpdu_aggr[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_mpdu_aggr_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_mpdu_aggr_array_len + A-MPDU size index * Contains a histogram of how many A-MPDUs of a given size (i.e. number of MPDUs) have been transmitted. - * Element 0 contains the number of MPDUs within a single-MPDU A-MPDU. - * Element 1 contains the number of MPDUs within a 2-MPDU A-MPDU (number of A-MPDUs x2). - * Element 2 contains the number of MPDUs within a 3-MPDU A-MPDU (number of A-MPDUs x3). - * Element tx_mpdu_aggr_array_size-1 contains the number of MPDUs within A-MPDUs with >= tx_mpdu_aggr_array_size MPDUs. - * A_UINT32 tx_msdu_acked_mcs[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_msdu_acked_mcs_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_msdu_acked_mcs_array_size + MCS index - * Contains a count of how many tx MSDUs have been acked for each MCS of each AC of each peer. - * A_UINT32 tx_msdu_failed_mcs[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_msdu_failed_mcs_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_msdu_failed_mcs_array_size + MCS index - * Contains a count of how many MSDUs failed tx due to no ack for each MCS of each AC of each peer. - * A_UINT32 tx_msdu_delay[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_msdu_delay_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_msdu_delay_array_size + delay index - * Contains a histogram of how many MSDUs encountered each level of delay due to retries or air interface contention. + * Element 0 contains the number of PPDUs with a single-MPDU A-MPDU. + * Element 1 contains the number of PPDUs with 2 MPDUs. + * Element 2 contains the number of PPDUs with 3 MPDUs. + * Element tx_mpdu_aggr_array_len-1 contains the number of PPDUs with >= tx_mpdu_aggr_array_len MPDUs. + * A_UINT32 tx_succ_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_succ_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_succ_mcs_array_len + MCS index + * Contains a count of how many tx PPDUs have been acked for each MCS of each AC of each peer. + * A_UINT32 tx_fail_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_fail_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_fail_mcs_array_len + MCS index + * Contains a count of how many PPDUs failed tx due to no ack for each MCS of each AC of each peer. + * A_UINT32 tx_delay[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_delay_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_delay_array_len + delay index + * Contains a histogram of how many PPDUs encountered each level of delay due to retries or air interface contention. * The time represented by each array element (i.e. histogram bin) is specified by tx_delay_bin_size_ms. - * Element 0 contains the count of MSDUs delayed by less than tx_delay_bin_size_ms. - * Element 1 contains the count of MSDUs delayed by more than 1x tx_delay_bin_size_ms but less than 2x. - * Element tx_msdu_delay_array_size-1 contains the count of MSDUs delayed by - * >= tx_delay_bin_size_ms * (tx_msdu_delay_array_size-1) - * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array size is specified by num_peer_ac_rx_stats - * wmi_rx_stats rx_stats[][]; Array size is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) - * A_UINT32 rx_mpdu_aggr[][][]; Array size is num_peer_ac_rx_stats * WLAN_MAX_AC * rx_mpdu_aggr_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mpdu_aggr_array_size + A-MPDU size index + * Element 0 contains the count of PPDUs delayed by less than tx_delay_bin_size_ms. + * Element 1 contains the count of PPDUs delayed by more than 1x tx_delay_bin_size_ms but less than 2x. + * Element tx_delay_array_len-1 contains the count of PPDUs delayed by + * >= tx_delay_bin_size_ms * (tx_delay_array_len-1) + * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array length is specified by num_peer_ac_rx_stats + * wmi_rx_stats rx_stats[][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) + * A_UINT32 rx_mpdu_aggr[][][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC * rx_mpdu_aggr_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mpdu_aggr_array_len + A-MPDU size index * Contains a histogram of how many A-MPDUs of a given size (i.e. number of MPDUs) have been received. - * Element 0 contains the number of MPDUs within a single-MPDU A-MPDU. - * Element 1 contains the number of MPDUs within a 2-MPDU A-MPDU (number of A-MPDUs x2). - * Element 2 contains the number of MPDUs within a 3-MPDU A-MPDU (number of A-MPDUs x3). - * Element rx_mpdu_aggr_array_size-1 contains the number of MPDUs within A-MPDUs with >= rx_mpdu_aggr_array_size MPDUs. - * A_UINT32 rx_msdu_mcs[][][]; Array size is (num_peer_ac_rx_stats * WLAN_MAX_AC) * rx_msdu_mcs_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_msdu_mcs_array_size + MCS index - * Contains a count of rx MSDUs for each MCS of each AC of each peer. + * Element 0 contains the number of PPDUs with a single MPDU. + * Element 1 contains the number of PPDUs with 2 MPDUs. + * Element 2 contains the number of PPDUs with 3 MPDUs. + * Element rx_mpdu_aggr_array_len-1 contains the number of PPDUs with >= rx_mpdu_aggr_array_len MPDUs. + * A_UINT32 rx_mcs[][][]; Array length is (num_peer_ac_rx_stats * WLAN_MAX_AC) * rx_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mcs_array_len + MCS index + * Contains a count of rx PPDUs for each MCS of each AC of each peer. * For example, if there were 2 peers (X and Y) whose stats were being reported, * the message and its TLV arrays would look like this: * 1. fixed_param @@ -3949,30 +3949,30 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); * 20. tx_mpdu_aggr[1][1][] for peer Y, AC 1 * 21. tx_mpdu_aggr[1][2][] for peer Y, AC 2 * 22. tx_mpdu_aggr[1][3][] for peer Y, AC 3 - * 23. tx_msdu_acked_mcs[0][0][] for peer X, AC 0 - * 24. tx_msdu_acked_mcs[0][1][] for peer X, AC 1 - * 25. tx_msdu_acked_mcs[0][2][] for peer X, AC 2 - * 26. tx_msdu_acked_mcs[0][3][] for peer X, AC 3 - * 27. tx_msdu_acked_mcs[1][0][] for peer Y, AC 0 - * 28. tx_msdu_acked_mcs[1][1][] for peer Y, AC 1 - * 29. tx_msdu_acked_mcs[1][2][] for peer Y, AC 2 - * 30. tx_msdu_acked_mcs[1][3][] for peer Y, AC 3 - * 31. tx_msdu_failed_mcs[0][0][] for peer X, AC 0 - * 32. tx_msdu_failed_mcs[0][1][] for peer X, AC 1 - * 33. tx_msdu_failed_mcs[0][2][] for peer X, AC 2 - * 34. tx_msdu_failed_mcs[0][3][] for peer X, AC 3 - * 35. tx_msdu_failed_mcs[1][0][] for peer Y, AC 0 - * 36. tx_msdu_failed_mcs[1][1][] for peer Y, AC 1 - * 37. tx_msdu_failed_mcs[1][2][] for peer Y, AC 2 - * 38. tx_msdu_failed_mcs[1][3][] for peer Y, AC 3 - * 39. tx_msdu_delay[0][0][] for peer X, AC 0 - * 40. tx_msdu_delay[0][1][] for peer X, AC 1 - * 41. tx_msdu_delay[0][2][] for peer X, AC 2 - * 42. tx_msdu_delay[0][3][] for peer X, AC 3 - * 43. tx_msdu_delay[1][0][] for peer Y, AC 0 - * 44. tx_msdu_delay[1][1][] for peer Y, AC 1 - * 45. tx_msdu_delay[1][2][] for peer Y, AC 2 - * 46. tx_msdu_delay[1][3][] for peer Y, AC 3 + * 23. tx_succ_mcs[0][0][] for peer X, AC 0 + * 24. tx_succ_mcs[0][1][] for peer X, AC 1 + * 25. tx_succ_mcs[0][2][] for peer X, AC 2 + * 26. tx_succ_mcs[0][3][] for peer X, AC 3 + * 27. tx_succ_mcs[1][0][] for peer Y, AC 0 + * 28. tx_succ_mcs[1][1][] for peer Y, AC 1 + * 29. tx_succ_mcs[1][2][] for peer Y, AC 2 + * 30. tx_succ_mcs[1][3][] for peer Y, AC 3 + * 31. tx_fail_mcs[0][0][] for peer X, AC 0 + * 32. tx_fail_mcs[0][1][] for peer X, AC 1 + * 33. tx_fail_mcs[0][2][] for peer X, AC 2 + * 34. tx_fail_mcs[0][3][] for peer X, AC 3 + * 35. tx_fail_mcs[1][0][] for peer Y, AC 0 + * 36. tx_fail_mcs[1][1][] for peer Y, AC 1 + * 37. tx_fail_mcs[1][2][] for peer Y, AC 2 + * 38. tx_fail_mcs[1][3][] for peer Y, AC 3 + * 39. tx_delay[0][0][] for peer X, AC 0 + * 40. tx_delay[0][1][] for peer X, AC 1 + * 41. tx_delay[0][2][] for peer X, AC 2 + * 42. tx_delay[0][3][] for peer X, AC 3 + * 43. tx_delay[1][0][] for peer Y, AC 0 + * 44. tx_delay[1][1][] for peer Y, AC 1 + * 45. tx_delay[1][2][] for peer Y, AC 2 + * 46. tx_delay[1][3][] for peer Y, AC 3 * 47. peer_ac_rx_stats[0] for X * 48. peer_ac_rx_stats[1] for Y * 49. rx_stats[0][0] for peer X, AC 0 @@ -3991,14 +3991,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); * 62. rx_mpdu_aggr[1][1][] for peer Y, AC 1 * 63. rx_mpdu_aggr[1][2][] for peer Y, AC 2 * 64. rx_mpdu_aggr[1][3][] for peer Y, AC 3 - * 65. rx_msdu_mcs[0][0][] for peer X, AC 0 - * 66. rx_msdu_mcs[0][1][] for peer X, AC 1 - * 67. rx_msdu_mcs[0][2][] for peer X, AC 2 - * 68. rx_msdu_mcs[0][3][] for peer X, AC 3 - * 69. rx_msdu_mcs[1][0][] for peer Y, AC 0 - * 70. rx_msdu_mcs[1][1][] for peer Y, AC 1 - * 71. rx_msdu_mcs[1][2][] for peer Y, AC 2 - * 72. rx_msdu_mcs[1][3][] for peer Y, AC 3 + * 65. rx_mcs[0][0][] for peer X, AC 0 + * 66. rx_mcs[0][1][] for peer X, AC 1 + * 67. rx_mcs[0][2][] for peer X, AC 2 + * 68. rx_mcs[0][3][] for peer X, AC 3 + * 69. rx_mcs[1][0][] for peer Y, AC 0 + * 70. rx_mcs[1][1][] for peer Y, AC 1 + * 71. rx_mcs[1][2][] for peer Y, AC 2 + * 72. rx_mcs[1][3][] for peer Y, AC 3 **/ #define WMITLV_TABLE_WMI_REPORT_STATS_EVENTID(id, op, buf, len) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param, wmi_report_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ @@ -4007,13 +4007,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_ac_tx_stats, peer_ac_tx_stats, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_tx_stats, tx_stats, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_mpdu_aggr, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_msdu_acked_mcs, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_msdu_failed_mcs, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_msdu_delay, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_succ_mcs, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_fail_mcs, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_delay, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_ac_rx_stats, peer_ac_rx_stats, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_rx_stats, rx_stats, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_mpdu_aggr, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_msdu_mcs, WMITLV_SIZE_VAR) + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_mcs, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_REPORT_STATS_EVENTID); #ifdef __cplusplus diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 58375eef8d..26f00506f2 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -3859,18 +3859,17 @@ typedef enum { */ WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD, /** - * Set tx_msdu_delay[] bin size to specify how many - * milliseconds each bin of the wmi_tx_stats.tx_msdu_delay[] + * Set tx_delay[] bin size to specify how many + * milliseconds each bin of the wmi_tx_stats.tx_delay[] * histogram represents. */ WMI_PDEV_PARAM_TX_DELAY_BIN_SIZE_MS, - /** set wmi_tx_stats.tx_msdu_delay[] array size */ - WMI_PDEV_PARAM_TX_DELAY_ARRAY_SIZE, - /** set wmi_tx_stats.tx_mpdu_aggr[] array size */ - WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_SIZE, - /** set wmi_rx_stats.rx_mpdu_aggr[] array size */ - WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_SIZE, - + /** set wmi_tx_stats.tx_delay[] array length */ + WMI_PDEV_PARAM_TX_DELAY_ARRAY_LEN, + /** set wmi_tx_stats.tx_mpdu_aggr[] array length */ + WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_LEN, + /** set wmi_rx_stats.rx_mpdu_aggr[] array length */ + WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_LEN, } WMI_PDEV_PARAM; typedef enum { @@ -5035,110 +5034,119 @@ typedef struct { } wmi_stats_event_fixed_param; /* WLAN channel CCA stats bitmap */ -#define WLAN_STATS_IDLE_TIME_SHIFT 0 -#define WLAN_STATS_IDLE_TIME_TIME 0x00000001 +#define WLAN_STATS_IDLE_TIME_SHIFT 0 +#define WLAN_STATS_IDLE_TIME_TIME 0x00000001 -#define WLAN_STATS_TX_TIME_SHIFT 1 -#define WLAN_STATS_TX_TIME_MASK 0x00000002 +#define WLAN_STATS_TX_TIME_SHIFT 1 +#define WLAN_STATS_TX_TIME_MASK 0x00000002 -#define WLAN_STATS_RX_IN_BSS_TIME_SHIFT 2 -#define WLAN_STATS_RX_IN_BSS_TIME_MASK 0x00000004 +#define WLAN_STATS_RX_IN_BSS_TIME_SHIFT 2 +#define WLAN_STATS_RX_IN_BSS_TIME_MASK 0x00000004 -#define WLAN_STATS_RX_OUT_BSS_TIME_SHIFT 3 -#define WLAN_STATS_RX_OUT_BSS_TIME_MASK 0x00000008 +#define WLAN_STATS_RX_OUT_BSS_TIME_SHIFT 3 +#define WLAN_STATS_RX_OUT_BSS_TIME_MASK 0x00000008 -#define WLAN_STATS_RX_BUSY_TIME_SHIFT 4 -#define WLAN_STATS_RX_BUSY_TIME_MASK 0x00000010 +#define WLAN_STATS_RX_BUSY_TIME_SHIFT 4 +#define WLAN_STATS_RX_BUSY_TIME_MASK 0x00000010 -#define WLAN_STATS_RX_IN_BAD_COND_TIME_SHIFT 5 -#define WLAN_STATS_RX_IN_BAD_COND_TIME_MASK 0x00000020 +#define WLAN_STATS_RX_IN_BAD_COND_TIME_SHIFT 5 +#define WLAN_STATS_RX_IN_BAD_COND_TIME_MASK 0x00000020 -#define WLAN_STATS_TX_IN_BAD_COND_TIME_SHIFT 6 -#define WLAN_STATS_TX_IN_BAD_COND_TIME_MASK 0x00000040 +#define WLAN_STATS_TX_IN_BAD_COND_TIME_SHIFT 6 +#define WLAN_STATS_TX_IN_BAD_COND_TIME_MASK 0x00000040 -#define WLAN_STATS_WLAN_NOT_AVAIL_TIME_SHIFT 7 -#define WLAN_STATS_WLAN_NOT_AVAIL_TIME_MASK 0x00000080 +#define WLAN_STATS_WLAN_NOT_AVAIL_TIME_SHIFT 7 +#define WLAN_STATS_WLAN_NOT_AVAIL_TIME_MASK 0x00000080 /* WLAN peer signal stats bitmap */ -#define WLAN_STATS_PER_ANT_SNR_SHIFT 0 -#define WLAN_STATS_PER_ANT_SNR_MASK 0x00000001 +#define WLAN_STATS_PER_CHAIN_SNR_SHIFT 0 +#define WLAN_STATS_PER_CHAIN_SNR_MASK 0x00000001 -#define WLAN_STATS_NF_SHIFT 1 -#define WLAN_STATS_NF_MASK 0x00000002 +#define WLAN_STATS_PER_CHAIN_NF_SHIFT 1 +#define WLAN_STATS_PER_CHAIN_NF_MASK 0x00000002 /* WLAN TX stats bitmap */ -#define WLAN_STATS_TX_MSDUS_SHIFT 0 -#define WLAN_STATS_TX_MSDUS_MASK 0x00000001 +#define WLAN_STATS_TX_MSDU_CNT_SHIFT 0 +#define WLAN_STATS_TX_MSDU_CNT_MASK 0x00000001 -#define WLAN_STATS_TX_BYTES_SHIFT 1 -#define WLAN_STATS_TX_BYTES_MASK 0x00000002 +#define WLAN_STATS_TX_MPDU_CNT_SHIFT 1 +#define WLAN_STATS_TX_MPDU_CNT_MASK 0x00000002 -#define WLAN_STATS_TX_MSDU_DROPS_SHIFT 2 -#define WLAN_STATS_TX_MSDU_DROPS_MASK 0x00000004 +#define WLAN_STATS_TX_PPDU_CNT_SHIFT 2 +#define WLAN_STATS_TX_PPDU_CNT_MASK 0x00000004 -#define WLAN_STATS_TX_DROP_BYTES_SHIFT 3 -#define WLAN_STATS_TX_DROP_BYTES_MASK 0x00000008 +#define WLAN_STATS_TX_BYTES_SHIFT 3 +#define WLAN_STATS_TX_BYTES_MASK 0x00000008 -#define WLAN_STATS_TX_MPDU_RETRIES_SHIFT 4 -#define WLAN_STATS_TX_MPDU_RETRIES_MASK 0x00000010 +#define WLAN_STATS_TX_MSDU_DROP_CNT_SHIFT 4 +#define WLAN_STATS_TX_MSDU_DROP_CNT_MASK 0x00000010 -#define WLAN_STATS_TX_MSDU_FAILED_SHIFT 5 -#define WLAN_STATS_TX_MSDU_FAILED_MASK 0x00000020 +#define WLAN_STATS_TX_DROP_BYTES_SHIFT 5 +#define WLAN_STATS_TX_DROP_BYTES_MASK 0x00000020 -#define WLAN_STATS_TX_MPDU_AGGR_SHIFT 6 -#define WLAN_STATS_TX_MPDU_AGGR_MASK 0x00000040 +#define WLAN_STATS_TX_MPDU_RETRY_CNT_SHIFT 6 +#define WLAN_STATS_TX_MPDU_RETRY_CNT_MASK 0x00000040 -#define WLAN_STATS_TX_MSDU_ACKED_MCS_SHIFT 7 -#define WLAN_STATS_TX_MSDU_ACKED_MCS_MASK 0x00000080 +#define WLAN_STATS_TX_MPDU_FAIL_CNT_SHIFT 7 +#define WLAN_STATS_TX_MPDU_FAIL_CNT_MASK 0x00000080 -#define WLAN_STATS_TX_MSDU_FAILED_MCS_SHIFT 8 -#define WLAN_STATS_TX_MSDU_FAILED_MCS_MASK 0x00000100 +#define WLAN_STATS_TX_PPDU_FAIL_CNT_SHIFT 8 +#define WLAN_STATS_TX_PPDU_FAIL_CNT_MASK 0x00000100 -#define WLAN_STATS_TX_MSDU_DELAY_SHIFT 9 -#define WLAN_STATS_TX_MSDU_DELAY_MASK 0x00000200 +#define WLAN_STATS_TX_MPDU_AGGR_SHIFT 9 +#define WLAN_STATS_TX_MPDU_AGGR_MASK 0x00000200 + +#define WLAN_STATS_TX_SUCC_MCS_SHIFT 10 +#define WLAN_STATS_TX_SUCC_MCS_MASK 0x00000400 + +#define WLAN_STATS_TX_FAIL_MCS_SHIFT 11 +#define WLAN_STATS_TX_FAIL_MCS_MASK 0x00000800 + +#define WLAN_STATS_TX_DELAY_SHIFT 12 +#define WLAN_STATS_TX_DELAY_MASK 0x00001000 /* WLAN RX stats bitmap */ -#define WLAN_STATS_MAC_RX_MSDUS_SHIFT 0 -#define WLAN_STATS_MAC_RX_MSDUS_MASK 0x00000001 +#define WLAN_STATS_MAC_RX_MPDU_CNT_SHIFT 0 +#define WLAN_STATS_MAC_RX_MPDU_CNT_MASK 0x00000001 #define WLAN_STATS_MAC_RX_BYTES_SHIFT 1 #define WLAN_STATS_MAC_RX_BYTES_MASK 0x00000002 -#define WLAN_STATS_PHY_RX_MSDUS_SHIFT 2 -#define WLAN_STATS_PHY_RX_MSDUS_MASK 0x00000004 +#define WLAN_STATS_PHY_RX_PPDU_CNT_SHIFT 2 +#define WLAN_STATS_PHY_RX_PPDU_CNT_MASK 0x00000004 #define WLAN_STATS_PHY_RX_BYTES_SHIFT 3 #define WLAN_STATS_PHY_RX_BYTES_MASK 0x00000008 -#define WLAN_STATS_SEQ_DCONT_NUM_SHIFT 4 -#define WLAN_STATS_SEQ_DCONT_NUM_MASK 0x00000010 +#define WLAN_STATS_RX_DISORDER_CNT_SHIFT 4 +#define WLAN_STATS_RX_DISORDER_CNT_MASK 0x00000010 -#define WLAN_STATS_RX_MSDU_RETRY_SHIFT 5 -#define WLAN_STATS_RX_MSDU_RETRY_MASK 0x00000020 +#define WLAN_STATS_RX_RETRY_CNT_SHIFT 5 +#define WLAN_STATS_RX_RETRY_CNT_MASK 0x00000020 -#define WLAN_STATS_RX_MSDU_DUP_SHIFT 6 -#define WLAN_STATS_RX_MSDU_DUP_MASK 0x00000040 +#define WLAN_STATS_RX_DUP_CNT_SHIFT 6 +#define WLAN_STATS_RX_DUP_CNT_MASK 0x00000040 -#define WLAN_STATS_RX_MSDU_DISCARD_SHIFT 7 -#define WLAN_STATS_RX_MSDU_DISCARD_MASK 0x00000080 +#define WLAN_STATS_RX_DISCARD_CNT_SHIFT 7 +#define WLAN_STATS_RX_DISCARD_CNT_MASK 0x00000080 -#define WLAN_STATS_STA_PS_INDS_SHIFT 8 -#define WLAN_STATS_STA_PS_INDS_MASK 0x00000100 +#define WLAN_STATS_RX_MPDU_AGGR_SHIFT 8 +#define WLAN_STATS_RX_MPDU_AGGR_MASK 0x00000100 -#define WLAN_STATS_STA_PS_DURS_SHIFT 9 -#define WLAN_STATS_STA_PS_DURS_MASK 0x00000200 +#define WLAN_STATS_RX_MCS_SHIFT 9 +#define WLAN_STATS_RX_MCS_MASK 0x00000200 -#define WLAN_STATS_RX_PROBE_REQS_SHIFT 10 -#define WLAN_STATS_RX_PROBE_REQS_MASK 0x00000400 +#define WLAN_STATS_STA_PS_INDS_SHIFT 10 +#define WLAN_STATS_STA_PS_INDS_MASK 0x00000400 -#define WLAN_STATS_RX_OTH_MGMTS_SHIFT 11 -#define WLAN_STATS_RX_OTH_MGMTS_MASK 0x00000800 +#define WLAN_STATS_STA_PS_DURS_SHIFT 11 +#define WLAN_STATS_STA_PS_DURS_MASK 0x00000800 -#define WLAN_STATS_RX_MPDU_AGGR_SHIFT 12 -#define WLAN_STATS_RX_MPDU_AGGR_MASK 0x00001000 +#define WLAN_STATS_RX_PROBE_REQS_SHIFT 12 +#define WLAN_STATS_RX_PROBE_REQS_MASK 0x00001000 -#define WLAN_STATS_RX_MSDU_MCS_SHIFT 13 -#define WLAN_STATS_RX_MSDU_MCS_MASK 0x00002000 +#define WLAN_STATS_RX_OTH_MGMTS_SHIFT 13 +#define WLAN_STATS_RX_OTH_MGMTS_MASK 0x00002000 typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_cca_stats */ @@ -5181,10 +5189,10 @@ typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_signal_stats */ A_UINT32 vdev_id; A_UINT32 peer_id; - /** per antenna SNR in current bss, units are dB */ - A_INT32 per_ant_snr[WMI_MAX_CHAINS]; - /** Background noise, units are dBm */ - A_INT32 nf; + /** per chain SNR in current bss, units are dB */ + A_INT32 per_chain_snr[WMI_MAX_CHAINS]; + /** per chain background noise, units are dBm */ + A_INT32 per_chain_nf[WMI_MAX_CHAINS]; } wmi_peer_signal_stats; /** Thresholds of signal stats, stand for percentage of stats variation. @@ -5196,30 +5204,43 @@ typedef struct { * WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh */ A_UINT32 tlv_header; - A_UINT32 per_ant_snr; /* units = dB */ - A_UINT32 nf; /* units = dBm */ + A_UINT32 per_chain_snr; /* units = dB */ + A_UINT32 per_chain_nf; /* units = dBm */ } wmi_peer_signal_stats_thresh; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_stats */ - /** Number of total TX packets on MAC layer in the period */ - A_UINT32 tx_msdus; + /** + * TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_tx_stats + */ + A_UINT32 tlv_header; + /** Number of total TX MSDUs on MAC layer in the period */ + A_UINT32 tx_msdu_cnt; + /** Number of total TX MPDUs on MAC layer in the period */ + A_UINT32 tx_mpdu_cnt; + /** Number of total TX PPDUs on MAC layer in the period */ + A_UINT32 tx_ppdu_cnt; /** Bytes of tx data on MAC layer in the period */ A_UINT32 tx_bytes; - /** Number of TX packets cancelled due to any reason in the period, - * such as WMM limitation/bandwidth limitation/radio congestion */ - A_UINT32 tx_msdu_drops; + /** + * Number of TX MSDUs cancelled due to any reason in the period, + * such as WMM limitation/bandwidth limitation/radio congestion + */ + A_UINT32 tx_msdu_drop_cnt; /** Bytes of dropped TX packets in the period */ A_UINT32 tx_drop_bytes; /** Number of unacked transmissions of MPDUs */ - A_UINT32 tx_mpdu_retries; - /** Number of packets have not been ACKed despite retried */ - A_UINT32 tx_msdu_failed; - /* This TLV is followed by TLVs below: : - * A_UINT32 tx_mpdu_aggr[tx_mpdu_aggr_array_size]; - * A_UINT32 tx_msdu_acked_mcs[tx_msdu_acked_mcs_array_size]; - * A_UINT32 tx_msdu_failed_mcs[tx_msdu_failed_mcs_array_size]; - * A_UINT32 tx_msdu_delay[tx_msdu_delay_array_size]; + A_UINT32 tx_mpdu_retry_cnt; + /** Number of MPDUs have not been ACKed despite retried */ + A_UINT32 tx_mpdu_fail_cnt; + /** Number of PPDUs which received no block ack */ + A_UINT32 tx_ppdu_fail_cnt; + /** + * This TLV is followed by TLVs below: : + * A_UINT32 tx_mpdu_aggr[tx_mpdu_aggr_array_len]; + * A_UINT32 tx_succ_mcs[tx_msdu_acked_mcs_array_len]; + * A_UINT32 tx_fail_mcs[tx_msdu_failed_mcs_array_len]; + * A_UINT32 tx_delay[tx_msdu_delay_array_len]; */ } wmi_tx_stats; @@ -5228,16 +5249,19 @@ typedef struct { */ typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_stats_thresh */ - A_UINT32 tx_msdus; + A_UINT32 tx_msdu_cnt; + A_UINT32 tx_mpdu_cnt; + A_UINT32 tx_ppdu_cnt; A_UINT32 tx_bytes; - A_UINT32 tx_msdu_drops; + A_UINT32 tx_msdu_drop_cnt; A_UINT32 tx_drop_bytes; - A_UINT32 tx_mpdu_retries; - A_UINT32 tx_msdu_failed; + A_UINT32 tx_mpdu_retry_cnt; + A_UINT32 tx_mpdu_fail_cnt; + A_UINT32 tx_ppdu_fail_cnt; A_UINT32 tx_mpdu_aggr; - A_UINT32 tx_msdu_acked_mcs; - A_UINT32 tx_msdu_failed_mcs; - A_UINT32 tx_msdu_delay; + A_UINT32 tx_succ_mcs; + A_UINT32 tx_fail_mcs; + A_UINT32 tx_delay; } wmi_tx_stats_thresh; typedef struct { @@ -5252,33 +5276,26 @@ typedef struct { typedef struct { /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rx_stats */ A_UINT32 tlv_header; - /** Number of RX packets on MAC layer */ - A_UINT32 mac_rx_msdus; + /** Number of RX MSDUs on MAC layer */ + A_UINT32 mac_rx_msdu_cnt; /** Bytes of RX packets on MAC layer */ A_UINT32 mac_rx_bytes; /** Number of RX packets on PHY layer */ - A_UINT32 phy_rx_msdus; + A_UINT32 phy_rx_ppdu_cnt; /** Bytes of RX packets on PHY layer */ A_UINT32 phy_rx_bytes; /** Number of discontinuity in seqnum */ - A_UINT32 seq_dcont_num; - /** Number of RX packets flagged as retransmissions */ - A_UINT32 rx_msdu_retry; - /** Number of RX packets identified as duplicates */ - A_UINT32 rx_msdu_dup; - /** Number of RX packets discarded */ - A_UINT32 rx_msdu_discard; - /** How many times STAs go to sleep */ - A_UINT32 sta_ps_inds; - /** Total sleep time of STAs, milliseconds units */ - A_UINT32 sta_ps_durs; - /** Number of probe requests received */ - A_UINT32 rx_probe_reqs; - /** Number of other management frames received, not including probe requests */ - A_UINT32 rx_oth_mgmts; - /* This TLV is followed by TLVs below: - * A_UINT32 rx_mpdu_aggr[rx_mpdu_aggr_array_size]; - * A_UINT32 rx_msdu_mcs[rx_msdu_mcs_array_size]; + A_UINT32 rx_disorder_cnt; + /** Number of RX MPDUs flagged as retransmissions */ + A_UINT32 rx_retry_cnt; + /** Number of RX MPDUs identified as duplicates */ + A_UINT32 rx_dup_cnt; + /** Number of RX MSDUs discarded */ + A_UINT32 rx_msdu_discard_cnt; + /** + * This TLV is followed by TLVs below: + * A_UINT32 rx_mpdu_aggr[rx_mpdu_aggr_array_len]; + * A_UINT32 rx_mcs[rx_msdu_mcs_array_len]; */ } wmi_rx_stats; @@ -5288,20 +5305,20 @@ typedef struct { typedef struct { /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rx_stats_thresh */ A_UINT32 tlv_header; - A_UINT32 mac_rx_msdus; + A_UINT32 mac_rx_mpdu_cnt; A_UINT32 mac_rx_bytes; - A_UINT32 phy_rx_msdus; + A_UINT32 phy_rx_ppdu_cnt; A_UINT32 phy_rx_bytes; - A_UINT32 seq_dcont_num; - A_UINT32 rx_msdu_retry; - A_UINT32 rx_msdu_dup; - A_UINT32 rx_msdu_discard; + A_UINT32 rx_disorder_cnt; + A_UINT32 rx_retry_cnt; + A_UINT32 rx_dup_cnt; + A_UINT32 rx_discard_cnt; + A_UINT32 rx_mpdu_aggr; + A_UINT32 rx_mcs; A_UINT32 sta_ps_inds; A_UINT32 sta_ps_durs; A_UINT32 rx_probe_reqs; A_UINT32 rx_oth_mgmts; - A_UINT32 rx_mpdu_aggr; - A_UINT32 rx_msdu_mcs; } wmi_rx_stats_thresh; typedef struct { @@ -5309,8 +5326,20 @@ typedef struct { A_UINT32 tlv_header; A_UINT32 vdev_id; A_UINT32 peer_id; - /* The TLVs for the 4 AC follows: - * wmi_rx_stats rx_stats[]; wmi_rx_stats for BE/BK/VI/VO + /** How many times STAs go to sleep */ + A_UINT32 sta_ps_inds; + /** Total sleep time of STAs, milliseconds units */ + A_UINT32 sta_ps_durs; + /** Number of probe requests received */ + A_UINT32 rx_probe_reqs; + /** + * Number of other management frames received, not including probe + * requests + */ + A_UINT32 rx_oth_mgmts; + /** + * The TLVs for the 4 AC follows: + * wmi_rx_stats rx_stats[]; wmi_rx_stats for BE/BK/VI/VO */ } wmi_peer_ac_rx_stats; @@ -5348,65 +5377,76 @@ typedef struct { A_UINT32 num_peer_signal_stats; /** number of per peer ac TX stats structures (wmi_peer_ac_tx_stats), 0 to max peers*/ A_UINT32 num_peer_ac_tx_stats; - /** Array size of tx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). - * The array indicates number of MPDUs sent on specified aggregation size - * (per number of MPDUs per AMPDUs / 1 to 7 and 8+). - * Array size can be set per WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_SIZE */ - A_UINT32 tx_mpdu_aggr_array_size; - /** Array size of tx_msdu_acked_mcs[] which is histogram of encoding rate. - * The array indicates number of acked packets sent at a specific rate */ - A_UINT32 tx_msdu_acked_mcs_array_size; - /** Array size of tx_msdu_failed_mcs[] which is histogram of encoding rate. - * The array indicates number of failed packets sent at a specific rate */ - A_UINT32 tx_msdu_failed_mcs_array_size; - /** tx_msdu_delay[]is a histogram of delays on MAC layer. - * The array stands for numbers of packets on different TX time delays. - * TX delay here means time interval between the time the packet has been received - * at the MAC layer and the time lower layers returns a tx status (<10ms to >100ms) - * - * The bin size tx_delay_bin_size_ms specifies how many milliseconds - * each bin of the tx_delay histogram represents. - * By default the bin size is 10ms. - * tx_msdu_delay[0] -> delays between 0-9 ms - * tx_msdu_delay[1] -> delays between 10-19 ms - * ... - * tx_msdu_delay[9] -> delays between 90-99 ms - * tx_msdu_delay[10] -> delays >= 100 ms - * Bin size can be set per WMI_PDEV_PARAM_TX_DELAY_BIN_SIZE_MS. - */ - A_UINT32 tx_msdu_delay_bin_size_ms; - /** Array size of tx_msdu_delay[]. It can be set per WMI_PDEV_PARAM_TX_DELAY_ARRAY_SIZE */ - A_UINT32 tx_msdu_delay_array_size; + /** + * Array length of tx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). + * The array indicates number of MPDUs sent on specified aggregation size + * (per number of MPDUs per AMPDUs / 1 to 7 and 8+). + * Array length can be set per WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_LEN + */ + A_UINT32 tx_mpdu_aggr_array_len; + /** + * Array length of tx_succ_mcs[] which is histogram of encoding rate. + * The array indicates number of acked PPDUs sent at a specific rate + */ + A_UINT32 tx_succ_mcs_array_len; + /** + * Array length of tx_fail_mcs[] which is histogram of encoding rate. + * The array indicates number of unacked PPDUs sent at a specific rate + */ + A_UINT32 tx_fail_mcs_array_len; + /** + * tx_delay[]is a histogram of delays on MAC layer. + * The array counts numbers of PPDUs encountering different TX time delays. + * TX delay here means time interval between the time the packet has been received + * at the MAC layer and the time lower layers returns a tx status (<10ms to >100ms) + * + * The bin size tx_delay_bin_size_ms specifies how many milliseconds + * each bin of the tx_delay histogram represents. + * By default the bin size is 10ms. + * tx_delay[0] -> delays between 0-9 ms + * tx_delay[1] -> delays between 10-19 ms + * ... + * tx_delay[9] -> delays between 90-99 ms + * tx_delay[10] -> delays >= 100 ms + * Bin size can be set per WMI_PDEV_PARAM_TX_DELAY_BIN_SIZE_MS. + */ + A_UINT32 tx_delay_bin_size_ms; + /** Array length of tx_delay[]. It can be set per WMI_PDEV_PARAM_TX_DELAY_ARRAY_LEN */ + A_UINT32 tx_delay_array_len; /** number of per peer ac RX stats structures (wmi_peer_ac_rx_stats), 0 to max peers*/ A_UINT32 num_peer_ac_rx_stats; - /** Array size of rx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). - * It can be set per WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_SIZE */ - A_UINT32 rx_mpdu_aggr_array_size; - /** Array size of rx_msdu_mcs[] which is histogram of encoding rate. - * The array indicates number of packets received at a specific rate */ - A_UINT32 rx_msdu_mcs_array_size; + /** + * Array length of rx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). + * It can be set per WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_LEN + */ + A_UINT32 rx_mpdu_aggr_array_len; + /** + * Array size of rx_mcs[] which is histogram of encoding rate. + * The array indicates number of PPDUs received at a specific rate + */ + A_UINT32 rx_mcs_array_size; /** * This TLV is followed by TLVs below: - * wmi_chan_cca_stats chan_cca_stats[]; Array size is specified by num_chan_cca_stats - * wmi_peer_signal_stats peer_signal_stats[]; Array size is specified by num_peer_signal_stats - * wmi_peer_ac_tx_stats peer_ac_tx_stats[]; Array size is specified by num_peer_ac_tx_stats - * wmi_tx_stats tx_stats[][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) - * A_UINT32 tx_mpdu_aggr[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_mpdu_aggr_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_mpdu_aggr_array_size + A-MPDU aggregation index - * A_UINT32 tx_msdu_acked_mcs[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_msdu_acked_mcs_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_msdu_acked_mcs_array_size + MCS index - * A_UINT32 tx_msdu_failed_mcs[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_msdu_failed_mcs_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_msdu_failed_mcs_array_size + MCS index - * A_UINT32 tx_msdu_delay[][][]; Array size is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_msdu_delay_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_msdu_delay_array_size + tx delay index - * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array size is specified by num_peer_ac_rx_stats - * wmi_rx_stats rx_stats[][]; Array size is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) - * A_UINT32 rx_mpdu_aggr[][][]; Array size is num_peer_ac_rx_stats * WLAN_MAX_AC * rx_mpdu_aggr_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mpdu_aggr_array_size + A-MPDU aggregation index - * A_UINT32 rx_msdu_mcs[][][]; Array size is (num_peer_ac_rx_stats * WLAN_MAX_AC) * rx_msdu_mcs_array_size, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_msdu_mcs_array_size + MCS index - **/ + * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats + * wmi_peer_signal_stats peer_signal_stats[]; Array length is specified by num_peer_signal_stats + * wmi_peer_ac_tx_stats peer_ac_tx_stats[]; Array length is specified by num_peer_ac_tx_stats + * wmi_tx_stats tx_stats[][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) + * A_UINT32 tx_mpdu_aggr[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_mpdu_aggr_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_mpdu_aggr_array_len + A-MPDU aggregation index + * A_UINT32 tx_succ_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_succ_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_succ_mcs_array_len + MCS index + * A_UINT32 tx_fail_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_fail_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_fail_mcs_array_len + MCS index + * A_UINT32 tx_delay[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_delay_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_delay_array_len + tx delay index + * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array length is specified by num_peer_ac_rx_stats + * wmi_rx_stats rx_stats[][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) + * A_UINT32 rx_mpdu_aggr[][][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC * rx_mpdu_aggr_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mpdu_aggr_array_len + A-MPDU aggregation index + * A_UINT32 rx_mcs[][][]; Array length is (num_peer_ac_rx_stats * WLAN_MAX_AC) * rx_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mcs_array_len + MCS index + */ } wmi_report_stats_event_fixed_param; @@ -16902,13 +16942,13 @@ typedef struct { */ A_UINT32 gbl_thresh; /** Enable/disable bitmap for threshold mechanism of CCA stats */ - A_UINT32 cca_thresh_bitmap; + A_UINT32 cca_thresh_enable_bitmap; /** Enable/disable bitmap for threshold mechanism of signal stats */ - A_UINT32 signal_thresh_bitmap; + A_UINT32 signal_thresh_enable_bitmap; /** Enable/disable bitmap for threshold mechanism of TX stats */ - A_UINT32 tx_thresh_bitmap; + A_UINT32 tx_thresh_enable_bitmap; /** Enable/disable bitmap for threshold mechanism of RX stats */ - A_UINT32 rx_thresh_bitmap; + A_UINT32 rx_thresh_enable_bitmap; /* This TLV is followed by TLVs below: * wmi_chan_cca_stats_thresh cca_thresh; * wmi_peer_signal_stats_thresh signal_thresh; diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index 5a344d978c..2e372918b1 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 294 +#define __WMI_REVISION_ 295 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work