X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Fsch.h;h=3793761f5dfa364cee92b3efebc19a4eaaae2649;hb=45967e320fb5747a257af75f3d2f12c0aa9daee0;hp=202fc0c310f3188eb6b7963e100092b07171e584;hpb=8e6123e23f6d831b1fe972f8229e9594a2e92237;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch.h b/src/5gnrsch/sch.h index 202fc0c31..3793761f5 100644 --- a/src/5gnrsch/sch.h +++ b/src/5gnrsch/sch.h @@ -74,7 +74,8 @@ typedef enum typedef enum { SCH_UE_STATE_INACTIVE, - SCH_UE_STATE_ACTIVE + SCH_UE_STATE_ACTIVE, + SCH_UE_HANDIN_IN_PROGRESS }SchUeState; typedef enum @@ -90,12 +91,6 @@ typedef enum WINDOW_EXPIRED }RaRspWindowStatus; -typedef enum -{ - SEARCH, - CREATE, - DELETE -}ActionTypeLcLL; /** * @brief * Structure holding LTE MAC's General Configuration information. @@ -143,6 +138,7 @@ typedef struct schDlSlotInfo uint8_t pdcchUe; /*!< UE for which PDCCH is scheduled in this slot */ uint8_t pdschUe; /*!< UE for which PDSCH is scheduled in this slot */ RarAlloc *rarAlloc[MAX_NUM_UE]; /*!< RAR allocation per UE*/ + DciInfo *ulGrant; DlMsgAlloc *dlMsgAlloc[MAX_NUM_UE]; /*!< Dl msg allocation per UE*/ }SchDlSlotInfo; @@ -217,6 +213,7 @@ typedef struct schUlCb typedef struct schUeCfgCb { uint16_t cellId; + uint8_t ueId; uint16_t crnti; bool macCellGrpCfgPres; SchMacCellGrpCfg macCellGrpCfg; @@ -227,6 +224,7 @@ typedef struct schUeCfgCb SchAmbrCfg *ambrCfg; SchModulationInfo dlModInfo; SchModulationInfo ulModInfo; + SchDataTransmission dataTransmissionAction; }SchUeCfgCb; /*Following structures to keep record and estimations of PRB allocated for each @@ -265,12 +263,14 @@ typedef struct schLcPrbEstimate */ typedef struct schUeCb { - uint16_t ueIdx; + uint16_t ueId; uint16_t crnti; SchUeCfgCb ueCfg; SchUeState state; SchCellCb *cellCb; + SchCfraResource cfraResource; bool srRcvd; + bool bsrRcvd; BsrInfo bsrInfo[MAX_NUM_LOGICAL_CHANNEL_GROUPS]; SchUlCb ulInfo; SchDlCb dlInfo; @@ -286,10 +286,34 @@ typedef struct schRaReq { uint32_t raRnti; RachIndInfo *rachInd; + bool isCFRA; + SchUeCb *ueCb; /* Filled only if isCFRA = true */ SlotTimingInfo winStartTime; SlotTimingInfo winEndTime; }SchRaReq; +typedef struct schPageInfo +{ + uint16_t pf; /*Value of Paging Frame received from DUAPP*/ + uint8_t i_s; /*Value of Paging Occ Index received from DUAPP*/ + SlotTimingInfo pageTxTime; /*Start Paging window*/ + uint8_t mcs; /*MCS index*/ + uint16_t msgLen; /*Pdu length */ + uint8_t *pagePdu; /*RRC Page PDU bit string*/ +}SchPageInfo; + +typedef struct schPagingOcc +{ + uint8_t frameOffset; + uint8_t pagingOccSlot; +}SchPagingOcc; + +typedef struct schPageCb +{ + CmLListCp pageIndInfoRecord[MAX_SFN]; /*List of Page Records received which are stored per sfn*/ + SchPagingOcc pagMonOcc[MAX_PO_PER_PF]; /*Paging Occasion Slot/FrameOffset are stored*/ +}SchPageCb; + /** * @brief * Cell Control block per cell. @@ -306,14 +330,16 @@ typedef struct schCellCb SchCellCfg cellCfg; /*!< Cell ocnfiguration */ bool firstSsbTransmitted; bool firstSib1Transmitted; - uint8_t ssbStartSymbArr[SCH_MAX_SSB_BEAM]; /*!