PHY_DELTA changes
[o-du/l2.git] / src / 5gnrsch / sch.h
index 80f873d..96f3d22 100644 (file)
@@ -21,6 +21,7 @@
 #define SCH_MAX_CELLS 1
 #define SCH_MAX_INST 1
 #define SCH_NUM_SLOTS 10 /*forcing this to 10 */
+#define SCH_MAX_SFN 1024
 #define MAX_NUM_RB 106 /* value for numerology 0 15Khz */
 #define SCH_MIB_TRANS 80 
 #define SCH_NUM_SC_PRB 12 /* number of SCs in a PRB */
 #define SCH_MEM_REGION     4
 #define SCH_POOL           1
 #define SCHED_DELTA 1
+#define BO_DELTA 1
+#define RAR_DELAY   2
+#define SCH_MAX_UE  1
+#define PUSCH_START_RB 15
+#define SI_RNTI 0xFFFF
+#define P_RNTI  0xFFFE
+
+#define CRC_FAILED 0
+#define CRC_PASSED 1
 
 /* allocate and zero out a static buffer */
 #define SCH_ALLOC(_datPtr, _size)                                \
@@ -51,7 +61,6 @@
       SPutSBuf(SCH_MEM_REGION, SCH_POOL,                      \
          (Data *)_datPtr, _size);
 
-
 #define SCH_FILL_RSP_PST(_rspPst, _inst)\
 {                                  \
    _rspPst.srcProcId = SFndProcId(); \
@@ -62,7 +71,7 @@
    _rspPst.dstInst   = 0;\
        _rspPst.selector  = MAC_SELECTOR_TC;\
 }      
-
+extern uint8_t schProcessRachInd(RachIndInfo *rachInd, Inst schInst);
 /**
   * @brief
   * Structure holding LTE MAC's General Configuration information.
@@ -83,25 +92,35 @@ typedef struct schGenCb
   * @brief
   * scheduler allocationsfor DL per cell.
   */
-typedef struct schDlAlloc
+typedef struct schDlSlotInfo
 {
        uint16_t    totalPrb;  /*!< Number of RBs in the cell */
        uint16_t    assignedPrb[SCH_SYMBOL_PER_SLOT]; /*!< Num RBs and corresponding symbols allocated */
    bool        ssbPres;    /*!< Flag to determine if SSB is present in this slot */
    uint8_t     ssbIdxSupported;  /*!< Max SSB index */
        SsbInfo     ssbInfo[MAX_SSB_IDX]; /*!< SSB info */
-}SchDlAlloc;
+       bool        sib1Pres;
+       //bool        rarPres;
+       RarInfo     *rarInfo;
+   Msg4Info    *msg4Info;
+}SchDlSlotInfo;
+
+typedef struct schRaCb
+{
+   uint16_t tcrnti;
+}SchRaCb;
 
 /**
   * @brief
   * scheduler allocationsfor UL per cell.
   */
-typedef struct schUlAlloc
+typedef struct schUlSlotInfo
 {
-       uint16_t    totalPrb;  /*!< Number of RBs in the cell */
-       uint16_t    assignedPrb[SCH_SYMBOL_PER_SLOT]; /*!< Num RBs and corresponding symbols allocated */
-       uint8_t     prachStartSymb; /*!< Start symbol for PRACH */
-}SchUlAlloc;
+       uint16_t     totalPrb;  /*!< Number of RBs in the cell */
+       uint16_t     assignedPrb[SCH_SYMBOL_PER_SLOT]; /*!< Num RBs and corresponding symbols allocated */
+       bool         puschPres; /*!< PUSCH presence field */
+       SchPuschInfo *schPuschInfo; /*!< PUSCH info */
+}SchUlSlotInfo;
 
 /**
   * @brief
@@ -114,9 +133,10 @@ typedef struct schCellCb
    Inst          macInst;          /*!< Index of the MAC instance */
        uint8_t       numSlots;         /*!< Number of slots in current frame */
    SlotIndInfo   slotInfo;         /*!< SFN, Slot info being processed*/
-   SchDlAlloc    *dlAlloc[SCH_NUM_SLOTS]; /*!< SCH resource allocations in DL */
-   SchUlAlloc    *ulAlloc[SCH_NUM_SLOTS]; /*!< SCH resource allocations in UL */
+   SchDlSlotInfo *schDlSlotInfo[SCH_NUM_SLOTS]; /*!< SCH resource allocations in DL */
+   SchUlSlotInfo *schUlSlotInfo[SCH_NUM_SLOTS]; /*!< SCH resource allocations in UL */
        SchCellCfg    cellCfg;                /*!< Cell ocnfiguration */
+       SchRaCb       raCb[SCH_MAX_UE];
 }SchCellCb;
 
 /**
@@ -134,10 +154,10 @@ typedef struct schCb
 SchCb schCb[SCH_MAX_INST];
 
 /* function declarations */
-uint8_t schCmnDlAlloc(SchCellCb *cell, DlBrdcstAlloc *dlBrdcstAlloc);
-int     schProcessSlotInd(SlotIndInfo *slotInd, Inst inst);
-int schUlResAlloc(SchCellCb *cell, Inst schInst);
-
+uint8_t schBroadcastAlloc(SchCellCb *cell, DlBrdcstAlloc *dlBrdcstAlloc,uint16_t slot);
+uint8_t schProcessSlotInd(SlotIndInfo *slotInd, Inst inst);
+uint8_t schUlResAlloc(SchCellCb *cell, Inst schInst);
+uint8_t schDlRsrcAllocMsg4(Msg4Alloc *msg4Alloc, SchCellCb *cell, uint16_t slot);
 
 
 /**********************************************************************