[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-493] WG8 Alignment | DL paging Alloc
[o-du/l2.git] / src / 5gnrsch / sch_common.c
index 6b01730..cb97e8f 100644 (file)
@@ -671,7 +671,7 @@ uint8_t schDlRsrcAllocMsg4(SchCellCb *cell, SlotTimingInfo msg4Time, uint8_t ueI
    pdsch->numLayers = 1;
    pdsch->transmissionScheme = 0;
    pdsch->refPoint = 0;
-   pdsch->dmrs.dlDmrsSymbPos = 4; /* Bitmap value 00000000000100 i.e. using 3rd symbol for PDSCH DMRS */
+   pdsch->dmrs.dlDmrsSymbPos = DL_DMRS_SYMBOL_POS; 
    pdsch->dmrs.dmrsConfigType = 0; /* type-1 */
    pdsch->dmrs.dlDmrsScramblingId = cell->cellCfg.phyCellId;
    pdsch->dmrs.scid = 0;
@@ -864,7 +864,7 @@ uint8_t schDlRsrcAllocDlMsg(SchCellCb *cell, SlotTimingInfo slotTime, uint16_t c
    pdsch->numLayers = 1;
    pdsch->transmissionScheme = 0;
    pdsch->refPoint = 0;
-   pdsch->dmrs.dlDmrsSymbPos = 4; /* Bitmap value 00000000000100 i.e. using 3rd symbol for PDSCH DMRS */
+   pdsch->dmrs.dlDmrsSymbPos = DL_DMRS_SYMBOL_POS; 
    pdsch->dmrs.dmrsConfigType = 0; /* type-1 */
    pdsch->dmrs.dlDmrsScramblingId = cell->cellCfg.phyCellId;
    pdsch->dmrs.scid = 0;
@@ -2056,83 +2056,51 @@ void schIncrSlot(SlotTimingInfo *timingInfo, uint8_t incr, uint16_t numSlotsPerR
 * @return pointer to return Value(ROK, RFAILED) 
 *
 * ****************************************************************/
-uint8_t schFillPagePdschCfg(SchCellCb *cell, PdschCfg *pagePdschCfg, SlotTimingInfo slotTime, uint16_t tbSize, uint8_t mcs, uint16_t startPrb)
+uint8_t schFillPagePdschCfg(SchCellCb *cell, PageDlSch *pageDlSch, SlotTimingInfo slotTime, uint16_t tbSize, uint8_t mcs, uint16_t startPrb)
 {
-   uint8_t cwCount = 0;
    uint8_t dmrsStartSymbol, startSymbol, numSymbol;
 
    /* fill the PDSCH PDU */
 
-   pagePdschCfg->pduBitmap = 0; /* PTRS and CBG params are excluded */
-   pagePdschCfg->rnti = P_RNTI; /* SI-RNTI */
-   pagePdschCfg->pduIndex = 0;
-   pagePdschCfg->numCodewords = 1;
-   for(cwCount = 0; cwCount < pagePdschCfg->numCodewords; cwCount++)
-   {
-      pagePdschCfg->codeword[cwCount].targetCodeRate = 308;
-      pagePdschCfg->codeword[cwCount].qamModOrder = 2;
-      pagePdschCfg->codeword[cwCount].mcsIndex = mcs;
-      pagePdschCfg->codeword[cwCount].mcsTable = 0; /* notqam256 */
-      pagePdschCfg->codeword[cwCount].rvIndex = 0;
-      tbSize = tbSize + TX_PAYLOAD_HDR_LEN;
-      pagePdschCfg->codeword[cwCount].tbSize = tbSize;
-   }
-   pagePdschCfg->dataScramblingId                   = cell->cellCfg.phyCellId;
-   pagePdschCfg->numLayers                          = 1;
-   pagePdschCfg->transmissionScheme                 = 0;
-   pagePdschCfg->refPoint                           = 0;
-   pagePdschCfg->dmrs.dlDmrsSymbPos                 = 4; /* Bitmap value 00000000000100 i.e. using 3rd symbol for PDSCH DMRS */
-   pagePdschCfg->dmrs.dmrsConfigType                = 0; /* type-1 */
-   pagePdschCfg->dmrs.dlDmrsScramblingId            = cell->cellCfg.phyCellId;
-   pagePdschCfg->dmrs.scid                          = 0;
-   pagePdschCfg->dmrs.numDmrsCdmGrpsNoData          = 1;
-   pagePdschCfg->dmrs.dmrsPorts                     = 0x0001;
-   pagePdschCfg->dmrs.mappingType                   = DMRS_MAP_TYPE_A; /* Type-A */
-   pagePdschCfg->dmrs.nrOfDmrsSymbols               = NUM_DMRS_SYMBOLS;
-   pagePdschCfg->dmrs.dmrsAddPos                    = DMRS_ADDITIONAL_POS;
-
-   pagePdschCfg->pdschFreqAlloc.resourceAllocType   = 1; /* RAT type-1 RIV format */
+   pageDlSch->tbInfo.mcs = mcs;
+   tbSize = tbSize + TX_PAYLOAD_HDR_LEN;
+   pageDlSch->tbInfo.tbSize = tbSize;
+   pageDlSch->dmrs.dmrsType = 0; /* type-1 */
+   pageDlSch->dmrs.nrOfDmrsSymbols               = NUM_DMRS_SYMBOLS;
+   pageDlSch->dmrs.dmrsAddPos                    = DMRS_ADDITIONAL_POS;
+
    /* the RB numbering starts from coreset0, and PDSCH is always above SSB */
-   pagePdschCfg->pdschFreqAlloc.startPrb  = startPrb;
-   pagePdschCfg->pdschFreqAlloc.numPrb    = schCalcNumPrb(tbSize, mcs, NUM_PDSCH_SYMBOL);
-   pagePdschCfg->pdschFreqAlloc.vrbPrbMapping       = 0; /* non-interleaved */
-   pagePdschCfg->pdschTimeAlloc.rowIndex            = 1;
+   pageDlSch->freqAlloc.startPrb  = startPrb;
+   pageDlSch->freqAlloc.numPrb    = schCalcNumPrb(tbSize, mcs, NUM_PDSCH_SYMBOL);
+   pageDlSch->vrbPrbMapping       = 0; /* non-interleaved */
    /* This is Intel's requirement. PDSCH should start after PDSCH DRMS symbol */
-   pagePdschCfg->pdschTimeAlloc.startSymb = 3; /* spec-38.214, Table 5.1.2.1-1 */
-   pagePdschCfg->pdschTimeAlloc.numSymb   = NUM_PDSCH_SYMBOL;
+   pageDlSch->timeAlloc.mappingType         = DMRS_MAP_TYPE_A; /* Type-A */
+   pageDlSch->timeAlloc.startSymb = 3; /* spec-38.214, Table 5.1.2.1-1 */
+   pageDlSch->timeAlloc.numSymb   = NUM_PDSCH_SYMBOL;
 
    /* Find total symbols occupied including DMRS */
-   dmrsStartSymbol = findDmrsStartSymbol(pagePdschCfg->dmrs.dlDmrsSymbPos);
+   dmrsStartSymbol = findDmrsStartSymbol(4);
    /* If there are no DRMS symbols, findDmrsStartSymbol() returns MAX_SYMB_PER_SLOT,
     * in that case only PDSCH symbols are marked as occupied */
    if(dmrsStartSymbol == MAX_SYMB_PER_SLOT)
    {
-      startSymbol = pagePdschCfg->pdschTimeAlloc.startSymb;
-      numSymbol = pagePdschCfg->pdschTimeAlloc.numSymb;
+      startSymbol = pageDlSch->timeAlloc.startSymb;
+      numSymbol = pageDlSch->timeAlloc.numSymb;
    }
    /* If DMRS symbol is found, mark DMRS and PDSCH symbols as occupied */
    else
    {
       startSymbol = dmrsStartSymbol;
-      numSymbol = pagePdschCfg->dmrs.nrOfDmrsSymbols + pagePdschCfg->pdschTimeAlloc.numSymb;
+      numSymbol = pageDlSch->dmrs.nrOfDmrsSymbols + pageDlSch->timeAlloc.numSymb;
    }
 
    /* Allocate the number of PRBs required for DL PDSCH */
    if((allocatePrbDl(cell, slotTime, startSymbol, numSymbol,\
-               &pagePdschCfg->pdschFreqAlloc.startPrb, pagePdschCfg->pdschFreqAlloc.numPrb)) != ROK)
+               &pageDlSch->freqAlloc.startPrb, pageDlSch->freqAlloc.numPrb)) != ROK)
    {
       DU_LOG("\nERROR  --> SCH : allocatePrbDl() failed for DL MSG");
       return RFAILED;
    }
-
-   pagePdschCfg->beamPdschInfo.numPrgs              = 1;
-   pagePdschCfg->beamPdschInfo.prgSize              = 1;
-   pagePdschCfg->beamPdschInfo.digBfInterfaces      = 0;
-   pagePdschCfg->beamPdschInfo.prg[0].pmIdx         = 0;
-   pagePdschCfg->beamPdschInfo.prg[0].beamIdx[0]    = 0;
-   pagePdschCfg->txPdschPower.powerControlOffset    = 0;
-   pagePdschCfg->txPdschPower.powerControlOffsetSS  = 0;
-
    return ROK;
 }