X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2F5gnrmac%2Fmac.h;h=10538aa01f5dc611632c0f4138e429a4d38b192a;hb=531da47c7bfb6ce138a454f66eb184729860beef;hp=fb78f8073f482a65ceb426e0b6535cf559ea817c;hpb=0bb62f25ad9d8f9ff8724572f96e51a898937f0c;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac.h b/src/5gnrmac/mac.h index fb78f8073..10538aa01 100644 --- a/src/5gnrmac/mac.h +++ b/src/5gnrmac/mac.h @@ -90,6 +90,21 @@ typedef enum MAC_LC_STATE_ACTIVE }MacLcState; +typedef struct dlTbInfo +{ + SlotTimingInfo txTime; + uint16_t tbSize; + uint8_t *tb; +}DlTbInfo; + +/* DL HARQ Process Info */ +typedef struct dlHarqProcCb +{ + uint8_t procId; /* HARQ Process Id */ + uint8_t numTb; /* Number of TB */ + DlTbInfo tbInfo[MAX_NUM_TB_PER_UE]; /* TB information */ +}DlHarqProcCb; + typedef struct macDlSlot { DlSchedInfo dlInfo; @@ -108,8 +123,7 @@ typedef struct macCbInfo uint8_t msg3Pdu[6]; /* used as CRI value during muxing */ uint8_t *msg4Pdu; /* storing DL-CCCH Ind Pdu */ uint16_t msg4PduLen; /* storing DL-CCCH Ind Pdu Len */ - uint8_t *msg4TxPdu; /* muxed Pdu used for re-transmission */ - uint16_t msg4TbSize; /* size required for msg4TxPdu */ + DlHarqProcCb msg4HqInfo; /* HARQ process info for msg 4 */ }MacRaCbInfo; typedef struct macCe @@ -138,12 +152,6 @@ typedef struct macDlData MacDlInfo pduInfo[MAX_MAC_DL_PDU]; }MacDlData; -/* HARQ Process Info */ -typedef struct dlHarqProcCb -{ - uint8_t procId; /* HARQ Process Id */ -}DlHarqProcCb; - /* DL HARQ entity */ typedef struct dlHarqEnt { @@ -221,6 +229,7 @@ typedef struct macUeCb struct macCellCb { uint16_t cellId; + uint16_t numOfSlots; CellState state; uint16_t crntiMap; MacRaCbInfo macRaCb[MAX_NUM_UE]; @@ -228,6 +237,7 @@ struct macCellCb MacUlSlot ulSlot[MAX_SLOTS]; uint16_t numActvUe; MacUeCfg *ueCfgTmpData[MAX_NUM_UE]; + MacUeRecfg *ueRecfgTmpData[MAX_NUM_UE]; MacUeCb ueCb[MAX_NUM_UE]; MacCellCfg macCellCfg; SlotTimingInfo currTime; @@ -248,7 +258,10 @@ typedef struct macCb MacCb macCb; /* Function declarations */ +uint8_t macActvInit ARGS((Ent entity, Inst inst, Region region, Reason reason)); +uint8_t macActvTsk(Pst *pst, Buffer *mBuf); short int macActvTmr(Ent ent,Inst inst); + void fillRarPdu(RarInfo *rarInfo); void fillMsg4DlData(MacDlData *dlData, uint16_t msg4PduLen, uint8_t *msg4Pdu); void fillMacCe(MacCeInfo *macCeData, uint8_t *msg3Pdu); @@ -258,12 +271,20 @@ void fillMg4Pdu(DlMsgAlloc *msg4Alloc); void buildAndSendMuxPdu(SlotTimingInfo currTimingInfo); uint8_t macProcUlCcchInd(uint16_t cellId, uint16_t crnti, uint16_t rrcContSize, uint8_t *rrcContainer); uint8_t macProcShortBsr(uint16_t cellId, uint16_t crnti, uint8_t lcgId, uint32_t bufferSize); -uint8_t macProcUlData(uint16_t cellId, uint16_t rnti, SlotTimingInfo slotInfo, \ - uint8_t lcId, uint16_t pduLen, uint8_t *pdu); +uint8_t macProcUlData(uint16_t cellId, uint16_t rnti, SlotTimingInfo slotInfo, uint8_t lcId, uint16_t pduLen, uint8_t *pdu); uint8_t sendSchedRptToRlc(DlSchedInfo dlInfo, SlotTimingInfo slotInfo, uint8_t ueIdx, uint8_t schInfoIdx); -uint8_t macProcLongBsr(uint16_t cellId, uint16_t crnti,uint8_t numLcg,\ - DataVolInfo dataVolInfo[MAX_NUM_LOGICAL_CHANNEL_GROUPS]); +uint8_t macProcLongBsr(uint16_t cellId, uint16_t crnti,uint8_t numLcg, DataVolInfo dataVolInfo[MAX_NUM_LOGICAL_CHANNEL_GROUPS]); void freeMacSliceCfgReq(MacSliceCfgReq *cfgReq,Pst *pst); +void deleteMacRaCb(uint16_t cellIdx, MacUeCb *ueCb); + +uint8_t MacProcSchSliceCfgRsp(Pst *pst, SchSliceCfgRsp *schSliceCfgRsp); +uint8_t MacProcSchSliceRecfgRsp(Pst *pst, SchSliceRecfgRsp *sliceRecfgrsp); +uint8_t MacProcSchCellCfgCfm(Pst *pst, SchCellCfgCfm *schCellCfgCfm); +uint8_t MacProcDlAlloc(Pst *pst, DlSchedInfo *dlSchedInfo); +uint8_t MacProcUlSchInfo(Pst *pst, UlSchedInfo *ulSchedInfo); +uint8_t MacProcSchRachRsrcRsp(Pst *pst, SchRachRsrcRsp *schRachRsrcRsp); +uint8_t MacProcDlPageAlloc(Pst *pst, DlPageAlloc *dlPageAlloc); +uint8_t MacProcSchCellDeleteRsp(Pst *pst, SchCellDeleteRsp *schCellDeleteRsp); #endif /********************************************************************** End of file