#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,
{
SUCCESS,
CELLID_INVALID,
- UEIDX_INVALID
+ UEID_INVALID
}UeDeleteStatus;
typedef enum
RSRC_RRC_CONNECTED_USERS
}ResourceType;
+typedef enum
+{
+ TRANSMISSION_ALLOWED,
+ STOP_TRANSMISSION,
+ RESTART_TRANSMISSION
+}DataTransmissionAction;
+
typedef struct failureCause
{
CauseGrp type;
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;
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
typedef struct pucchFormatCfg
{
- uint8_t interSlotFreqHop;
- uint8_t addDmrs;
+ bool interSlotFreqHop;
+ bool addDmrs;
uint8_t maxCodeRate;
uint8_t numSlots;
bool pi2BPSK;
uint8_t numLcs;
LcCfg lcCfgList[MAX_NUM_LC];
UeCfgState macUeCfgState; /* InActive / Completed */
+ DataTransmissionAction transmissionAction;
}MacUeCfg;
typedef struct nrcgi
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,
Pst *pst,
MacSliceCfgRsp *cfgRsp));
+uint64_t ueBitMapPerCell[MAX_NUM_CELL]; /* Bit Map to store used/free UE-IDX per Cell */
uint8_t packMacCellUpInd(Pst *pst, OduCellId *cellId);
uint8_t unpackMacCellUpInd(DuMacCellUpInd 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);
+int8_t getFreeBitFromUeBitMap(uint16_t cellId);
+void unsetBitInUeBitMap(uint16_t cellId, uint8_t bitPos);
#endif