X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Fsch.h;h=b5e1f935e2dbb4fc106c7e34805e7413568ec7f5;hb=c1e93b027631a245fc6791ea1052da5b905b4d8c;hp=537ed318b2d1b2fff96eb6c4ebf771c58a954160;hpb=f73456bd55152c329601f8286ae67fe9875025bc;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch.h b/src/5gnrsch/sch.h index 537ed318b..b5e1f935e 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; @@ -462,6 +471,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 +515,7 @@ typedef struct schUeCb SchK0K1TimingInfoTbl k0K1InfoTbl; bool k2TblPrsnt; SchK2TimingInfoTbl k2InfoTbl; + SchPdcchInfo pdcchInfo[MAX_NUM_CRSET]; }SchUeCb; /** @@ -602,17 +624,36 @@ typedef struct typedef struct dlTotalPrbUsage { - Inst schInst; uint16_t numPrbUsedForTx; uint16_t totalPrbAvailForTx; - uint16_t periodicity; - CmTimer periodTimer; }TotalPrbUsage; -typedef struct schStatistics +typedef struct { TotalPrbUsage *dlTotalPrbUsage; TotalPrbUsage *ulTotalPrbUsage; +}SchKpiSupported; + +typedef struct +{ + CmLListCp dlTotPrbUseList; + CmLListCp ulTotPrbUseList; +}SchKpiActive; + +typedef struct schStatsGrp +{ + Inst schInst; + uint64_t subscriptionId; + uint8_t groupId; + uint16_t periodicity; /* In milliseconds */ + CmTimer periodTimer; + SchKpiSupported kpiStats; +}SchStatsGrp; + +typedef struct schStatistics +{ + CmLListCp statsGrpList; + SchKpiActive activeKpiList; }SchStatistics; /** @@ -796,7 +837,11 @@ void schMsg4Complete(SchUeCb *ueCb); /* Statistics Function */ 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 **********************************************************************/