[Epic-ID: ODUHIGH-517][Task-ID: ODUHIGH-539][SubTask-Id: ODUHIGH-542] Multi UE| DL...
[o-du/l2.git] / src / 5gnrsch / sch.h
index 38d0063..95f37f7 100644 (file)
@@ -79,6 +79,9 @@
 
 #define SCH_TQ_SIZE 10
 
+/*3GPP 38.331,'frequencyDomainResources' :Number of PRBs per Resource Block Group*/
+#define NUM_PRBS_PER_RBG 6 
+
 typedef struct schDlHqProcCb SchDlHqProcCb;
 typedef struct schUlHqEnt SchUlHqEnt;
 typedef struct schRaReq SchRaReq;
@@ -602,17 +605,36 @@ typedef struct
 
 typedef struct dlTotalPrbUsage
 {
-   Inst     schInst;
    uint16_t numPrbUsedForTx;
    uint16_t totalPrbAvailForTx;
-   uint16_t periodicity;
-   CmTimer  periodTimer;
 }TotalPrbUsage;
 
-typedef struct schStatistics
+typedef struct 
 {
    TotalPrbUsage *dlTotalPrbUsage;
    TotalPrbUsage *ulTotalPrbUsage;
+}SchKpiSupported;
+
+typedef struct
+{
+   CmLListCp  dlTotPrbUseList;
+   CmLListCp  ulTotPrbUseList;
+}SchKpiActive;
+
+typedef struct schStatsGrp
+{
+   Inst       schInst;
+   uint64_t   subscriptionId;
+   uint8_t    groupId;
+   uint16_t   periodicity;  /* In milliseconds */
+   CmTimer    periodTimer;
+   SchKpiSupported kpiStats;
+}SchStatsGrp;
+
+typedef struct schStatistics
+{
+   CmLListCp     statsGrpList;
+   SchKpiActive  activeKpiList;
 }SchStatistics;
 
 /**
@@ -796,8 +818,11 @@ void schMsg4Complete(SchUeCb *ueCb);
 
 /* Statistics Function */
 uint8_t SchProcStatsReq(Pst *pst, SchStatsReq *statsReq);
-uint8_t SchSendStatsIndToMac(Inst inst, SchMeasurementType measType, double value);
-
+uint8_t SchSendStatsIndToMac(Inst inst, SchStatsInd  *statsInd);
+uint8_t schCalcAndSendGrpStats(SchStatsGrp *grpInfo);
+uint8_t SchProcStatsDeleteReq(Pst *pst, SchStatsDeleteReq *statsDeleteReq);
+uint8_t SchProcStatsModificationReq(Pst *pst, SchStatsModificationReq *statsModificationReq);
+void deleteStatsGrpInfo(Inst inst, SchStatsGrp *statsGrpInfo);
 /**********************************************************************
   End of file
  **********************************************************************/