Sfoglia il codice sorgente

qcacmn: Add support to send CP stats req

Add support to send CP stats request for
type TYPE_REQ_CTRL_PATH_RRM_STA_STAT.

Change-Id: Ibf83c71e9a81cfb127ddc187e6f8960f6d04fddb
CRs-Fixed: 3583928
Sheenam Monga 1 anno fa
parent
commit
cdcfc4efcc

+ 51 - 0
umac/cp_stats/dispatcher/inc/wlan_cp_stats_public_structs.h

@@ -174,6 +174,54 @@ struct ctrl_path_pmlo_telemetry_stats_struct {
 };
 #endif
 
+/**
+ * struct group_id_0: stats for group id 0
+ * @group_transmitted_frame_count: group transmitted frame count
+ * @failed_count: failed count
+ * @group_received_frame_count: group received frame count
+ * @fcs_error_count: fcs error count
+ * @transmitted_frame_count: transmitted frame count
+ */
+struct group_id_0 {
+	uint32_t group_transmitted_frame_count;
+	uint32_t failed_count;
+	uint32_t group_received_frame_count;
+	uint32_t fcs_error_count;
+	uint32_t transmitted_frame_count;
+};
+
+/**
+ * struct group_id_1: stats of group id 1
+ * @rts_success_count: rts success count
+ * @rts_failure_count: rts failure count
+ * @ack_failure_count: ack failure count
+ */
+struct group_id_1 {
+	uint32_t rts_success_count;
+	uint32_t rts_failure_count;
+	uint32_t ack_failure_count;
+};
+
+/**
+ * union group_id_stats : stats for group provided group id
+ * @counter_stats: stats for group id 0
+ * @mac_stats: stats for group id 1
+ */
+union group_id_stats {
+	struct group_id_0 counter_stats;
+	struct group_id_1 mac_stats;
+};
+
+/**
+ * struct cp_sta_stats - cp sta stats
+ * @sta_stats_group_id: group id
+ * @group: group for group stats
+ */
+struct cp_sta_stats {
+	uint8_t sta_stats_group_id;
+	union group_id_stats group;
+};
+
 /**
  * struct infra_cp_stats_event - Event structure to store stats
  * @action: action for which this response was received
@@ -185,6 +233,7 @@ struct ctrl_path_pmlo_telemetry_stats_struct {
  * @twt_infra_cp_stats: pointer to TWT session statistics structures
  * @bmiss_infra_cp_stats: pointer to beacon miss statistics
  * @telemetry_stats: pointer to pmlo telemetry stats struct
+ * @sta_stats: pointer to RRM sta stats struct
  *
  * This structure is used to store the statistics information
  * extracted from firmware event(wmi_pdev_cp_fwstats_eventid)
@@ -203,6 +252,7 @@ struct infra_cp_stats_event {
 #ifdef WLAN_CONFIG_TELEMETRY_AGENT
 	struct ctrl_path_pmlo_telemetry_stats_struct *telemetry_stats;
 #endif
+	struct cp_sta_stats *sta_stats;
 	/* Extend with other required infra_cp_stats structs */
 };
 
@@ -221,6 +271,7 @@ enum infra_cp_stats_id {
 	TYPE_REQ_CTRL_PATH_TWT_STAT,
 	TYPE_REQ_CTRL_PATH_BMISS_STAT,
 	TYPE_REQ_CTRL_PATH_PMLO_STAT,
+	TYPE_REQ_CTRL_PATH_RRM_STA_STAT,
 };
 
 /**

+ 2 - 0
wmi/src/wmi_unified_cp_stats_tlv.c

@@ -46,6 +46,8 @@ static uint32_t get_infra_cp_stats_id(enum infra_cp_stats_id type)
 		return WMI_REQUEST_CTRL_PATH_BMISS_STAT;
 	case TYPE_REQ_CTRL_PATH_PMLO_STAT:
 		return WMI_REQUEST_CTRL_PATH_PMLO_STAT;
+	case TYPE_REQ_CTRL_PATH_RRM_STA_STAT:
+		return WMI_REQUEST_CTRL_STA_RRM_STAT;
 	default:
 		return -EINVAL;
 	}