X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Fsch.c;h=aa937129c2304906416f7e912fdabc3cc9647de1;hb=134974ec70ab6e0501889e5d162a3b0c806c3bdc;hp=e9cd498ff08a6fdc2e0372e7b4332c46a5e80465;hpb=18376996c17ece8306c1fe9539a00010bea607d5;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch.c b/src/5gnrsch/sch.c index e9cd498ff..aa937129c 100644 --- a/src/5gnrsch/sch.c +++ b/src/5gnrsch/sch.c @@ -66,8 +66,6 @@ #include "sch_utils.h" #include "du_log.h" extern SchCb schCb[SCH_MAX_INST]; -extern int8_t coresetIdxTable[MAX_CORESET_INDEX][4]; -extern int8_t searchSpaceIdxTable[MAX_SEARCH_SPACE_INDEX][4]; void SchFillCfmPst(Pst *reqPst,Pst *cfmPst,RgMngmt *cfm); /* local defines */ SchCellCfgCfmFunc SchCellCfgCfmOpts[] = @@ -330,6 +328,41 @@ int macSchRachInd(Pst *pst, RachIndInfo *rachInd) return ROK; } +/******************************************************************* + * + * @brief Processes CRC indication from MAC + * + * @details + * + * Function : macSchCrcInd + * + * Functionality: + * Processes CRC indication from MAC + * + * @params[in] Post structure + * Crc Indication + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +int macSchCrcInd(Pst *pst, CrcIndInfo *crcInd) +{ + switch(crcInd->crcInd[0]) + { + case CRC_FAILED: + DU_LOG("\nSCH : Received CRC indication. CRC Status [FAILURE]"); + break; + case CRC_PASSED: + DU_LOG("\nSCH : Received CRC indication. CRC Status [PASS]"); + break; + default: + DU_LOG("\nSCH : Invalid CRC state %d", crcInd->crcInd[0]); + return RFAILED; + } + return ROK; +} + + /** * @brief inti cellCb based on cellCfg * @@ -396,6 +429,7 @@ int InitSchCellCb(Inst inst, SchCellCfg *schCellCfg) schDlAlloc->assignedPrb[itr] = 0; schUlAlloc->assignedPrb[itr] = 0; } + schUlAlloc->schPuschInfo = NULLP; for(uint8_t itr=0; itrn0 = slotIndex; /* calculate the PRBs */ - freqDomResourceAlloc( ((offsetPointA-offset)/6), (numRbs/6), FreqDomainResource); + calculatePRB( ((offsetPointA-offset)/6), (numRbs/6), FreqDomainResource); /* fill the PDCCH PDU */ pdcch->pdcchBwpCfg.BWPSize = MAX_NUM_RB; /* whole of BW */ @@ -593,6 +627,57 @@ SchCellCfg *schCellCfg } +/******************************************************************* + * + * @brief Processes DL RLC BO info from MAC + * + * @details + * + * Function : macSchDlRlcBoInfo + * + * Functionality: + * Processes DL RLC BO info from MAC + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +uint8_t macSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo) +{ + uint16_t lcIdx; + Inst inst = pst->dstInst-SCH_INST_START; + DU_LOG("\nSCH : Received RLC BO Status indication"); + + SchCellCb *cell = schCb[inst].cells[inst]; + SchDlAlloc *dlAlloc = \ + cell->dlAlloc[(cell->slotInfo.slot + SCHED_DELTA) % SCH_NUM_SLOTS]; + + for(lcIdx = 0; lcIdx < dlBoInfo->numLc; lcIdx++) + { + if(dlBoInfo->boInfo[lcIdx].lcId == CCCH_LCID) + { + SCH_ALLOC(dlAlloc->msg4Info, sizeof(Msg4Info)); + if(!dlAlloc->msg4Info) + { + DU_LOG("\nSCH : Memory allocation failed for msg4Info"); + dlAlloc = NULL; + return RFAILED; + } + dlAlloc->msg4Info->crnti = dlBoInfo->crnti; + dlAlloc->msg4Info->ndi = 1; + dlAlloc->msg4Info->harqProcNum = 0; + dlAlloc->msg4Info->dlAssignIdx = 0; + dlAlloc->msg4Info->pucchTpc = 0; + dlAlloc->msg4Info->pucchResInd = 0; + dlAlloc->msg4Info->harqFeedbackInd = 0; + dlAlloc->msg4Info->dciFormatId = 1; + } + } + + return ROK; +} + /********************************************************************** End of file **********************************************************************/