X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2F5gnrsch%2Fsch.c;h=a16f307534681fe76496e9ea04c04d17c3b2727c;hb=6b44407d464a5a4e060999255233a7cfe78bb0fa;hp=a2c77ee274d3e143e7d424fdad8f1f26cf6ef42e;hpb=5831bf6b3454aa200a92cd3e84209650734e4863;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch.c b/src/5gnrsch/sch.c index a2c77ee27..a16f30753 100644 --- a/src/5gnrsch/sch.c +++ b/src/5gnrsch/sch.c @@ -248,7 +248,7 @@ int SchProcGenCfgReq(Pst *pst, RgMngmt *cfg) * * @details * - * Function : macSchSlotInd + * Function : MacSchSlotInd * * This API is invoked by PHY to indicate slot indication to Scheduler for * a cell. @@ -259,7 +259,7 @@ int SchProcGenCfgReq(Pst *pst, RgMngmt *cfg) * -# ROK * -# RFAILED **/ -uint8_t macSchSlotInd(Pst *pst, SlotIndInfo *slotInd) +uint8_t MacSchSlotInd(Pst *pst, SlotIndInfo *slotInd) { Inst inst = pst->dstInst-SCH_INST_START; @@ -267,7 +267,7 @@ uint8_t macSchSlotInd(Pst *pst, SlotIndInfo *slotInd) schProcessSlotInd(slotInd, inst); return ROK; -} /* macSchSlotInd */ +} /* MacSchSlotInd */ /******************************************************************* * @@ -275,7 +275,7 @@ uint8_t macSchSlotInd(Pst *pst, SlotIndInfo *slotInd) * * @details * - * Function : macSchRachInd + * Function : MacSchRachInd * * Functionality: * Processes Rach indication from MAC @@ -285,7 +285,7 @@ uint8_t macSchSlotInd(Pst *pst, SlotIndInfo *slotInd) * RFAILED - failure * * ****************************************************************/ -uint8_t macSchRachInd(Pst *pst, RachIndInfo *rachInd) +uint8_t MacSchRachInd(Pst *pst, RachIndInfo *rachInd) { Inst inst = pst->dstInst-SCH_INST_START; DU_LOG("\nSCH : Received Rach indication"); @@ -299,7 +299,7 @@ uint8_t macSchRachInd(Pst *pst, RachIndInfo *rachInd) * * @details * - * Function : macSchCrcInd + * Function : MacSchCrcInd * * Functionality: * Processes CRC indication from MAC @@ -310,7 +310,7 @@ uint8_t macSchRachInd(Pst *pst, RachIndInfo *rachInd) * RFAILED - failure * * ****************************************************************/ -uint8_t macSchCrcInd(Pst *pst, CrcIndInfo *crcInd) +uint8_t MacSchCrcInd(Pst *pst, CrcIndInfo *crcInd) { switch(crcInd->crcInd[0]) { @@ -333,7 +333,7 @@ uint8_t macSchCrcInd(Pst *pst, CrcIndInfo *crcInd) * * @details * - * Function : InitSchCellCb + * Function : schInitCellCb * * This API is invoked after receiving schCellCfg * @@ -343,13 +343,13 @@ uint8_t macSchCrcInd(Pst *pst, CrcIndInfo *crcInd) * -# ROK * -# RFAILED **/ -int InitSchCellCb(Inst inst, SchCellCfg *schCellCfg) +int schInitCellCb(Inst inst, SchCellCfg *schCellCfg) { SchCellCb *cell; SCH_ALLOC(cell, sizeof(SchCellCb)); if(!cell) { - DU_LOG("\nMemory allocation failed in InitSchCellCb"); + DU_LOG("\nMemory allocation failed in schInitCellCb"); return RFAILED; } @@ -375,7 +375,7 @@ int InitSchCellCb(Inst inst, SchCellCfg *schCellCfg) SCH_ALLOC(schDlSlotInfo, sizeof(SchDlSlotInfo)); if(!schDlSlotInfo) { - DU_LOG("\nMemory allocation failed in InitSchCellCb"); + DU_LOG("\nMemory allocation failed in schInitCellCb"); return RFAILED; } @@ -383,26 +383,12 @@ int InitSchCellCb(Inst inst, SchCellCfg *schCellCfg) SCH_ALLOC(schUlSlotInfo, sizeof(SchUlSlotInfo)); if(!schUlSlotInfo) { - DU_LOG("\nMemory allocation failed in InitSchCellCb"); + DU_LOG("\nMemory allocation failed in schInitCellCb"); return RFAILED; } - memset(schDlSlotInfo, 0, sizeof(SchDlSlotInfo)); - memset(schUlSlotInfo, 0, sizeof(SchUlSlotInfo)); - - schDlSlotInfo->totalPrb = schUlSlotInfo->totalPrb = MAX_NUM_RB; - - for(uint8_t itr=0; itrassignedPrb[itr] = 0; - schUlSlotInfo->assignedPrb[itr] = 0; - } - schUlSlotInfo->schPuschInfo = NULLP; - - for(uint8_t itr=0; itrssbInfo[itr], 0, sizeof(SsbInfo)); - } + schInitDlSlot(schDlSlotInfo); + schInitUlSlot(schUlSlotInfo); cell->schDlSlotInfo[idx] = schDlSlotInfo; cell->schUlSlotInfo[idx] = schUlSlotInfo; @@ -485,7 +471,7 @@ void fillSchSib1Cfg(Inst schInst, SchSib1Cfg *sib1SchCfg, uint16_t pci, \ bwp->cyclicPrefix = 0; /* normal */ /* fill the PDCCH PDU */ - pdcch->coreset0Cfg.coreSet0Size = numRbs; + pdcch->coreset0Cfg.coreSetSize = numRbs; pdcch->coreset0Cfg.startSymbolIndex = firstSymbol; pdcch->coreset0Cfg.durationSymbols = numSymbols; memcpy(pdcch->coreset0Cfg.freqDomainResource,FreqDomainResource,6); @@ -628,7 +614,7 @@ uint8_t SchHdlCellCfgReq(Pst *pst, SchCellCfg *schCellCfg) Pst rspPst; Inst inst = pst->dstInst-1; - InitSchCellCb(inst, schCellCfg); + schInitCellCb(inst, schCellCfg); cellCb = schCb[inst].cells[inst]; //cells is of MAX_CELLS, why inst cellCb->macInst = pst->srcInst; @@ -660,7 +646,7 @@ uint8_t SchHdlCellCfgReq(Pst *pst, SchCellCfg *schCellCfg) * * @details * - * Function : macSchDlRlcBoInfo + * Function : MacSchDlRlcBoInfo * * Functionality: * Processes DL RLC BO info from MAC @@ -670,7 +656,7 @@ uint8_t SchHdlCellCfgReq(Pst *pst, SchCellCfg *schCellCfg) * RFAILED - failure * * ****************************************************************/ -uint8_t macSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo) +uint8_t MacSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo) { uint16_t lcIdx; Inst inst = pst->dstInst-SCH_INST_START; @@ -705,6 +691,77 @@ uint8_t macSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo) return ROK; } +/******************************************************************* + * + * @brief Processes BSR indiation from MAC + * + * @details + * + * Function : MacSchBsr + * + * Functionality: + * Processes DL BSR from MAC + * + * @params[in] Pst pst + * UlBufferStatusRptInd bsrInd + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t MacSchBsr(Pst *pst, UlBufferStatusRptInd *bsrInd) +{ + Inst schInst = pst->dstInst-SCH_INST_START; + SchCellCb *cellCb = NULLP; + SchUeCb *ueCb = NULLP; + uint8_t lcgIdx; + + DU_LOG("\nSCH : Received BSR"); + + cellCb = schCb[schInst].cells[schInst]; + ueCb = schGetUeCb(cellCb, bsrInd->crnti); + + /* store dataVolume per lcg in uecb */ + for(lcgIdx = 0; lcgIdx < bsrInd->numLcg; lcgIdx++) + { + ueCb->bsrInfo[lcgIdx].priority = 1; //TODO: determining LCG priority? + ueCb->bsrInfo[lcgIdx].dataVol = bsrInd->dataVolInfo[lcgIdx].dataVol; + } + return ROK; +} + +/******************************************************************* + * + * @brief Processes SR UCI indication from MAC + * + * @details + * + * Function : MacSchSrUciInd + * + * Functionality: + * Processes SR UCI indication from MAC + * + * @params[in] Post structure + * UCI Indication + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t MacSchSrUciInd(Pst *pst, SrUciIndInfo *uciInd) +{ + Inst inst = pst->dstInst-SCH_INST_START; + + SchUeCb *ueCb; + SchCellCb *cellCb = schCb[inst].cells[inst]; + + DU_LOG("\nSCH : Received SR"); + ueCb = schGetUeCb(cellCb, uciInd->crnti); + + if(uciInd->numSrBits) + { + ueCb->srRcvd = true; + } + return ROK; +} /********************************************************************** End of file **********************************************************************/