Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81e28594 authored by spuligil's avatar spuligil
Browse files

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

WMI msgs for configuring SAWF service classes

Change-Id: Ia70fa6dd981c512009f992356c67acaa112784f9
CRs-Fixed: 2262693
parent 8662fb1a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+12 −0
Original line number Diff line number Diff line
@@ -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 *******************************/
+108 −0
Original line number Diff line number Diff line
@@ -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 */