DL Resource allocation for msg4
[o-du/l2.git] / src / cm / mac_sch_interface.h
index 0c599ee..927ac16 100644 (file)
 /* events */
 #define EVENT_SCH_CELL_CFG      1
 #define EVENT_SCH_CELL_CFG_CFM  2
-#define EVENT_DL_ALLOC   3 
+#define EVENT_DL_ALLOC          
 #define EVENT_UL_SCH_INFO       4 
+#define EVENT_RACH_IND_TO_SCH        5
+#define EVENT_CRC_IND_TO_SCH         6
+#define EVENT_DL_RLC_BO_INFO_TO_SCH  7
 
 /* selector */
 #define MAC_SCH_LC_SELECTOR 0
@@ -51,6 +54,9 @@
 #define SCH_DATATYPE_PRACH 16
 
 #define MAX_NUMBER_OF_CRC_IND_BITS 1
+#define MAX_NUM_LOGICAL_CHANNELS   11
+
+#define CCCH_LCID  0
 
 /*structures*/
 
@@ -387,6 +393,27 @@ typedef struct rarAlloc
    PdschCfg rarPdschCfg;
 }RarAlloc;
 
+typedef struct msg4Info
+{
+       uint8_t  ndi;
+       uint8_t  harqProcNum;
+       uint8_t  dlAssignIdx;
+       uint8_t  pucchTpc;
+       uint8_t  pucchResInd;
+       uint8_t  harqFeedbackInd;
+       uint8_t  dciFormatId;
+   uint16_t crnti;
+   uint8_t  *msg4Pdu;
+   uint8_t  msg4PduLen;
+}Msg4Info;
+
+typedef struct msg4Alloc
+{
+   Msg4Info msg4Info;
+   PdcchCfg msg4PdcchCfg;
+   PdschCfg msg4PdschCfg;
+}Msg4Alloc;
+
 typedef struct dlAlloc
 {
    uint16_t cellId;  /* Cell Id */
@@ -399,6 +426,9 @@ typedef struct dlAlloc
        /* Allocation for RAR message */
        uint8_t isRarPres;
        RarAlloc rarAlloc;
+
+   /* Allocation from MSG4 */
+   Msg4Alloc *msg4Alloc;
 }DlAlloc;
 
 typedef struct tbInfo
@@ -450,6 +480,20 @@ typedef struct crcIndInfo
    uint8_t     crcInd[MAX_NUMBER_OF_CRC_IND_BITS];
 }CrcIndInfo;
 
+typedef struct boInfo
+{
+   uint8_t   lcId;
+   uint32_t  dataVolume;
+}BOInfo;
+
+typedef struct dlRlcBOInfo
+{
+   uint16_t    cellId;
+   uint16_t    crnti;
+   uint16_t    numLc;
+   BOInfo      boInfo[MAX_NUM_LOGICAL_CHANNELS];
+}DlRlcBOInfo;
+
 
 /* function pointers */
 
@@ -493,6 +537,10 @@ int macSchRachInd(Pst *pst, RachIndInfo *rachInd);
 typedef int (*MacSchCrcIndFunc)(Pst *pst, CrcIndInfo *crcInd);
 int packMacSchCrcInd(Pst *pst, CrcIndInfo *crcInd);
 int macSchCrcInd(Pst *pst, CrcIndInfo *crcInd);
+typedef uint8_t (*MacSchDlRlcBoInfoFunc)(Pst *pst, DlRlcBOInfo *dlBoInfo);
+uint8_t packMacSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo);
+uint8_t macSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo);
+
 
 /**********************************************************************
   End of file