X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrsch%2Fsch_crc.c;h=442d552b047b7e8ab033761dc0a2b05b9f8d2988;hb=2e3617064e27b8d7bb5ba74319f8c1c99491b8dd;hp=4aa9f81c1c0fcf92108af8b099bcf130fab1de99;hpb=c4723faa976bb203b594b1ab97523a35441838ec;p=o-du%2Fl2.git diff --git a/src/5gnrsch/sch_crc.c b/src/5gnrsch/sch_crc.c index 4aa9f81c1..442d552b0 100644 --- a/src/5gnrsch/sch_crc.c +++ b/src/5gnrsch/sch_crc.c @@ -24,6 +24,7 @@ #include "du_app_mac_inf.h" #include "mac_sch_interface.h" #include "sch.h" +#include "sch_tmr.h" #include "sch_utils.h" /** @@ -31,7 +32,7 @@ * * @details * - * Function : schProcessCrcInd + * Function : SchProcCrcInd * * This function process CRC indication * @@ -41,24 +42,25 @@ * -# ROK * -# RFAILED **/ -uint8_t schProcessCrcInd(CrcIndInfo *crcInd, Inst schInst) +uint8_t SchProcCrcInd(Pst *pst, CrcIndInfo *crcInd) { - SchCellCb *cell = schCb[schInst].cells[schInst]; - uint16_t count=0; + uint16_t crcCnt=0; uint8_t ueId=0; SchUlHqProcCb *hqP = NULLP; - - while(count numCrcInd) + Inst schInst = pst->dstInst - SCH_INST_START; + SchCellCb *cell = schCb[schInst].cells[schInst]; + + while(crcCnt < crcInd->numCrcInd) { GET_UE_ID(crcInd->crnti, ueId); if (cell->raCb[ueId-1].raState == SCH_RA_STATE_MSG3_PENDING) { - if (crcInd->crcInd[count]) + if (crcInd->crcInd[crcCnt]) { /* failure case*/ - if (cell->raCb[ueId-1].msg3HqProc.tbInfo.txCntr < cell->cellCfg.schRachCfg.maxMsg3Tx) + if (cell->raCb[ueId-1].msg3HqProc.tbInfo.txCntr < cell->maxMsg3Tx) { - addUeToBeScheduled(cell, ueId); + cell->api->SchCrcInd(cell, ueId); cell->raCb[ueId - 1].retxMsg3HqProc = &cell->raCb[ueId - 1].msg3HqProc; } else @@ -79,21 +81,24 @@ uint8_t schProcessCrcInd(CrcIndInfo *crcInd, Inst schInst) if (cell->ueCb[ueId-1].hqUlmap[crcInd->timingInfo.slot]->hqList.count == 0) { DU_LOG("\n ERROR no harq stored in ul hq map at slot %d ue id %d\n",crcInd->timingInfo.slot, ueId); + crcCnt++; continue; } if (cell->ueCb[ueId-1].hqUlmap[crcInd->timingInfo.slot]->hqList.first == 0) { DU_LOG("\n ERROR NULL harq stored in ul hq map at slot %d ue id %d\n",crcInd->timingInfo.slot, ueId); + crcCnt++; continue; } hqP = (SchUlHqProcCb*) cell->ueCb[ueId-1].hqUlmap[crcInd->timingInfo.slot]->hqList.first->node; if(hqP == NULLP) { + crcCnt++; continue; } else { - if (crcInd->crcInd[count]) + if (crcInd->crcInd[crcCnt]) { /* failure case*/ schUlHqProcessNack(hqP); @@ -106,10 +111,10 @@ uint8_t schProcessCrcInd(CrcIndInfo *crcInd, Inst schInst) } cmLListDelFrm(&(cell->ueCb[ueId-1].hqUlmap[crcInd->timingInfo.slot]->hqList), &hqP->ulSlotLnk); } - count++; + crcCnt++; } return ROK; } /********************************************************************** End of file - **********************************************************************/ \ No newline at end of file + **********************************************************************/