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

WMI msgs for configuring SAWF service classes

Change-Id: Ia70fa6dd981c512009f992356c67acaa112784f9
CRs-Fixed: 2262693
This commit is contained in:
spuligil 2021-11-05 12:01:06 -07:00
commit 81e2859475
3 changed files with 121 additions and 0 deletions

View file

@ -560,6 +560,7 @@ typedef enum {
WMI_SERVICE_ICMP_OFFLOAD = 308, /* FW supports ping offload during APPS suspend */
WMI_SERVICE_RTSCTS_FOR_UNICAST_MGMT_SUPPORT = 309, /* Indicates FW support RTSCTS for unicast management */
WMI_SERVICE_DYNAMIC_VDEV_MAC_ADDR_UPDATE_SUPPORT = 310, /* FW supports dynamic vdev mac address updating */
WMI_SERVICE_SAWF_LEVEL0 = 311, /* FW supports WMI_SAWF_SVC_CLASS CFG_CMD + DISABLE_CMD msgs */
WMI_MAX_EXT2_SERVICE

View file

@ -1214,6 +1214,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_conf_event_fixed_param,
WMITLV_TAG_STRUC_wmi_mlo_set_active_link_number_param,
WMITLV_TAG_STRUC_wmi_sawf_svc_class_cfg_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_sawf_svc_class_disable_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@ -1695,6 +1697,8 @@ typedef enum {
OP(WMI_PDEV_FIPS_EXTEND_CMDID) \
OP(WMI_PDEV_FIPS_MODE_SET_CMDID) \
OP(WMI_VDEV_UPDATE_MAC_ADDR_CMDID) \
OP(WMI_SAWF_SVC_CLASS_CFG_CMDID) \
OP(WMI_SAWF_SVC_CLASS_DISABLE_CMDID) \
/* add new CMD_LIST elements above this line */
@ -4861,6 +4865,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_MU_SNIF_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_set_param_cmd_fixed_param, wmi_roam_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SET_PARAM_CMDID);
#define WMITLV_TABLE_WMI_SAWF_SVC_CLASS_CFG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sawf_svc_class_cfg_cmd_fixed_param, wmi_sawf_svc_class_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SAWF_SVC_CLASS_CFG_CMDID);
#define WMITLV_TABLE_WMI_SAWF_SVC_CLASS_DISABLE_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sawf_svc_class_disable_cmd_fixed_param, wmi_sawf_svc_class_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_SAWF_SVC_CLASS_DISABLE_CMDID);
/************************** TLV definitions of WMI events *******************************/

View file

@ -271,6 +271,7 @@ typedef enum {
WMI_GRP_VENDOR, /* 0x46 vendor specific group */
WMI_GRP_LATENCY, /* 0x47 TID/AC level latency config */
WMI_GRP_MLO, /* 0x48 MLO(Multiple Link Operation) management */
WMI_GRP_SAWF, /* 0x49 SAWF (Service Aware WiFi) */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@ -1417,6 +1418,13 @@ typedef enum {
WMI_MLO_READY_CMDID,
/** WMI cmd used for tearing down a hw_link part of MLO */
WMI_MLO_TEARDOWN_CMDID,
/** WMI commands specific to Service Aware WiFi (SAWF) */
/** configure or reconfigure the parameters for a service class */
WMI_SAWF_SVC_CLASS_CFG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SAWF),
/** disable a service class */
WMI_SAWF_SVC_CLASS_DISABLE_CMDID,
} WMI_CMD_ID;
typedef enum {
@ -29892,6 +29900,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_ROAM_SET_PARAM_CMDID);
WMI_RETURN_STRING(WMI_PDEV_FIPS_EXTEND_CMDID);
WMI_RETURN_STRING(WMI_PDEV_FIPS_MODE_SET_CMDID);
WMI_RETURN_STRING(WMI_SAWF_SVC_CLASS_CFG_CMDID);
WMI_RETURN_STRING(WMI_SAWF_SVC_CLASS_DISABLE_CMDID);
}
return (A_UINT8 *) "Invalid WMI cmd";
@ -36490,6 +36500,104 @@ typedef struct {
A_UINT32 cust_bdf_ver_minor;
} wmi_cust_bdf_version_capabilities;
typedef enum {
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MIN_THRUPUT = 0,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MAX_THRUPUT = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_BURST_SIZE = 0,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_SVC_INTERVAL = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_DELAY_BOUND = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_TIME_TO_LIVE = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_PRIORITY = 0,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_TID = 0xffffffff,
WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MSDU_LOSS_RATE = 0,
} WMI_SAWF_SVC_CLASS_PARAM_DEFAULTS;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sawf_svc_class_cfg_cmd_fixed_param */
A_UINT32 svc_class_id; /* which service class is being configured */
/*-----
* The below fields specify the values for the parameters of the
* service class being configured.
* Each such service class parameter has a default value specified in the
* above WMI_SAWF_SVC_CLASS_PARAM_DEFAULTS enum.
* This default value shall be specified for service classes where
* the parameter in question is not applicable.
* For example, for service classes that have no minimum throughput
* requirement, the min_thruput_kbps field should be set to
* WMI_SAWF_SVC_CLASS_PARAM_DEFAULT_MIN_THRUPUT, i.e. 0.
*-----*/
/* min_thruput_kbps:
* How much throughput should be "guaranteed" for each MSDU queue
* belonging to this service class.
* Units are kilobits per second.
*/
A_UINT32 min_thruput_kbps;
/* max_thruput_kbps:
* What upper limit on throughput shall be applied to MSDU queues beloning
* to this service class, if other peer-TIDs are not meeting their QoS
* service goals.
* Units are kilobits per second.
*/
A_UINT32 max_thruput_kbps;
/* burst_size_bytes:
* How much data (i.e. how many MSDUs) should be pulled from a
* MSDU queue belonging to this service class to be formed into MPDUs
* and enqueued for transmission.
* Similarly, how long should a tx op be for MPDUs containing MSDUs from
* this service class, to ensure that the necessary amount of data gets
* delivered to the peer.
* Units are bytes.
*/
A_UINT32 burst_size_bytes;
/* svc_interval_ms:
* How frequently MSDUs belonging to this service class should be
* formed into MPDUs and enqueued for transmission.
* The svc_interval_ms parameter is expected to be <= the delay_bound_ms
* parameter.
* Units are milliseconds.
*/
A_UINT32 svc_interval_ms;
/* delay_bound_ms:
* How promptly the MSDUs belonging to this service class need to be
* delivered to the recipient peer.
* Units are milliseconds.
*/
A_UINT32 delay_bound_ms;
/* time_to_live_ms:
* How long MSDUs belonging to this service class remain valid.
* If the MSDU has not been successfully transmitted before this
* time-to-live time has elapsed, the MSDU should be discarded.
* The time_to_live_ms parameter is expected to be >= the delay_bound_ms
* parameter.
* Units are milliseconds.
*/
A_UINT32 time_to_live_ms;
/* priority:
* What degree of precedence shall the WLAN FW's tx scheduler use
* when considering whether to transmit MPDUs generated from MSDUs
* belonging to this service class.
*/
A_UINT32 priority;
/* tid:
* Which WLAN TID shall be used for delivering traffic of this
* service class.
*/
A_UINT32 tid;
/* msdu_loss_rate_ppm:
* This parameter indicates the acceptable rate of MSDU loss.
* Units are parts per million.
* E.g. if it is acceptable for 1 MSDU of every 10000 to be lost,
* the msdu_loss_rate_ppm value would be 100,
* since 100 / 1000000 = 1 / 10000.
*/
A_UINT32 msdu_loss_rate_ppm;
} wmi_sawf_svc_class_cfg_cmd_fixed_param;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sawf_svc_class_disable_cmd_fixed_param */
A_UINT32 svc_class_id; /* which service class is being disabled */
} wmi_sawf_svc_class_disable_cmd_fixed_param;
/* ADD NEW DEFS HERE */