Преглед на файлове

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

Define additional WMI iface link and offload stats

Change-Id: Ie3af980587ce6061bf8d0a40d423759ebb653ba6
CRs-Fixed: 1107600
Sandeep Puligilla преди 8 години
родител
ревизия
48dc871946
променени са 3 файла, в които са добавени 55 реда и са изтрити 8 реда
  1. 3 1
      fw/wmi_tlv_defs.h
  2. 51 6
      fw/wmi_unified.h
  3. 1 1
      fw/wmi_version.h

+ 3 - 1
fw/wmi_tlv_defs.h

@@ -807,6 +807,7 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_vdev_set_arp_stats_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_iface_offload_stats,
 } WMITLV_TAG_ID;
 
 /*
@@ -3660,7 +3661,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID);
 #define WMITLV_TABLE_WMI_IFACE_LINK_STATS_EVENTID(id,op,buf,len)\
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param, wmi_iface_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_iface_link_stats, iface_link_stats, WMITLV_SIZE_VAR) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wmm_ac_stats, ac, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wmm_ac_stats, ac, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_iface_offload_stats, iface_offload_stats, WMITLV_SIZE_VAR)
 
 WMITLV_CREATE_PARAM_STRUC(WMI_IFACE_LINK_STATS_EVENTID);
 

+ 51 - 6
fw/wmi_unified.h

@@ -4668,6 +4668,10 @@ typedef struct {
      * It is superseded by the WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID message.
      */
     A_UINT32 tx_time_per_tpc[MAX_TPC_LEVELS];
+    /** msecs the radio is awake due to Host initiated scan (accruing over time) */
+    A_UINT32 on_time_host_scan;
+    /** msecs the radio is awake due to LPI scan (accruing over time) */
+    A_UINT32 on_time_lpi_scan;
 } wmi_radio_link_stats;
 
 /** tx time per power level statistics */
@@ -4875,8 +4879,46 @@ typedef struct {
     A_UINT32 tx_rts_fail_cnt;
     A_UINT32 tx_ppdu_succ_cnt;
     A_UINT32 tx_ppdu_fail_cnt;
+    /** msecs the interface is in Connected state (accruing over time) */
+    A_UINT32 connected_duration;
+    /** msecs the interface is in DisConnected state (accruing over time) */
+    A_UINT32 disconnected_duration;
+    /** msecs the interface is doing RTT ranging (accruing over time) */
+    A_UINT32 rtt_ranging_duration;
+    /** msecs the interface is in RTT responder mode (accruing over time) */
+    A_UINT32 rtt_responder_duration;
+    /** Number of Probes (Tx) sent on the interface (accruing over time) */
+    A_UINT32 num_probes_tx;
+    /** Number of Beacon misses on this interface (accruing over time) */
+    A_UINT32 num_beacon_miss;
 } wmi_iface_link_stats;
 
+typedef enum {
+    WMI_OFFLOAD_STATS_TYPE_SOC_BCAST   = 0,
+    WMI_OFFLOAD_STATS_TYPE_SOC_MCAST   = 1,
+    WMI_OFFLOAD_STATS_TYPE_SOC_UCAST   = 2,
+    WMI_OFFLOAD_STATS_TYPE_ARP         = 3,
+    WMI_OFFLOAD_STATS_TYPE_NS          = 4,
+    WMI_OFFLOAD_STATS_TYPE_APF_BCAST   = 5,
+    WMI_OFFLOAD_STATS_TYPE_APF_MCAST   = 6,
+    WMI_OFFLOAD_STATS_TYPE_APF_UCAST   = 7,
+    /* Add New offload stat type here */
+    WMI_OFFLOAD_STATS_TYPE_MAX,
+} wmi_offload_stats_type;
+
+typedef struct {
+   A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_offload_stats */
+   /** Type of offload stat. enum wmi_offload_stats_type **/
+   A_UINT32 type;
+   /** Number of (MSDUs) frames Received **/
+   A_UINT32 rx_count;
+   /** Number of frames Dropped **/
+   A_UINT32 drp_count;
+   /** Number of frames for which FW Responded (Valid for ARP and NS only). (or)
+     * Number of frames forwarded to Host (Valid for stats type except ARP and NS). **/
+   A_UINT32 fwd_count;
+} wmi_iface_offload_stats;
+
 /** Interface statistics (once started) reset and start afresh after each connection */
 typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param */
@@ -4884,10 +4926,13 @@ typedef struct {
     A_UINT32 request_id;
     /** unique id identifying the VDEV, generated by the caller */
     A_UINT32 vdev_id;
+    /** Number of offload stats **/
+    A_UINT32 num_offload_stats;
 /*
- * This TLV is followed by another TLV
+ * This TLV is followed by other TLVs:
  *   wmi_iface_link_stats iface_link_stats;
  *   num_ac * size of(struct wmi_wmm_ac_stats)
+ *   wmi_iface_offload_stats iface_offload_stats[num_offload_stats]
  */
 } wmi_iface_link_stats_event_fixed_param;
 
@@ -10460,7 +10505,7 @@ typedef enum {
 } WMI_ARP_STATS_ACTION;
 
 typedef enum {
-    WMI_ARP_STATS_RX_PKT_TYPE_ARP = 0x1,      
+    WMI_ARP_STATS_RX_PKT_TYPE_ARP = 0x1,
 } WMI_ARP_STATS_RX_PKT_TYPE;
 
 typedef enum {
@@ -10470,7 +10515,7 @@ typedef enum {
 
 typedef enum {
     WMI_CONNECTION_STATUS_FAILURE = 0x0,
-    WMI_CONNECTION_STATUS_SUCCESS,    
+    WMI_CONNECTION_STATUS_SUCCESS,
 } WMI_ARP_STATS_CONNECTION_STATUS;
 
 /* ARP stats set (configure) req */
@@ -10485,7 +10530,7 @@ typedef struct {
 /* ARP stats get req */
 typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_arp_stats_cmd_fixed_param */
-    A_UINT32 vdev_id;    
+    A_UINT32 vdev_id;
 } wmi_vdev_get_arp_stats_cmd_fixed_param;
 
 /* per vdev based ARP stats */
@@ -16858,7 +16903,7 @@ typedef struct {
     A_UINT32 enable;
     /** periodic stats duration (units are milliseconds) */
     A_UINT32 stats_period;
-    /** pdev_id for identifying the MAC 
+    /** pdev_id for identifying the MAC
      * See macros starting with WMI_PDEV_ID_ for values.
      */
     A_UINT32 pdev_id;
@@ -17202,7 +17247,7 @@ typedef struct {
 typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_COMBO */
     A_UINT32 chainmask_table_id;
-    /* Number of vaild Chainmask in the table */ 
+    /* Number of vaild Chainmask in the table */
     A_UINT32 num_valid_chainmask;
 /*
  * This TLV is followed by the below TLVs:

+ 1 - 1
fw/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_ 356
+#define __WMI_REVISION_ 357
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work