X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Fmac.h;h=6115c67dc2928ac21310f91d3812127440ad15e7;hb=de6a435729e3cad9d4a66329080b8206a64f452c;hp=dd76975c4f7c070b9b35c0088ea923b2dd626836;hpb=88debac51779b5de4f38e60e9a26f3015091d91b;p=o-du%2Fl2.git diff --git a/src/5gnrmac/mac.h b/src/5gnrmac/mac.h index dd76975c4..6115c67dc 100644 --- a/src/5gnrmac/mac.h +++ b/src/5gnrmac/mac.h @@ -80,7 +80,8 @@ typedef enum typedef enum { UE_STATE_INACTIVE, - UE_STATE_ACTIVE + UE_STATE_ACTIVE, + UE_HANDIN_IN_PROGRESS }UeState; typedef enum @@ -89,9 +90,25 @@ 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; + DlPageAlloc *pageAllocInfo; }MacDlSlot; typedef struct macUlSlot @@ -106,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 @@ -136,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 { @@ -204,21 +214,23 @@ typedef struct ueDlCb /* UE Cb */ typedef struct macUeCb { - uint16_t ueId; /* UE Id assigned by DU APP */ - uint16_t crnti; /* UE CRNTI */ - MacCellCb *cellCb; /* Pointer to cellCb to whihc this UE belongs */ - UeState state; /* Is UE active ? */ - MacRaCbInfo *raCb; /* RA info */ - MacBsrTmrCfg bsrTmrCfg; /* BSR Timer Info */ - UeUlCb ulInfo; /* UE specific UL info */ - UeDlCb dlInfo; /* UE specific DL info */ + uint16_t ueId; /* UE Id from DU APP */ + uint16_t crnti; /* UE CRNTI */ + MacCellCb *cellCb; /* Pointer to cellCb to whihc this UE belongs */ + UeState state; /* Is UE active ? */ + MacCfraResource cfraResource; /* CF-RA resource */ + MacRaCbInfo *raCb; /* RA info */ + MacBsrTmrCfg bsrTmrCfg; /* BSR Timer Info */ + UeUlCb ulInfo; /* UE specific UL info */ + UeDlCb dlInfo; /* UE specific DL info */ + DataTransmissionAction transmissionAction; }MacUeCb; struct macCellCb { uint16_t cellId; CellState state; - uint8_t crntiMap; + uint16_t crntiMap; MacRaCbInfo macRaCb[MAX_NUM_UE]; MacDlSlot dlSlot[MAX_SLOTS]; MacUlSlot ulSlot[MAX_SLOTS]; @@ -246,7 +258,6 @@ MacCb macCb; /* Function declarations */ short int macActvTmr(Ent ent,Inst inst); void fillRarPdu(RarInfo *rarInfo); -void createMacRaCb(RachIndInfo *rachIndInfo); void fillMsg4DlData(MacDlData *dlData, uint16_t msg4PduLen, uint8_t *msg4Pdu); void fillMacCe(MacCeInfo *macCeData, uint8_t *msg3Pdu); void macMuxPdu(MacDlData *dlData, MacCeInfo *macCeData, uint8_t *msg4TxPdu, uint16_t tbSize);