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

Change-Id: I0c48624fea92ed8874f5da49f0a230fd19ca5cb6
WMI: add per-AC + OBSS airtime use pct stats to pdev_telemetry_stats
CRs-Fixed: 2262693
This commit is contained in:
spuligil
2022-12-04 12:00:56 -08:00
committed by Madan Koyyalamudi
parent 46734f8db7
commit ff230196ba
3 changed files with 153 additions and 7 deletions

View File

@@ -1327,6 +1327,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pifs_params,
WMITLV_TAG_STRUC_wmi_tas_power_history_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_tas_power_history_event_fixed_param,
WMITLV_TAG_STRUC_wmi_ctrl_path_pmlo_stats_struct,
} WMITLV_TAG_ID;
/*
@@ -6668,7 +6669,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_btcoex_stats_struct, ctrl_path_btcoex_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_bmiss_stats_struct, ctrl_path_bmiss_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_odd_addr_read_struct, ctrl_path_odd_addr_read, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_afc_stats_struct, ctrl_path_afc_stats, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_afc_stats_struct, ctrl_path_afc_stats, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ctrl_path_pmlo_stats_struct, ctrl_path_pmlo_stats, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_CTRL_PATH_STATS_EVENTID);
/*

View File

@@ -12227,6 +12227,135 @@ typedef struct {
A_UINT32 payload_clear_count;
} wmi_ctrl_path_afc_stats_struct;
/* AT - Airtime */
/* AA - Available Airtime */
#define WMI_PMLO_UL_DL_INBSS_AT_GET_BE(airtime) WMI_GET_BITS(airtime, 0, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_BE(airtime, value) WMI_SET_BITS(airtime, 0, 8, value)
#define WMI_PMLO_UL_DL_INBSS_AT_GET_BK(airtime) WMI_GET_BITS(airtime, 8, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_BK(airtime, value) WMI_SET_BITS(airtime, 8, 8, value)
#define WMI_PMLO_UL_DL_INBSS_AT_GET_VI(airtime) WMI_GET_BITS(airtime, 16, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_VI(airtime, value) WMI_SET_BITS(airtime, 16, 8, value)
#define WMI_PMLO_UL_DL_INBSS_AT_GET_VO(airtime) WMI_GET_BITS(airtime, 24, 8)
#define WMI_PMLO_UL_DL_INBSS_AT_SET_VO(airtime, value) WMI_SET_BITS(airtime, 24, 8, value)
#define WMI_PMLO_LINK_OBSS_AT_GET(airtime) WMI_GET_BITS(airtime, 0, 8)
#define WMI_PMLO_LINK_OBSS_AT_SET(airtime, value) WMI_SET_BITS(airtime, 0, 8, value)
#define WMI_PMLO_LINK_AA_GET(airtime) WMI_GET_BITS(airtime, 8, 8)
#define WMI_PMLO_LINK_AA_SET(airtime, value) WMI_SET_BITS(airtime, 8, 8, value)
#define WMI_PMLO_UL_AIRTIME_NON_AC_GET(airtime) WMI_GET_BITS(airtime, 16, 8)
#define WMI_PMLO_UL_AIRTIME_NON_AC_SET(airtime, value) WMI_SET_BITS(airtime, 16, 8, value)
#define WMI_PMLO_DL_AIRTIME_NON_AC_GET(airtime) WMI_GET_BITS(airtime, 24, 8)
#define WMI_PMLO_DL_AIRTIME_NON_AC_SET(airtime, value) WMI_SET_BITS(airtime, 24, 8, value)
/*
* The wmi_ctrl_path_pmlo_stats_struct is used to send Provisional MLO stats
* the WMI_CTRL_PATH_STATS_EVENT message, in response to a
* WMI_REQUEST_CTRL_PATH_STATS_CMD message for the stat type
* WMI_REQUEST_CTRL_PATH_PMLO_STAT.
*/
typedef struct {
/* TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_ctrl_path_pmlo_stats_struct */
A_UINT32 tlv_header;
/** pdev_id for identifying the PHY */
A_UINT32 pdev_id;
/*
* Percentage of downlink air time used in each access category
* calculated InBSS, units in percentage.
* BIT[0-7] : AC_BE
* BIT[8-15] : AC_BK
* BIT[16-23] : AC_VI
* BIT[24-31] : AC_VO
* Please refer to WMI_PMLO_UL_DL_INBSS_AT_* macros
* to retrieve values for each access category in dl_inbss_airtime_per_ac.
*/
union {
struct {
A_UINT32
dl_inbss_airtime_ac_be: 8,
dl_inbss_airtime_ac_bk: 8,
dl_inbss_airtime_ac_vi: 8,
dl_inbss_airtime_ac_vo: 8;
};
A_UINT32 dl_inbss_airtime_per_ac;
};
/*
* Percentage of uplink air time used in each access category
* calculated InBSS, units in percentage.
* BIT[0-7] : AC_BE
* BIT[8-15] : AC_BK
* BIT[16-23] : AC_VI
* BIT[24-31] : AC_VO
* Please refer to WMI_PMLO_UL_DL_INBSS_AT_* macros
* to set/get values for each access category in ul_inbss_airtime_per_ac.
*/
union {
struct {
A_UINT32
ul_inbss_airtime_ac_be: 8,
ul_inbss_airtime_ac_bk: 8,
ul_inbss_airtime_ac_vi: 8,
ul_inbss_airtime_ac_vo: 8;
};
A_UINT32 ul_inbss_airtime_per_ac;
};
/*
* Percentage of air time available for each AC, units in percentage.
* BIT[0-7] : AC_BE
* BIT[8-15] : AC_BK
* BIT[16-23] : AC_VI
* BIT[24-31] : AC_VO
* Please refer to WMI_ESP_ESTIMATE_GET_* and WMI_ESP_ESTIMATE_SET_* macros
* to retrieve values for each access category in estimated_air_time_per_ac.
*/
union {
struct {
A_UINT32
estimated_air_time_ac_be: 8,
estimated_air_time_ac_bk: 8,
estimated_air_time_ac_vi: 8,
estimated_air_time_ac_vo: 8;
};
A_UINT32 estimated_air_time_per_ac;
};
/*
* Average channel latency per AC, units in micro seconds.
* avg_chan_lat_per_ac[0] : AC_VO
* avg_chan_lat_per_ac[1] : AC_VI
* avg_chan_lat_per_ac[2] : AC_BE
* avg_chan_lat_per_ac[3] : AC_BK
*/
A_UINT32 avg_chan_lat_per_ac[WMI_AC_MAX];
/*
* link_obss_airtime: Percentage of OBSS used air time per link,
* units in percentage.
* Refer to WMI_PMLO_LINK_OBSS_AT_* Macro to set/get values.
* link_idle_airtime: Idle/free airtime per link, units in percentage.
* Refer to WMI_PMLO_LINK_AA_* macro to set/get values.
* ul_inbss_airtime_non_ac: ul inBSS airtime occupied by non-AC traffic,
* units in percentage.
* Refer to WMI_PMLO_UL_AIRTIME_NON_AC_* macro to set/get values.
* dl_inbss_airtime_non_ac: dl inBSS airtime occupied by non-AC traffic,
* units in percentage.
* Refer to WMI_PMLO_DL_AIRTIME_NON_AC_* macro to set/get values.
*/
union {
struct {
A_UINT32 link_obss_airtime: 8,
link_idle_airtime: 8,
ul_inbss_airtime_non_ac: 8,
dl_inbss_airtime_non_ac: 8;
};
A_UINT32 ul_dl_obss_free_aa_word32;
};
} wmi_ctrl_path_pmlo_stats_struct;
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param */
@@ -12426,7 +12555,7 @@ typedef struct{
* BIT[8-15] : AC_BK
* BIT[16-23] : AC_VI
* BIT[24-31] : AC_VO
* Please refer WMI_ESP_ESTIMATE_GET_* and WMI_ESP_ESTIMATE_SET_* macros
* Please refer to WMI_ESP_ESTIMATE_GET_* and WMI_ESP_ESTIMATE_SET_* macros
* to retrieve values for each access category in estimated_air_time_per_ac.
*/
A_UINT32 estimated_air_time_per_ac;
@@ -30812,6 +30941,7 @@ typedef enum {
WMI_REQUEST_CTRL_PATH_BMISS_STAT = 9,
WMI_REQUEST_CTRL_PATH_ODD_ADDR_READ = 10,
WMI_REQUEST_CTRL_PATH_AFC_STAT = 11,
WMI_REQUEST_CTRL_PATH_PMLO_STAT = 12,
} wmi_ctrl_path_stats_id;
typedef enum {
@@ -30824,10 +30954,11 @@ 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_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_REQUEST_CTRL_PATH_STAT_PERIODIC_PUBLISH = 5,
} wmi_ctrl_path_stats_action;
typedef enum {
@@ -30853,6 +30984,19 @@ typedef struct {
**/
A_UINT32 action; /* refer to wmi_ctrl_path_stats_action */
/**
* The stat_periodicity field is relevant only when action is set to
* WMI_REQUEST_CTRL_PATH_STAT_PERIODIC_PUBLISH.
* The units of this periodicity are milliseconds.
* Periodically send WMI ctrl-path stats event with the specified stats
* periodicity for the stats whose IDs are set in stats_id_mask.
* Periodic WMI ctrl-path stats events are enabled by setting value > 0,
* Previously onngoing periodic WMI ctrl-path stats events become
* disabled when action is WMI_REQUEST_CTRL_PATH_STAT_PERIODIC_PUBLISH
* and stat_periodicity = 0.
*/
A_UINT32 stat_periodicity;
/** 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

View File

@@ -37,7 +37,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_ 1240
#define __WMI_REVISION_ 1241
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work