[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-523] KPI reporting per statistics group
[o-du/l2.git] / src / cm / mac_sch_interface.h
index 58f894a..ae772ad 100644 (file)
@@ -2248,30 +2248,54 @@ typedef struct schRlsHqInfo
    SchUeHqInfo  *ueHqInfo;
 }SchRlsHqInfo;
 
-typedef struct schStatsInfo
+/* Statistics Request from MAC to SCH */
+typedef struct schStatsGrpInfo
 {
-   SchMeasurementType type;
-   uint16_t           periodicity;  /* In milliseconds */
-}SchStatsInfo;
+   uint8_t   groupId;
+   uint16_t  periodicity;  /* In milliseconds */
+   uint8_t   numStats;
+   SchMeasurementType statsList[MAX_NUM_STATS];
+}SchStatsGrpInfo;
 
 typedef struct schStatsReq
 {
-   uint8_t   numStats;
-   SchStatsInfo statsList[MAX_NUM_STATS];
+   uint64_t  subscriptionId;
+   uint8_t   numStatsGroup;
+   SchStatsGrpInfo   statsGrpList[MAX_NUM_STATS_GRP];
 }SchStatsReq;
 
-typedef struct schStatsRsp
+/* Statistics Response from SCH to MAC */
+typedef struct schStatsGrpRejected
 {
-   SchMacRsp rsp; 
+   uint8_t   groupId;
    CauseOfResult cause;
+}SchStatsGrpRejected;
+
+typedef struct schStatsRsp
+{
+   uint64_t             subscriptionId;
+   uint8_t              numGrpAccepted;
+   uint8_t              statsGrpAcceptedList[MAX_NUM_STATS_GRP];
+   uint8_t              numGrpRejected;
+   SchStatsGrpRejected  statsGrpRejectedList[MAX_NUM_STATS_GRP];
 }SchStatsRsp;
 
-typedef struct schStatsInd
+/* Statistics Indication from SCH to MAC */
+typedef struct schStats
 {
    SchMeasurementType type;
    double value;
+}SchStats;
+
+typedef struct schStatsInd
+{
+   uint64_t    subscriptionId;
+   uint8_t     groupId;
+   uint8_t     numStats;
+   SchStats    measuredStatsList[MAX_NUM_STATS];
 }SchStatsInd;
 
+
 /* function declarations */
 uint8_t MacMessageRouter(Pst *pst, void *msg);
 uint8_t SchMessageRouter(Pst *pst, void *msg);