X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Fsch.h;h=39aa04249ae2a234045fbe9dc17f09279c096833;hb=73da3ffdd36c5ade0c1cccbe7d2ad4d457897b2f;hp=58e1c6813d09223bab88ab61e2bfd488b5030396;hpb=38ebacef5994ffe0d94bd0d9d9b1f306f6417110;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch.h b/src/5gnrsch/sch.h index 58e1c6813..39aa04249 100644 --- a/src/5gnrsch/sch.h +++ b/src/5gnrsch/sch.h @@ -79,6 +79,15 @@ #define SCH_TQ_SIZE 10 +/*3GPP 38.331,'frequencyDomainResources' :Number of PRBs per Resource Block Group*/ +#define NUM_PRBS_PER_RBG 6 + +/*3GPP 38.214 Table 5.2.2.1-2*/ +#define MAX_NUM_CQI_IDX 16 + +/*3GPP 38.211 Table 7.3.2.1-1*/ +#define MAX_NUM_AGG_LVL 5 + typedef struct schDlHqProcCb SchDlHqProcCb; typedef struct schUlHqEnt SchUlHqEnt; typedef struct schRaReq SchRaReq; @@ -316,8 +325,7 @@ typedef struct schDlSlotInfo uint8_t ssbIdxSupported; /*!< Max SSB index */ SsbInfo ssbInfo[MAX_SSB_IDX]; /*!< SSB info */ bool sib1Pres; /*!< Flag to determine if SIB1 is present in this slot */ - uint8_t pdcchUe; /*!< UE for which PDCCH is scheduled in this slot */ - uint8_t pdschUe; /*!< UE for which PDSCH is scheduled in this slot */ + uint8_t pdcchUe; /*!< UE for which PDCCH Common is scheduled in this slot */ RarAlloc *rarAlloc[MAX_NUM_UE]; /*!< RAR allocation per UE*/ DciInfo *ulGrant; DlMsgSchInfo *dlMsgAlloc[MAX_NUM_UE]; /*!< Dl msg allocation per UE*/ @@ -462,6 +470,18 @@ typedef struct schDrxUeCb CmLList *shortCycleTmrExpiryNodeInfo; /* Node present in short cycle exp list*/ }SchDrxUeCb; #endif + +typedef struct schPdcchInfo +{ + SchControlRsrcSet *cRSetRef; /*Coreset Cfg reference from SchUeCfgCb*/ + SchSearchSpace *ssRef; /*SearchSpace Cfg reference from SchUeCfgCb*/ + uint16_t totalPrbs; /*Total PRBs configured for this CORESET*/ + uint8_t nrOfPRBPerCce; /*CCE Size*/ + uint8_t totalCceCount; /*Count of CCE in this CORESET*/ + uint8_t cqiIndxAggLvlMap[MAX_NUM_CQI_IDX];/*Agg Level to be used for each CQI Index*/ + uint32_t *y; /*Coefficient variable to calculate CCE Index as per 3gpp Spec 38.213 Sec 10.1*/ +}SchPdcchInfo; + /** * @brief * UE control block @@ -494,6 +514,7 @@ typedef struct schUeCb SchK0K1TimingInfoTbl k0K1InfoTbl; bool k2TblPrsnt; SchK2TimingInfoTbl k2InfoTbl; + SchPdcchInfo pdcchInfo[MAX_NUM_CRSET]; }SchUeCb; /** @@ -781,6 +802,8 @@ LcInfo* handleLcLList(CmLListCp *lcLL, uint8_t lcId, ActionTypeLL action); void prbAllocUsingRRMPolicy(CmLListCp *lcLL, bool dedicatedPRB, uint16_t mcsIdx,uint8_t numSymbols,\ uint16_t *sharedPRB, uint16_t *reservedPRB, bool *isTxPayloadLenAdded, bool *srRcvd); void updateBsrAndLcList(CmLListCp *lcLL, BsrInfo *bsrInfo, uint8_t status); +uint8_t fillUeCoresetAndSsInfo(SchUeCb *ue); +bool schDlCandidateSelection(SchUeCb *ue, SlotTimingInfo slotTime); /*Paging Functions*/ void schProcPagingCfg(SchCellCb *cell); @@ -818,6 +841,8 @@ uint8_t SchProcStatsReq(Pst *pst, SchStatsReq *statsReq); uint8_t SchSendStatsIndToMac(Inst inst, SchStatsInd *statsInd); uint8_t schCalcAndSendGrpStats(SchStatsGrp *grpInfo); uint8_t SchProcStatsDeleteReq(Pst *pst, SchStatsDeleteReq *statsDeleteReq); +uint8_t SchProcStatsModificationReq(Pst *pst, SchStatsModificationReq *statsModificationReq); +void deleteStatsGrpInfo(Inst inst, SchStatsGrp *statsGrpInfo); /********************************************************************** End of file **********************************************************************/