[Epic-ID: ODUHIGH-517][Task-ID: ODUHIGH-539][SubTask-Id: ODUHIGH-542] Multi UE| DL...
[o-du/l2.git] / src / cm / mac_sch_interface.h
index fd9554b..4166a8e 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
+#define EVENT_STATISTICS_MODIFY_REQ_TO_SCH  40
+#define EVENT_STATISTICS_MODIFY_RSP_TO_MAC  41
+
 /*macros*/
 #define MAX_SSB_IDX 1 /* forcing it as 1 for now. Right value is 64 */
 #define SCH_SSB_MASK_SIZE   1
@@ -139,14 +147,6 @@ typedef enum
    RRC_CONNECTED_USERS_RSRC
 }SchResourceType;
 
-typedef enum
-{
-   SLICE_NOT_FOUND,
-   SLICE_CONFIGURED,
-   SLICE_RECONFIGURED,
-   RESOURCE_NOT_AVAILABLE 
-}RspCause;
-
 typedef enum
 {
    NO_TRANSMISSION,
@@ -154,14 +154,6 @@ typedef enum
    REPEATITION 
 }PduTxOccsaion;
 
-typedef enum
-{
-   UNSPECIFIED_CAUSE,
-   INVALID_PARAM_VALUE,
-   RESOURCE_UNAVAILABLE,
-   SYSTEM_ERROR
-}SchFailureCause;
-
 typedef enum
 {
    SR_PROHIBIT_MS1,
@@ -174,13 +166,6 @@ typedef enum
    SR_PROHIBIT_MS128
 }SchSrProhibitTimer;
 
-typedef enum
-{
-   NOT_APPLICABLE,
-   INVALID_CELLID,
-   INVALID_UEID
-}ErrorCause;
-
 typedef enum
 {
    SR_TRANS_MAX_N4,
@@ -307,22 +292,22 @@ typedef enum
 
 typedef enum
 {
-   SLOT_PERIODICITY_AND_OFFSET_SL_1 = 1,
-   SLOT_PERIODICITY_AND_OFFSET_SL_2,
-   SLOT_PERIODICITY_AND_OFFSET_SL_4,
-   SLOT_PERIODICITY_AND_OFFSET_SL_5,
-   SLOT_PERIODICITY_AND_OFFSET_SL_8,
-   SLOT_PERIODICITY_AND_OFFSET_SL_10,
-   SLOT_PERIODICITY_AND_OFFSET_SL_16,
-   SLOT_PERIODICITY_AND_OFFSET_SL_20,
-   SLOT_PERIODICITY_AND_OFFSET_SL_40,
-   SLOT_PERIODICITY_AND_OFFSET_SL_80,
-   SLOT_PERIODICITY_AND_OFFSET_SL_160,
-   SLOT_PERIODICITY_AND_OFFSET_SL_320,
-   SLOT_PERIODICITY_AND_OFFSET_SL_640,
-   SLOT_PERIODICITY_AND_OFFSET_SL_1280,
-   SLOT_PERIODICITY_AND_OFFSET_SL_2560
-}SchMSlotPeriodAndOffset;
+   SLOT_PERIODICITY_SL_1 = 1,
+   SLOT_PERIODICITY_SL_2,
+   SLOT_PERIODICITY_SL_4,
+   SLOT_PERIODICITY_SL_5,
+   SLOT_PERIODICITY_SL_8,
+   SLOT_PERIODICITY_SL_10,
+   SLOT_PERIODICITY_SL_16,
+   SLOT_PERIODICITY_SL_20,
+   SLOT_PERIODICITY_SL_40,
+   SLOT_PERIODICITY_SL_80,
+   SLOT_PERIODICITY_SL_160,
+   SLOT_PERIODICITY_SL_320,
+   SLOT_PERIODICITY_SL_640,
+   SLOT_PERIODICITY_SL_1280,
+   SLOT_PERIODICITY_SL_2560
+}SchMSlotPeriodicity;
 
 typedef enum
 {
@@ -471,6 +456,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
 {
@@ -907,7 +899,6 @@ typedef struct schCellCfg
    uint16_t        phyCellId;               /* Physical cell id */
    SchPlmnInfoList plmnInfoList[MAX_PLMN];  /* Consits of PlmnId and Snssai list */
    SchDuplexMode   dupMode;                 /* Duplex type: TDD/FDD */
-   uint8_t         numerology;              /* Supported numerology */
    uint8_t         dlBandwidth;             /* Supported B/W */
    uint8_t         ulBandwidth;             /* Supported B/W */
    SchDlCfgCommon  dlCfgCommon;             /*Spec 38.331 DownlinkConfigCommonSIB*/
@@ -922,8 +913,8 @@ typedef struct schCellCfg
    SchSSBPeriod        ssbPeriod;        /* SSB Periodicity in msec */
    uint32_t            ssbFrequency;     /* SB frequency in kHz*/
    uint8_t             dmrsTypeAPos;
-   uint8_t             scsCommon;        /* subcarrier spacing for common [0-3]*/
-   SchPdcchConfigSib1  pdcchCfgSib1;      /* Req to configure CORESET#0 and SearchSpace#0*/
+   uint8_t             ssbScs;           /* SSB subcarrier spacing*/
+   SchPdcchConfigSib1  pdcchCfgSib1;     /* Req to configure CORESET#0 and SearchSpace#0*/
    uint32_t            ssbPbchPwr;       /* SSB block power */
    uint8_t             ssbSubcOffset;    /* Subcarrier Offset(Kssb) */
    uint16_t            sib1PduLen;
@@ -934,7 +925,7 @@ typedef struct schCellCfgCfm
 {
    uint16_t         cellId;     /* Cell Id */
    SchMacRsp        rsp;   
-   SchFailureCause  cause;
+   CauseOfResult    cause;
 }SchCellCfgCfm;
 
 /*Ref: ORAN_WG8.V7.0.0 Sec 11.2.4.2.2 Cell Del Req*/
@@ -948,7 +939,7 @@ typedef struct schCellDeleteRsp
 {
    uint16_t        cellId;
    SchMacRsp       rsp;
-   SchFailureCause cause;
+   CauseOfResult   cause;
 }SchCellDeleteRsp;
 
 /*Ref: ORAN_WG8.V7.0.0 Sec 11.2.4.2.3*/
@@ -976,7 +967,7 @@ typedef struct schSliceCfgRsp
 {
    Snssai     snssai;
    SchMacRsp  rsp;
-   RspCause   cause;
+   CauseOfResult cause;
 }SchSliceCfgRsp;
 
 /*As per ORAN-WG8 V7.0.0 Sec 11.2.4.3.4 , Slice Cfg and Recfg are same structures*/
@@ -1451,6 +1442,13 @@ typedef struct schControlRsrcSet
    uint16_t            dmrsScramblingId;
 }SchControlRsrcSet;
 
+/*Slot Perioicity and Offset*/
+typedef struct schMSlotPeriodAndOffset
+{
+   SchMSlotPeriodicity  mSlotPeriodicity;
+   uint16_t             mSlotOffset;
+}SchMSlotPeriodAndOffset;
+
 /* Search Space info */
 typedef struct schSearchSpace
 {
@@ -1985,7 +1983,6 @@ typedef struct schModulationInfo
 typedef struct schUeCfgReq
 {
    uint16_t           cellId;
-   uint8_t            ueId;
    uint8_t            beamIdx; 
    uint16_t           crnti;
    bool               macCellGrpCfgPres;
@@ -2005,7 +2002,6 @@ typedef struct schUeCfgReq
 typedef struct schUeRecfgReq
 {
    uint16_t         cellId;
-   uint8_t          ueId;
    uint8_t          beamIdx;
    uint16_t         crnti;
    bool             macCellGrpRecfgPres;
@@ -2034,10 +2030,9 @@ typedef struct schUeCfgRsp
 {
    uint16_t   cellId;
    uint8_t    beamIdx;
-   uint16_t   ueId;
    uint16_t   crnti;
    SchMacRsp  rsp;
-   SchFailureCause cause;
+   CauseOfResult cause;
 }SchUeCfgRsp;
 
 /*As per WG8 V7.0.0 Sec 11.2.4.3.6, UE ReCFG and UECFG have same structure definition*/
@@ -2056,7 +2051,7 @@ typedef struct schUeDeleteRsp
    uint16_t   cellId;
    uint16_t   crnti;
    SchMacRsp  rsp;
-   ErrorCause cause;
+   CauseOfResult cause;
 }SchUeDeleteRsp;
 
 /*Spec O-RAN, WG8, V7.0.0, '11.2.4.2.8' DL HARQ Indication*/
@@ -2261,8 +2256,80 @@ 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;
+
+typedef struct schStatsReq SchStatsModificationReq;
+typedef struct schStatsRsp SchStatsModificationRsp;
+
+/* 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;
+   uint8_t   numStatsGroupToBeDeleted;
+   uint8_t   statsGrpIdToBeDelList[MAX_NUM_STATS_GRP];
+}SchStatsDeleteReq;
+
+typedef struct statsDeleteResult
+{
+   uint8_t       groupId;
+   SchMacRsp     statsGrpDelRsp;
+   CauseOfResult statsGrpDelCause;
+}StatsDeleteResult;
+
+typedef struct schStatsDeleteRsp
+{
+   uint64_t          subscriptionId; /* subscription Id */
+   SchMacRsp         subsDelRsp;    /* deletion status of all statsGrp with given subscriptionId */
+   CauseOfResult     subsDelCause;  /* cause of failure in deletion of all statsGrp with given subscriptionId*/
+   uint8_t           numStatsGroupDeleted; /* num of action deleted */ 
+   StatsDeleteResult statsGrpDelInfo[MAX_NUM_STATS_GRP]; /* list of the deletion status for specific actions */
+}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);