[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-532] RIC Subscription Delete Req/Rsp API...
[o-du/l2.git] / src / cm / mac_sch_interface.h
index f3d4799..941ad4a 100644 (file)
 #define EVENT_DL_CQI_TO_SCH          32
 #define EVENT_UL_CQI_TO_SCH          33
 #define EVENT_PHR_IND_TO_SCH         34
+#define EVENT_STATISTICS_REQ_TO_SCH  35
+#define EVENT_STATISTICS_RSP_TO_MAC  36
+#define EVENT_STATISTICS_IND_TO_MAC  37
+#define EVENT_STATISTICS_DELETE_REQ_TO_SCH  38
+#define EVENT_STATISTICS_DELETE_RSP_TO_MAC  39
+
 /*macros*/
 #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */
 #define SCH_SSB_MASK_SIZE   1
@@ -448,6 +454,13 @@ typedef enum
    CQI_PUSCH
 }CqiUlReportType;
 
+/* Performance measurements from 3GPP TS 28.552 Release 15 */
+typedef enum
+{
+   SCH_DL_TOTAL_PRB_USAGE,
+   SCH_UL_TOTAL_PRB_USAGE
+}SchMeasurementType;
+
 /*structures*/
 typedef struct timeDomainAlloc
 {
@@ -1961,7 +1974,6 @@ typedef struct schModulationInfo
 typedef struct schUeCfgReq
 {
    uint16_t           cellId;
-   uint8_t            ueId;
    uint8_t            beamIdx; 
    uint16_t           crnti;
    bool               macCellGrpCfgPres;
@@ -1981,7 +1993,6 @@ typedef struct schUeCfgReq
 typedef struct schUeRecfgReq
 {
    uint16_t         cellId;
-   uint8_t          ueId;
    uint8_t          beamIdx;
    uint16_t         crnti;
    bool             macCellGrpRecfgPres;
@@ -2010,7 +2021,6 @@ typedef struct schUeCfgRsp
 {
    uint16_t   cellId;
    uint8_t    beamIdx;
-   uint16_t   ueId;
    uint16_t   crnti;
    SchMacRsp  rsp;
    CauseOfResult cause;
@@ -2237,8 +2247,66 @@ typedef struct schRlsHqInfo
    SchUeHqInfo  *ueHqInfo;
 }SchRlsHqInfo;
 
+/* Statistics Request from MAC to SCH */
+typedef struct schStatsGrpInfo
+{
+   uint8_t   groupId;
+   uint16_t  periodicity;  /* In milliseconds */
+   uint8_t   numStats;
+   SchMeasurementType statsList[MAX_NUM_STATS];
+}SchStatsGrpInfo;
+
+typedef struct schStatsReq
+{
+   uint64_t  subscriptionId;
+   uint8_t   numStatsGroup;
+   SchStatsGrpInfo   statsGrpList[MAX_NUM_STATS_GRP];
+}SchStatsReq;
+
+/* Statistics Response from SCH to MAC */
+typedef struct schStatsGrpRejected
+{
+   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;
+
+/* 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;
+
+typedef struct schStatsDeleteReq
+{
+   uint64_t  subscriptionId;
+}SchStatsDeleteReq;
+
+typedef struct schStatsDeleteRsp
+{
+   uint64_t      subscriptionId;
+   SchMacRsp     rsp;
+   CauseOfResult cause;
+}SchStatsDeleteRsp;
+
 /* function declarations */
-uint8_t schActvInit(Ent entity, Inst instId, Region region, Reason reason);
 uint8_t MacMessageRouter(Pst *pst, void *msg);
 uint8_t SchMessageRouter(Pst *pst, void *msg);