[Epic-ID: ODUHIGH-406][Task-ID: ODUHIGH-423]UE context creation at MAC/SCH in Target DU
[o-du/l2.git] / src / cm / du_app_mac_inf.h
index a10e2aa..f4d185d 100644 (file)
 #define EVENT_MAC_SLICE_CFG_RSP      217
 #define EVENT_MAC_SLICE_RECFG_REQ    218
 #define EVENT_MAC_SLICE_RECFG_RSP    219
+#define EVENT_MAC_SLOT_IND           220
 
 #define BSR_PERIODIC_TIMER_SF_10 10
 #define BSR_RETX_TIMER_SF_320 320
 #define BSR_SR_DELAY_TMR_2560 2560
 
+#define GET_PAGING_CYCLE(enmValue, T) {               \
+        if (enmValue == 0) T = 32;                           \
+       else if (enmValue == 1) T = 64;                       \
+       else if (enmValue == 2) T = 128;                      \
+       else if (enmValue == 3) T = 256;                      \
+       else T = 0;                                         \
+}
+
+#define GET_NUM_PAGING_OCC(enmValue, PO) {               \
+        if (enmValue == 0) PO = 4;                            \
+       else if (enmValue == 1) PO = 2;                       \
+       else if (enmValue == 2) PO = 1;                      \
+       else PO = 0;                                         \
+}
+
+#define PAGING_SCHED_DELTA  4
+
 typedef enum
 {
    MAC_DU_APP_RSP_NOK,
@@ -100,7 +118,7 @@ typedef enum
 {
    SUCCESS,
    CELLID_INVALID,
-   UEIDX_INVALID
+   UEID_INVALID
 }UeDeleteStatus;
 
 typedef enum
@@ -570,6 +588,13 @@ typedef struct prachCfg
    uint8_t       raRspWindow;         /* RA Response Window */
 }PrachCfg;
 
+typedef struct schPageCfg
+{
+  uint8_t  numPO;                    /*Derived from Ns*/
+  bool     poPresent;                /*Whether FirstPDCCH-MonitoringPO is present or not*/
+  uint16_t pagingOcc[MAX_PO_PER_PF]; /*FirstPDCCH-Monitoring Paging Occasion*/
+}SchPageCfg;
+
 typedef struct sib1CellCfg
 {
    uint8_t  *sib1Pdu;
@@ -578,6 +603,7 @@ typedef struct sib1CellCfg
    uint8_t coresetZeroIndex;     /* derived from 4 LSB of pdcchSib1 present in MIB */
    uint8_t searchSpaceZeroIndex; /* derived from 4 MSB of pdcchSib1 present in MIB */
    uint16_t sib1Mcs;
+   SchPageCfg  pagingCfg;
 } Sib1CellCfg; 
 
 typedef struct bwpParams
@@ -975,8 +1001,8 @@ typedef struct pucchResrcCfg
 
 typedef struct pucchFormatCfg
 {
-   uint8_t interSlotFreqHop;
-   uint8_t addDmrs;
+   bool interSlotFreqHop;
+   bool addDmrs;
    uint8_t maxCodeRate;
    uint8_t numSlots;
    bool    pi2BPSK;
@@ -1219,7 +1245,8 @@ typedef struct modulationInfo
 typedef struct macUeCfg
 {
    uint16_t cellId;
-   uint8_t  ueIdx;
+   uint8_t  ueId;
+   uint8_t  duUeF1apId;
    uint16_t crnti;
    bool macCellGrpCfgPres;
    MacCellGrpCfg macCellGrpCfg;
@@ -1262,7 +1289,7 @@ typedef struct sCellFailInfo
 typedef struct ueCfgRsp
 {
    uint16_t       cellId;
-   uint16_t       ueIdx;
+   uint16_t       duUeF1apId;
    MacRsp         result;
    uint8_t        numSRBFailed;   /* valid values : 0 to MAX_NUM_SRB */ 
    SRBFailInfo    *failedSRBlisti;
@@ -1334,6 +1361,11 @@ typedef uint8_t (*DuMacCellUpInd) ARGS((
         Pst       *pst,
         OduCellId *cellId ));
 
+/* Functions for slot Ind from MAC to DU APP*/
+typedef uint8_t (*DuMacSlotInd) ARGS((
+        Pst       *pst,
+        SlotTimingInfo *slotIndInfo));
+
 /* Functions for stop Ind from MAC to DU APP*/
 typedef uint8_t (*DuMacStopInd) ARGS((
         Pst        *pst,
@@ -1490,6 +1522,9 @@ uint8_t unpackMacSliceReCfgReq(DuMacSliceRecfgReq func, Pst *pst, Buffer *mBuf);
 uint8_t DuProcMacSliceReCfgRsp(Pst *pst,  MacSliceCfgRsp *cfgRsp);
 uint8_t packDuMacSliceReCfgRsp(Pst *pst, MacSliceCfgRsp *cfgRsp);
 uint8_t unpackDuMacSliceReCfgRsp(MacDuSliceReCfgRspFunc func, Pst *pst, Buffer *mBuf);
+uint8_t duHandleSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo);
+uint8_t packMacSlotInd(Pst *pst, SlotTimingInfo *slotIndInfo);
+uint8_t unpackDuMacSlotInd(DuMacSlotInd func, Pst *pst, Buffer *mBuf);
 
 #endif