X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2F5gnrmac%2Frg_dhm.c;h=e23ec5a28208c199adb297a216f36e6d131d7b0f;hb=a5530e70a9d414952dadd1688aa9b4280c0dbb5a;hp=d77c3b4287eec22a7360c8325946be58326e7d3c;hpb=5625a52ad68f6ad93684e68bbbdbaef0d462cf9a;p=o-du%2Fl2.git diff --git a/src/5gnrmac/rg_dhm.c b/src/5gnrmac/rg_dhm.c index d77c3b428..e23ec5a28 100755 --- a/src/5gnrmac/rg_dhm.c +++ b/src/5gnrmac/rg_dhm.c @@ -36,46 +36,28 @@ static const char* RLOG_MODULE_NAME="MAC"; static int RLOG_FILE_ID=279; static int RLOG_MODULE_ID=4096; /* header include files -- defines (.h) */ -#include "envopt.h" /* environment options */ -#include "envdep.h" /* environment dependent */ -#include "envind.h" /* environment independent */ -#include "gen.h" /* general layer */ -#include "ssi.h" /* system service interface */ +#include "common_def.h" #ifdef L2_OPTMZ #include "ss_strm.h" #endif -#include "cm5.h" /* common timers */ -#include "cm_hash.h" /* common hash list */ -#include "cm_mblk.h" /* common memory link list library */ -#include "cm_llist.h" /* common linked list library */ -#include "cm_err.h" /* common error */ -#include "cm_lte.h" /* common LTE */ #include "lrg.h" #include "crg.h" -#include "rgu.h" #include "tfu.h" +#include "rgu.h" #include "rg_sch_inf.h" #include "rg_env.h" #include "rg_err.h" #include "rg.h" +#include "du_app_mac_inf.h" /* header/extern include files (.x) */ -#include "gen.x" /* general layer */ -#include "ssi.x" /* system service interface */ #ifdef L2_OPTMZ #include "ss_strm.x" #endif -#include "cm5.x" /* common timers */ -#include "cm_lib.x" /* common library */ -#include "cm_hash.x" /* common hash list */ -#include "cm_llist.x" /* common linked list library */ -#include "cm_mblk.x" /* memory management */ -#include "cm_tkns.x" /* common tokens */ -#include "cm_lte.x" /* common LTE */ #include "lrg.x" #include "crg.x" -#include "rgu.x" #include "tfu.x" +#include "rgu.x" #include "rg_sch_inf.x" #include "rg_prg.x" /* PRG interface typedefs */ #include "rg.x" @@ -553,15 +535,15 @@ RgErrInfo *err; "macCell(sfn sf): (%d %d) tbTimingInfo(sfn sf): (%d %d)\n" "dlSf %p dlSf->tbs.count %d hqp %p tb %p\n", hqP->tbInfo[i].pdcch.rnti, - dlSf->schdTime.sfn, dlSf->schdTime.subframe, - cellCb->crntTime.sfn, cellCb->crntTime.subframe, + dlSf->schdTime.sfn, dlSf->schdTime.slot, + cellCb->crntTime.sfn, cellCb->crntTime.slot, hqP->tbInfo[i].timingInfo.sfn, - hqP->tbInfo[i].timingInfo.subframe, + hqP->tbInfo[i].timingInfo.slot, (Void *)dlSf, dlSf->tbs.count, (Void *)hqP, (Void *)hqP->tbInfo[i].tb);*/ /* Mukesh :: in case of rpepetiton this is not rerd*/ - if (hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf == dlSf) + if (hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf == dlSf) { /* Check if data from RLC had been received and got muxed. */ #ifndef L2_OPTMZ @@ -582,7 +564,7 @@ RgErrInfo *err; /* Data not received but ta needs to be sent. */ /* MUX TA and send it */ bldPdu.datReq = NULLP; - bldPdu.reqType = EVTTFUTTIIND; + //bldPdu.reqType = EVENT_SLOT_IND_TO_MAC; bldPdu.schdTbSz = hqP->tbInfo[i].tbSz; bldPdu.ta = hqP->tbInfo[i].schdTa; #ifdef LTE_ADV @@ -595,7 +577,7 @@ RgErrInfo *err; RLOG1(L_ERROR, "MUXing failed for: MacInst %d", inst); RLOG4(L_ERROR, "MUXing failed for: time: %d/%d\ procId %d ueId %d", hqP->tbInfo[i].timingInfo.sfn, - hqP->tbInfo[i].timingInfo.subframe, hqP->procId, + hqP->tbInfo[i].timingInfo.slot, hqP->procId, hqP->tbInfo[i].pdcch.rnti); RETVALUE(RFAILED); @@ -606,7 +588,7 @@ RgErrInfo *err; #ifdef LTEMAC_RGU_PAD /* Data not received from RLC. Padding at MAC */ bldPdu.datReq = NULLP; - bldPdu.reqType = EVTTFUTTIIND; + //bldPdu.reqType = EVENT_SLOT_IND_TO_MAC; bldPdu.schdTbSz = hqP->tbInfo[i].tbSz; bldPdu.ta = hqP->tbInfo[i].schdTa; #ifdef LTE_ADV @@ -620,7 +602,7 @@ RgErrInfo *err; RLOG1(L_ERROR, "MUXing failed for: MacInst %d", inst); RLOG4(L_ERROR, "MUXing failed for: time: %d/%d\ procId %d ueId %d", hqP->tbInfo[i].timingInfo.sfn, - hqP->tbInfo[i].timingInfo.subframe, hqP->procId, + hqP->tbInfo[i].timingInfo.slot, hqP->procId, hqP->tbInfo[i].pdcch.rnti); RETVALUE(RFAILED); @@ -668,13 +650,13 @@ RgErrInfo *err; /* MS_WORKAROUND for ccpu00122894 */ for(i=0;i< RG_MAX_TB_PER_UE;i++) { - if (hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf == dlSf) + if (hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf == dlSf) { - cmLListDelFrm(&dlSf->tbs, &(hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk)); - hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk.node = NULLP; + cmLListDelFrm(&dlSf->tbs, &(hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk)); + hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk.node = NULLP; - hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf = NULLP; + hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf = NULLP; } } cmLListAdd2Tail(&datInfo->pdus, &(datReq->lnk)); @@ -760,7 +742,7 @@ RgErrInfo *err; { continue; } - if (hqProc->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk.node == NULLP) + if (hqProc->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk.node == NULLP) { /* release corresponding TBs from SF tbs List */ for(j=0;jnmbOfTbs;j++) @@ -808,7 +790,7 @@ RgErrInfo *err; RLOG1(L_ERROR, "MUXing failed for: MacInst %d", inst); RLOG4(L_ERROR, "MUXing failed for: time: %d/%d\ procId %d ueId %d", hqProc->tbInfo[i].timingInfo.sfn, - hqProc->tbInfo[i].timingInfo.subframe, hqProc->procId, + hqProc->tbInfo[i].timingInfo.slot, hqProc->procId, hqProc->tbInfo[i].pdcch.rnti); /* release corresponding TBs from SF tbs List */ @@ -899,7 +881,7 @@ RgErrInfo *err; RLOG1(L_ERROR, "MUXing failed for: MacInst %d", inst); RLOG4(L_ERROR, "MUXing failed for: time: %d/%d\ procId %d ueId %d", hqProc->tbInfo[0].timingInfo.sfn, - hqProc->tbInfo[0].timingInfo.subframe, hqProc->procId, + hqProc->tbInfo[0].timingInfo.slot, hqProc->procId, hqProc->tbInfo[0].pdcch.rnti); RG_FREE_MSG(datReq->pdu); @@ -953,7 +935,7 @@ RgErrInfo *err; U8 ueIdx; U8 lcIdx; U8 tbIndex=0,idx1; - RgDlSf *dlSf = &cell->subFrms[(timingInfo.subframe % RG_NUM_SUB_FRAMES)]; + RgDlSf *dlSf = &cell->subFrms[(timingInfo.slot % RG_NUM_SUB_FRAMES)]; Inst inst = cell->macInst - RG_INST_START; // Bool isDStaReqrd = FALSE; RgRguDedStaInd *dStaInd[rgCb[inst].numRguSaps] ; @@ -1041,9 +1023,9 @@ RgErrInfo *err; #endif hqP->numOfTBs = allocInfo->nmbOfTBs; - hqP->tbInfo[idx].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk.node = (PTR)hqP; - hqP->tbInfo[idx].sfLnkInfo[dlSf->schdTime.subframe % 2].sf = dlSf; - cmLListAdd2Tail(&dlSf->tbs,&(hqP->tbInfo[idx].sfLnkInfo[dlSf->schdTime.subframe % 2].sfLnk)); + hqP->tbInfo[idx].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk.node = (PTR)hqP; + hqP->tbInfo[idx].sfLnkInfo[dlSf->schdTime.slot % 2].sf = dlSf; + cmLListAdd2Tail(&dlSf->tbs,&(hqP->tbInfo[idx].sfLnkInfo[dlSf->schdTime.slot % 2].sfLnk)); /* Changes as part of performance testing*/ /* hqP->numOfTBs++;*/ hqP->tbInfo[idx].doa = allocInfo->doa; @@ -1151,7 +1133,7 @@ RgErrInfo *err; cStaInd->rnti = allocInfo->rnti; cStaInd->lcId = cell->dlCcchId; cStaInd->transId = (timingInfo.sfn << 16) | - (timingInfo.subframe << 8) | idx1; + (timingInfo.slot << 8) | idx1; /* ADD Changes for Downlink UE Timing Optimization */ #ifdef LTEMAC_DLUE_TMGOPTMZ dlSf->remDatReqCnt++; @@ -1244,10 +1226,10 @@ RgErrInfo *err; dStaInd[rguDlSpId]->staInd[dStaInd[rguDlSpId]->nmbOfUeGrantPerTti].rnti = allocInfo->rnti; /* dStaInd->transId = (hqP->timingInfo.sfn << 16) | - (hqP->timingInfo.subframe << 8) | hqP->procId; + (hqP->timingInfo.slot << 8) | hqP->procId; */ dStaInd[rguDlSpId]->staInd[dStaInd[rguDlSpId]->nmbOfUeGrantPerTti].transId = (timingInfo.sfn << 16) | - (timingInfo.subframe << 8) | idx1; + (timingInfo.slot << 8) | idx1; dStaInd[rguDlSpId]->staInd[dStaInd[rguDlSpId]->nmbOfUeGrantPerTti].nmbOfTbs = hqP->numOfTBs; #ifdef LTE_ADV dStaInd[rguDlSpId]->staInd[dStaInd[rguDlSpId]->nmbOfUeGrantPerTti].fillCtrlPdu = allocInfo->fillCtrlPdu; @@ -1351,10 +1333,10 @@ RgTfuDatReqPduInfo *datReq; for(i=0;itbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf == dlSf) && + if ((hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf == dlSf) && (hqP->tbInfo[i].tb != NULLP)) #else - if ((hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.subframe % 2].sf == dlSf) && + if ((hqP->tbInfo[i].sfLnkInfo[dlSf->schdTime.slot % 2].sf == dlSf) && RgUtlIsTbMuxed(&(hqP->tbInfo[i].tb))) #endif { @@ -1405,10 +1387,10 @@ RgTfuDatReqPduInfo *datReq; if(dbgBufLen == 0) { RLOG_ARG4(L_ERROR,DBG_CELLID,cellCb->cellId, - "RNTI:%d SFN:%d subframe:%d tbIdx:%d Sdu Length 0 ", + "RNTI:%d SFN:%d slot:%d tbIdx:%d Sdu Length 0 ", datReq->rnti, hqP->tbInfo[i].timingInfo.sfn, - hqP->tbInfo[i].timingInfo.subframe,i); + hqP->tbInfo[i].timingInfo.slot,i); RLOG_ARG3(L_ERROR,DBG_CELLID,cellCb->cellId, "taPres [%d] numOfTbs [%d] format[%d]", datReq->isTApres, @@ -1633,7 +1615,7 @@ U32 gSaveVal; * Function : RgSchMacRlsHqReq * * This function shall be invoked whenever scheduler is done with the - * allocations of random access responses for a subframe. + * allocations of random access responses for a slot. * This shall invoke RAM to create ueCbs for all the rapIds allocated and * shall invoke MUX to create RAR PDUs for raRntis allocated. *