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

Commit b331b8d9 authored by spuligil's avatar spuligil Committed by nshrivas
Browse files

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

Change-Id: I7609cc2c5c3477558c086eed6a55eb5de7ffb1c9
WMI: control path stats request/report
CRs-Fixed: 2262693
parent a6e5686a
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -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_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_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_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 *******/
    /******* ADD NEW SERVICES UP TO 256 HERE *******/
+19 −0
Original line number Original line Diff line number Diff line
@@ -1078,6 +1078,9 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param,
    WMITLV_TAG_STRUC_wmi_pmf_bcn_protect_stats,
    WMITLV_TAG_STRUC_wmi_pmf_bcn_protect_stats,
    WMITLV_TAG_STRUC_wmi_nan_capabilities,
    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;
} WMITLV_TAG_ID;


/*
/*
@@ -1522,6 +1525,7 @@ typedef enum {
    OP(WMI_PDEV_SET_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \
    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_COLOR_ENABLE_BITMAP_CMDID) \
    OP(WMI_PDEV_SET_NON_SRG_OBSS_BSSID_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 */
    /* add new CMD_LIST elements above this line */




@@ -1772,6 +1776,7 @@ typedef enum {
    OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \
    OP(WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID) \
    OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \
    OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \
    OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \
    OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \
    OP(WMI_CTRL_PATH_STATS_EVENTID) \
    /* add new EVT_LIST elements above this line */
    /* add new EVT_LIST elements above this line */




@@ -3990,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_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);
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 */
/* Host sets the current country code */
#define WMITLV_TABLE_WMI_SET_CURRENT_COUNTRY_CMDID(id,op,buf,len) \
#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)
    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)
@@ -5725,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_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);
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) \
#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_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)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_chan_stats, radio_chan_stats, WMITLV_SIZE_VAR)
+124 −0
Original line number Original line Diff line number Diff line
@@ -914,6 +914,9 @@ typedef enum {
    /** request for WLM (wlan latency manager) stats */
    /** request for WLM (wlan latency manager) stats */
    WMI_REQUEST_WLM_STATS_CMDID,
    WMI_REQUEST_WLM_STATS_CMDID,
    /** request for control path stats */
    WMI_REQUEST_CTRL_PATH_STATS_CMDID,
    /** ARP OFFLOAD REQUEST*/
    /** ARP OFFLOAD REQUEST*/
    WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL),
    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 */
     *  and report WLM (WLAN latency manager) stats info to host */
    WMI_WLM_STATS_EVENTID,
    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 specific events */
    /** NLO match event after the first match */
    /** NLO match event after the first match */
@@ -8857,6 +8864,73 @@ typedef struct {
     */
     */
} wmi_peer_stats_info_event_fixed_param;
} 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 {
typedef struct {
    /** TLV tag and len; tag equals
    /** TLV tag and len; tag equals
     *  WMITLV_TAG_STRUC_wmi_radio_chan_stats */
     *  WMITLV_TAG_STRUC_wmi_radio_chan_stats */
@@ -24675,6 +24749,55 @@ typedef struct {
    A_UINT32 reset_after_request;
    A_UINT32 reset_after_request;
} wmi_request_peer_stats_info_cmd_fixed_param;
} 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 {
typedef enum {
    WMI_REQUEST_ONE_RADIO_CHAN_STATS = 0x01, /* request stats of one specified channel */
    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_REQUEST_ALL_RADIO_CHAN_STATS = 0x02, /* request stats of all channels */
@@ -26190,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_ANT_CONTROLLER_CMDID);
        WMI_RETURN_STRING(WMI_SIMULATION_TEST_CMDID);
        WMI_RETURN_STRING(WMI_SIMULATION_TEST_CMDID);
        WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID);
        WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID);
        WMI_RETURN_STRING(WMI_REQUEST_CTRL_PATH_STATS_CMDID);
    }
    }
    return "Invalid WMI cmd";
    return "Invalid WMI cmd";
+1 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_    0
#define __WMI_VER_MINOR_    0
/** WMI revision number has to be incremented when there is a
/** WMI revision number has to be incremented when there is a
 *  change that may or may not break compatibility. */
 *  change that may or may not break compatibility. */
#define __WMI_REVISION_ 842
#define __WMI_REVISION_ 843


/** The Version Namespace should not be normally changed. Only
/** The Version Namespace should not be normally changed. Only
 *  host and firmware of the same WMI namespace will work
 *  host and firmware of the same WMI namespace will work