[Epic-ID: ODUHIGH-488][Task-ID: ODUHIGH-501] WG8 Alignment | Ue reset req and rsp
[o-du/l2.git] / src / 5gnrsch / sch_ue_mgr.c
index 1254674..9116d10 100644 (file)
@@ -200,30 +200,27 @@ void fillSchUlLcCtxt(SchUlLcCtxt *ueCbLcCfg, SchLcCfg *lcCfg)
 
 uint8_t updateDedLcInfo(Inst inst, Snssai *snssai, uint16_t *rsvdDedicatedPRB, bool *isDedicated)
 {
-   uint8_t sliceCfgIdx =0;
-   SchSliceCfg sliceCfg = schCb[inst].sliceCfg;
+   CmLList *sliceCfg = schCb[inst].sliceCfg.first;
+   SchRrmPolicyOfSlice *rrmPolicyOfSlices;
 
-   if(sliceCfg.numOfSliceConfigured)
+   while(sliceCfg)
    {
-      for(sliceCfgIdx = 0; sliceCfgIdx<sliceCfg.numOfSliceConfigured; sliceCfgIdx++)
+      rrmPolicyOfSlices = (SchRrmPolicyOfSlice*)sliceCfg->node;
+      if(rrmPolicyOfSlices && (memcmp(snssai, &(rrmPolicyOfSlices->snssai), sizeof(Snssai)) == 0))
       {
-         if(memcmp(snssai, &(sliceCfg.listOfConfirguration[sliceCfgIdx]->snssai), sizeof(Snssai)) == 0)
-         {
-            if(sliceCfg.listOfConfirguration[sliceCfgIdx]->rrmPolicyRatioInfo)
-            {
-               /*Updating latest RrmPolicy*/
-                *rsvdDedicatedPRB = \
-               (uint16_t)(((sliceCfg.listOfConfirguration[sliceCfgIdx]->rrmPolicyRatioInfo->policyDedicatedRatio)*(MAX_NUM_RB))/100);
-               *isDedicated = TRUE;
-               DU_LOG("\nINFO  -->  SCH : Updated RRM policy, reservedPOOL:%d",*rsvdDedicatedPRB);
-            }
-         }
-      }
-      /*case: This LcCtxt  is either a Default LC or this LC is part of someother RRM_MemberList*/
-      if(*isDedicated != TRUE) 
-      {
-         DU_LOG("\nINFO  -->  SCH : This SNSSAI is not a part of this RRMPolicy");
+         /*Updating latest RrmPolicy*/
+         *rsvdDedicatedPRB = \
+                             (uint16_t)(((rrmPolicyOfSlices->rrmPolicyRatioInfo.dedicatedRatio)*(MAX_NUM_RB))/100);
+         *isDedicated = TRUE;
+         DU_LOG("\nINFO  -->  SCH : Updated RRM policy, reservedPOOL:%d",*rsvdDedicatedPRB);
+         break;
       }
+      sliceCfg = sliceCfg->next;
+   }
+   /*case: This LcCtxt  is either a Default LC or this LC is part of someother RRM_MemberList*/
+   if(*isDedicated != TRUE) 
+   {
+      DU_LOG("\nINFO  -->  SCH : This SNSSAI is not a part of this RRMPolicy");
    }
    return ROK;  
 }
@@ -377,14 +374,14 @@ uint8_t fillSchUeCbFrmCfgReq(Inst inst, SchUeCb *ueCb, SchUeCfgReq *ueCfg)
       {
          if(dlDataToUlAck)
          {
-            BuildK0K1Table(ueCb->cellCb, &ueCb->ueCfg.spCellCfg.servCellRecfg.initDlBwp.k0K1InfoTbl, false, pdschCfg,\
+            BuildK0K1Table(ueCb->cellCb, &ueCb->k0K1InfoTbl, false, pdschCfg,\
                   ueCfg->spCellCfg.servCellCfg.initDlBwp.pdschCfg, dlDataToUlAck->dlDataToUlAckListCount,\
                   dlDataToUlAck->dlDataToUlAckList);
-            ueCb->ueCfg.spCellCfg.servCellRecfg.initDlBwp.k0K1TblPrsnt = true;
+            ueCb->k0K1TblPrsnt = true;
             BuildK2InfoTable(ueCb->cellCb, ueCfg->spCellCfg.servCellCfg.initUlBwp.puschCfg.timeDomRsrcAllocList,\
                   ueCfg->spCellCfg.servCellCfg.initUlBwp.puschCfg.numTimeDomRsrcAlloc,\
-                  NULLP, &ueCb->ueCfg.spCellCfg.servCellRecfg.initUlBwp.k2InfoTbl);
-            ueCb->ueCfg.spCellCfg.servCellRecfg.initUlBwp.k2TblPrsnt = true;
+                  NULLP, &ueCb->k2InfoTbl);
+            ueCb->k2TblPrsnt = true;
          }
       }
    }
@@ -555,14 +552,14 @@ uint8_t fillSchUeCbFrmRecfgReq(Inst inst, SchUeCb *ueCb, SchUeRecfgReq *ueRecfg)
       {
          if(dlDataToUlAck)
          {
-            BuildK0K1Table(ueCb->cellCb, &ueCb->ueCfg.spCellCfg.servCellRecfg.initDlBwp.k0K1InfoTbl, false, pdschCfg,\
+            BuildK0K1Table(ueCb->cellCb, &ueCb->k0K1InfoTbl, false, pdschCfg,\
                   ueRecfg->spCellRecfg.servCellRecfg.initDlBwp.pdschCfg, dlDataToUlAck->dlDataToUlAckListCount,\
                   dlDataToUlAck->dlDataToUlAckList);
-            ueCb->ueCfg.spCellCfg.servCellRecfg.initDlBwp.k0K1TblPrsnt = true;
+            ueCb->k0K1TblPrsnt = true;
             BuildK2InfoTable(ueCb->cellCb, ueRecfg->spCellRecfg.servCellRecfg.initUlBwp.puschCfg.timeDomRsrcAllocList,\
                   ueRecfg->spCellRecfg.servCellRecfg.initUlBwp.puschCfg.numTimeDomRsrcAlloc,\
-                  NULLP, &ueCb->ueCfg.spCellCfg.servCellRecfg.initUlBwp.k2InfoTbl);
-            ueCb->ueCfg.spCellCfg.servCellRecfg.initUlBwp.k2TblPrsnt = true;
+                  NULLP, &ueCb->k2InfoTbl);
+            ueCb->k2TblPrsnt = true;
          }
       }
    }
@@ -881,11 +878,10 @@ uint8_t schFillPuschAlloc(SchUeCb *ueCb, SlotTimingInfo puschTime, uint32_t tbSi
 
    if (isRetx == FALSE)
    {
-      puschInfo.crnti             = ueCb->crnti;
-      puschInfo.harqProcId        = SCH_HARQ_PROC_ID;
-      puschInfo.resAllocType      = SCH_ALLOC_TYPE_1;
-      puschInfo.fdAlloc.startPrb  = startPrb;
-      puschInfo.fdAlloc.numPrb    = numRb;
+      puschInfo.harqProcId                       = SCH_HARQ_PROC_ID;
+      puschInfo.fdAlloc.resAllocType             = SCH_ALLOC_TYPE_1;
+      puschInfo.fdAlloc.resAlloc.type1.startPrb  = startPrb;
+      puschInfo.fdAlloc.resAlloc.type1.numPrb    = numRb;
       puschInfo.tdAlloc.startSymb = startSymb;
       puschInfo.tdAlloc.numSymb   = symbLen;
       puschInfo.tbInfo.qamOrder   = ueCb->ueCfg.ulModInfo.modOrder;
@@ -894,12 +890,14 @@ uint8_t schFillPuschAlloc(SchUeCb *ueCb, SlotTimingInfo puschTime, uint32_t tbSi
       puschInfo.tbInfo.ndi        = 1; /* new transmission */
       puschInfo.tbInfo.rv         = 0;
       puschInfo.tbInfo.tbSize     = tbSize;
+#ifdef INTEL_FAPI      
       puschInfo.dmrsMappingType   = DMRS_MAP_TYPE_A;  /* Setting Type-A */
       puschInfo.nrOfDmrsSymbols   = NUM_DMRS_SYMBOLS;
       puschInfo.dmrsAddPos        = DMRS_ADDITIONAL_POS;
-      hqP->puschResType = puschInfo.resAllocType;
-      hqP->puschStartPrb = puschInfo.fdAlloc.startPrb;
-      hqP->puschNumPrb = puschInfo.fdAlloc.numPrb;
+#endif      
+      hqP->puschResType = puschInfo.fdAlloc.resAllocType;
+      hqP->puschStartPrb = puschInfo.fdAlloc.resAlloc.type1.startPrb;
+      hqP->puschNumPrb = puschInfo.fdAlloc.resAlloc.type1.numPrb;
       hqP->strtSymbl = puschInfo.tdAlloc.startSymb;
       hqP->numSymbl = puschInfo.tdAlloc.numSymb;
       hqP->tbInfo.qamOrder = puschInfo.tbInfo.qamOrder;
@@ -909,17 +907,18 @@ uint8_t schFillPuschAlloc(SchUeCb *ueCb, SlotTimingInfo puschTime, uint32_t tbSi
       hqP->tbInfo.rv = puschInfo.tbInfo.rv;
       hqP->tbInfo.rvIdx = 0;
       hqP->tbInfo.tbSzReq = puschInfo.tbInfo.tbSize;
+#ifdef INTEL_FAPI      
       hqP->dmrsMappingType = puschInfo.dmrsMappingType;
       hqP->nrOfDmrsSymbols = puschInfo.nrOfDmrsSymbols;
       hqP->dmrsAddPos = puschInfo.dmrsAddPos;
+#endif
    }
    else
    {
-      puschInfo.crnti             = ueCb->crnti;
-      puschInfo.harqProcId        = hqP->procId;
-      puschInfo.resAllocType      = hqP->puschResType;
-      puschInfo.fdAlloc.startPrb  = hqP->puschStartPrb;
-      puschInfo.fdAlloc.numPrb    = hqP->puschNumPrb;
+      puschInfo.harqProcId                       = hqP->procId;
+      puschInfo.fdAlloc.resAllocType             = hqP->puschResType;
+      puschInfo.fdAlloc.resAlloc.type1.startPrb  = hqP->puschStartPrb;
+      puschInfo.fdAlloc.resAlloc.type1.numPrb    = hqP->puschNumPrb;
       puschInfo.tdAlloc.startSymb = hqP->strtSymbl;
       puschInfo.tdAlloc.numSymb   = hqP->numSymbl;
       puschInfo.tbInfo.qamOrder   = hqP->tbInfo.qamOrder;
@@ -929,10 +928,12 @@ uint8_t schFillPuschAlloc(SchUeCb *ueCb, SlotTimingInfo puschTime, uint32_t tbSi
       hqP->tbInfo.rvIdx = (hqP->tbInfo.rvIdx +1) & 0x3;
       puschInfo.tbInfo.rv         = schCmnDlRvTbl[hqP->tbInfo.rvIdx];
       puschInfo.tbInfo.tbSize     = hqP->tbInfo.tbSzReq;
+#ifdef INTEL_FAPI      
       puschInfo.dmrsMappingType   = hqP->dmrsMappingType;  /* Setting Type-A */
       puschInfo.nrOfDmrsSymbols   = hqP->nrOfDmrsSymbols;
       puschInfo.dmrsAddPos        = hqP->dmrsAddPos;
-   }
+#endif 
+  }
   schUlSlotInfo = cellCb->schUlSlotInfo[puschTime.slot];
   SCH_ALLOC(schUlSlotInfo->schPuschInfo, sizeof(SchPuschInfo));
   if(!schUlSlotInfo->schPuschInfo)
@@ -962,7 +963,7 @@ uint8_t schFillPuschAlloc(SchUeCb *ueCb, SlotTimingInfo puschTime, uint32_t tbSi
 uint8_t schFillUlDciForMsg3Retx(SchRaCb *raCb, SchPuschInfo *puschInfo, DciInfo *dciInfo)
 {
    SchCellCb         *cellCb  = raCb->cell;
-   dciInfo->cellId = cellCb->cellId;
+   
    dciInfo->crnti  = raCb->tcrnti;
    SchUlHqProcCb *msg3HqProc = &raCb->msg3HqProc;
    if (msg3HqProc == NULLP)
@@ -971,10 +972,10 @@ uint8_t schFillUlDciForMsg3Retx(SchRaCb *raCb, SchPuschInfo *puschInfo, DciInfo
    }
 
    /* fill bwp cfg */
-   dciInfo->bwpCfg.subcarrierSpacing  = cellCb->cellCfg.sib1SchCfg.bwp.subcarrierSpacing;
-   dciInfo->bwpCfg.cyclicPrefix       = cellCb->cellCfg.sib1SchCfg.bwp.cyclicPrefix;
-   dciInfo->bwpCfg.freqAlloc.startPrb = cellCb->cellCfg.schInitialDlBwp.bwp.freqAlloc.startPrb;
-   dciInfo->bwpCfg.freqAlloc.numPrb   = cellCb->cellCfg.schInitialDlBwp.bwp.freqAlloc.numPrb; 
+   dciInfo->bwpCfg.subcarrierSpacing  = cellCb->sib1SchCfg.bwp.subcarrierSpacing;
+   dciInfo->bwpCfg.cyclicPrefix       = cellCb->sib1SchCfg.bwp.cyclicPrefix;
+   dciInfo->bwpCfg.freqAlloc.startPrb = cellCb->cellCfg.dlCfgCommon.schInitialDlBwp.bwp.freqAlloc.startPrb;
+   dciInfo->bwpCfg.freqAlloc.numPrb   = cellCb->cellCfg.dlCfgCommon.schInitialDlBwp.bwp.freqAlloc.numPrb; 
 
    /*fill coreset cfg */
    //Considering number of RBs in coreset1 is same as coreset0
@@ -982,7 +983,7 @@ uint8_t schFillUlDciForMsg3Retx(SchRaCb *raCb, SchPuschInfo *puschInfo, DciInfo
    //Considering coreset1 also starts from same symbol as coreset0
    dciInfo->coresetCfg.startSymbolIndex = searchSpaceIdxTable[0][3];
    dciInfo->coresetCfg.durationSymbols  = coresetIdxTable[0][2];
-   memcpy(dciInfo->coresetCfg.freqDomainResource, cellCb->cellCfg.schInitialDlBwp.pdcchCommon.commonSearchSpace.freqDomainRsrc, FREQ_DOM_RSRC_SIZE);
+   memcpy(dciInfo->coresetCfg.freqDomainResource, cellCb->cellCfg.dlCfgCommon.schInitialDlBwp.pdcchCommon.commonSearchSpace.freqDomainRsrc, FREQ_DOM_RSRC_SIZE);
    
    dciInfo->coresetCfg.cceRegMappingType   = 1; /* coreset0 is always interleaved */
    dciInfo->coresetCfg.regBundleSize       = 6; /* spec-38.211 sec 7.3.2.2 */
@@ -994,24 +995,24 @@ uint8_t schFillUlDciForMsg3Retx(SchRaCb *raCb, SchPuschInfo *puschInfo, DciInfo
    dciInfo->coresetCfg.cceIndex            = 0; /* 0-3 for UL and 4-7 for DL */
    dciInfo->coresetCfg.aggregationLevel    = 4; /* same as for sib1 */
    
-   dciInfo->formatType = FORMAT0_0;
+   dciInfo->dciFormatInfo.formatType = FORMAT0_0;
    msg3HqProc->tbInfo.rvIdx++;
    msg3HqProc->tbInfo.rv = schCmnDlRvTbl[msg3HqProc->tbInfo.rvIdx & 0x03];
    /* fill UL grant */
-   dciInfo->format.format0_0.resourceAllocType   = msg3HqProc->puschResType;
-   dciInfo->format.format0_0.freqAlloc.startPrb  = msg3HqProc->puschStartPrb;
-   dciInfo->format.format0_0.freqAlloc.numPrb    = msg3HqProc->puschNumPrb;
-   dciInfo->format.format0_0.timeAlloc.startSymb = msg3HqProc->strtSymbl;
-   dciInfo->format.format0_0.timeAlloc.numSymb   = msg3HqProc->numSymbl;
-   dciInfo->format.format0_0.rowIndex            = 0; /* row Index */
-   dciInfo->format.format0_0.mcs                 = msg3HqProc->tbInfo.iMcs;
-   dciInfo->format.format0_0.harqProcId          = msg3HqProc->procId;
-   dciInfo->format.format0_0.puschHopFlag        = FALSE; /* disabled */
-   dciInfo->format.format0_0.freqHopFlag         = FALSE; /* disabled */
-   dciInfo->format.format0_0.ndi                 = msg3HqProc->tbInfo.ndi; /* new transmission */
-   dciInfo->format.format0_0.rv                  = msg3HqProc->tbInfo.rv;
-   dciInfo->format.format0_0.tpcCmd              = 0; //Sphoorthi TODO: check
-   dciInfo->format.format0_0.sUlCfgd             = FALSE; /* SUL not configured */
+   dciInfo->dciFormatInfo.format.format0_0.resourceAllocType                  = msg3HqProc->puschResType;
+   dciInfo->dciFormatInfo.format.format0_0.freqAlloc.resAllocType             = msg3HqProc->puschResType;
+   dciInfo->dciFormatInfo.format.format0_0.freqAlloc.resAlloc.type1.startPrb  = msg3HqProc->puschStartPrb;
+   dciInfo->dciFormatInfo.format.format0_0.freqAlloc.resAlloc.type1.numPrb    = msg3HqProc->puschNumPrb;
+   dciInfo->dciFormatInfo.format.format0_0.timeAlloc.startSymb = msg3HqProc->strtSymbl;
+   dciInfo->dciFormatInfo.format.format0_0.timeAlloc.numSymb   = msg3HqProc->numSymbl;
+   dciInfo->dciFormatInfo.format.format0_0.rowIndex            = 0; /* row Index */
+   dciInfo->dciFormatInfo.format.format0_0.mcs                 = msg3HqProc->tbInfo.iMcs;
+   dciInfo->dciFormatInfo.format.format0_0.harqProcId          = msg3HqProc->procId;
+   dciInfo->dciFormatInfo.format.format0_0.freqHopFlag         = FALSE; /* disabled */
+   dciInfo->dciFormatInfo.format.format0_0.ndi                 = msg3HqProc->tbInfo.ndi; /* new transmission */
+   dciInfo->dciFormatInfo.format.format0_0.rvIndex             = msg3HqProc->tbInfo.rv;
+   dciInfo->dciFormatInfo.format.format0_0.tpcCmd              = 0; //Sphoorthi TODO: check
+   dciInfo->dciFormatInfo.format.format0_0.sulIndicator             = FALSE; /* SUL not configured */
    
    /* Fill DCI Structure */
    dciInfo->dciInfo.rnti                              = raCb->tcrnti;
@@ -1024,16 +1025,15 @@ uint8_t schFillUlDciForMsg3Retx(SchRaCb *raCb, SchPuschInfo *puschInfo, DciInfo
    dciInfo->dciInfo.beamPdcchInfo.digBfInterfaces     = 0;
    dciInfo->dciInfo.beamPdcchInfo.prg[0].pmIdx        = 0;
    dciInfo->dciInfo.beamPdcchInfo.prg[0].beamIdx[0]   = 0;
-   dciInfo->dciInfo.txPdcchPower.powerValue           = 0;
+   dciInfo->dciInfo.txPdcchPower.beta_pdcch_1_0       = 0;
    dciInfo->dciInfo.txPdcchPower.powerControlOffsetSS = 0;
-   dciInfo->dciInfo.pdschCfg                          = NULL; /* No DL data being sent */
+   memset(&dciInfo->dciInfo.pdschCfg, 0, sizeof(PdschCfg));
    msg3HqProc->tbInfo.txCntr++;
 
-  puschInfo->crnti             = raCb->tcrnti;
-  puschInfo->harqProcId        = msg3HqProc->procId;
-  puschInfo->resAllocType      = msg3HqProc->puschResType;
-  puschInfo->fdAlloc.startPrb  = msg3HqProc->puschStartPrb;
-  puschInfo->fdAlloc.numPrb    = msg3HqProc->puschNumPrb;
+  puschInfo->harqProcId                       = msg3HqProc->procId;
+  puschInfo->fdAlloc.resAllocType             = msg3HqProc->puschResType;
+  puschInfo->fdAlloc.resAlloc.type1.startPrb  = msg3HqProc->puschStartPrb;
+  puschInfo->fdAlloc.resAlloc.type1.numPrb    = msg3HqProc->puschNumPrb;
   puschInfo->tdAlloc.startSymb = msg3HqProc->strtSymbl;
   puschInfo->tdAlloc.numSymb   = msg3HqProc->numSymbl;
   puschInfo->tbInfo.qamOrder   = msg3HqProc->tbInfo.qamOrder;
@@ -1042,10 +1042,11 @@ uint8_t schFillUlDciForMsg3Retx(SchRaCb *raCb, SchPuschInfo *puschInfo, DciInfo
   puschInfo->tbInfo.ndi        = msg3HqProc->tbInfo.ndi; /* retransmission */
   puschInfo->tbInfo.rv         = msg3HqProc->tbInfo.rvIdx;
   puschInfo->tbInfo.tbSize     = msg3HqProc->tbInfo.tbSzReq;
+#ifdef INTEL_FAPI
   puschInfo->dmrsMappingType   = msg3HqProc->dmrsMappingType;  /* Setting Type-A */
   puschInfo->nrOfDmrsSymbols   = msg3HqProc->nrOfDmrsSymbols;
   puschInfo->dmrsAddPos        = msg3HqProc->dmrsAddPos;
-
+#endif
    return ROK;
 }
 
@@ -1076,14 +1077,13 @@ uint8_t schFillUlDci(SchUeCb *ueCb, SchPuschInfo *puschInfo, DciInfo *dciInfo, b
      coreset1 = ueCb->ueCfg.spCellCfg.servCellRecfg.initDlBwp.pdcchCfg.cRSetToAddModList[0];
    }
    
-   dciInfo->cellId = cellCb->cellId;
    dciInfo->crnti  = ueCb->crnti;
 
    /* fill bwp cfg */
-   dciInfo->bwpCfg.subcarrierSpacing  = cellCb->cellCfg.sib1SchCfg.bwp.subcarrierSpacing;
-   dciInfo->bwpCfg.cyclicPrefix       = cellCb->cellCfg.sib1SchCfg.bwp.cyclicPrefix;
-   dciInfo->bwpCfg.freqAlloc.startPrb = cellCb->cellCfg.schInitialDlBwp.bwp.freqAlloc.startPrb;
-   dciInfo->bwpCfg.freqAlloc.numPrb   = cellCb->cellCfg.schInitialDlBwp.bwp.freqAlloc.numPrb; 
+   dciInfo->bwpCfg.subcarrierSpacing  = cellCb->sib1SchCfg.bwp.subcarrierSpacing;
+   dciInfo->bwpCfg.cyclicPrefix       = cellCb->sib1SchCfg.bwp.cyclicPrefix;
+   dciInfo->bwpCfg.freqAlloc.startPrb = cellCb->cellCfg.dlCfgCommon.schInitialDlBwp.bwp.freqAlloc.startPrb;
+   dciInfo->bwpCfg.freqAlloc.numPrb   = cellCb->cellCfg.dlCfgCommon.schInitialDlBwp.bwp.freqAlloc.numPrb; 
 
    /*fill coreset cfg */
    //Considering number of RBs in coreset1 is same as coreset0
@@ -1102,23 +1102,25 @@ uint8_t schFillUlDci(SchUeCb *ueCb, SchPuschInfo *puschInfo, DciInfo *dciInfo, b
    dciInfo->coresetCfg.cceIndex            = 0; /* 0-3 for UL and 4-7 for DL */
    dciInfo->coresetCfg.aggregationLevel    = 4; /* same as for sib1 */
    
-   dciInfo->formatType = FORMAT0_0;
+   dciInfo->dciFormatInfo.formatType = FORMAT0_0;
    
    /* fill UL grant */
-   dciInfo->format.format0_0.resourceAllocType   = puschInfo->resAllocType;
-   dciInfo->format.format0_0.freqAlloc.startPrb  = puschInfo->fdAlloc.startPrb;
-   dciInfo->format.format0_0.freqAlloc.numPrb    = puschInfo->fdAlloc.numPrb;
-   dciInfo->format.format0_0.timeAlloc.startSymb = puschInfo->tdAlloc.startSymb;
-   dciInfo->format.format0_0.timeAlloc.numSymb   = puschInfo->tdAlloc.numSymb;
-   dciInfo->format.format0_0.rowIndex            = 0; /* row Index */
-   dciInfo->format.format0_0.mcs                 = puschInfo->tbInfo.mcs;
-   dciInfo->format.format0_0.harqProcId          = puschInfo->harqProcId;
-   dciInfo->format.format0_0.puschHopFlag        = FALSE; /* disabled */
-   dciInfo->format.format0_0.freqHopFlag         = FALSE; /* disabled */
-   dciInfo->format.format0_0.ndi                 = puschInfo->tbInfo.ndi; /* new transmission */
-   dciInfo->format.format0_0.rv                  = puschInfo->tbInfo.rv;
-   dciInfo->format.format0_0.tpcCmd              = 0; //Sphoorthi TODO: check
-   dciInfo->format.format0_0.sUlCfgd             = FALSE; /* SUL not configured */
+   dciInfo->dciFormatInfo.format.format0_0.resourceAllocType   = puschInfo->fdAlloc.resAllocType;
+   dciInfo->dciFormatInfo.format.format0_0.freqAlloc.resAllocType = puschInfo->fdAlloc.resAllocType;
+   dciInfo->dciFormatInfo.format.format0_0.freqAlloc.resAlloc.type1.startPrb  = \
+   puschInfo->fdAlloc.resAlloc.type1.startPrb;
+   dciInfo->dciFormatInfo.format.format0_0.freqAlloc.resAlloc.type1.numPrb    = \
+   puschInfo->fdAlloc.resAlloc.type1.numPrb;
+   dciInfo->dciFormatInfo.format.format0_0.timeAlloc.startSymb = puschInfo->tdAlloc.startSymb;
+   dciInfo->dciFormatInfo.format.format0_0.timeAlloc.numSymb   = puschInfo->tdAlloc.numSymb;
+   dciInfo->dciFormatInfo.format.format0_0.rowIndex            = 0; /* row Index */
+   dciInfo->dciFormatInfo.format.format0_0.mcs                 = puschInfo->tbInfo.mcs;
+   dciInfo->dciFormatInfo.format.format0_0.harqProcId          = puschInfo->harqProcId;
+   dciInfo->dciFormatInfo.format.format0_0.freqHopFlag         = FALSE; /* disabled */
+   dciInfo->dciFormatInfo.format.format0_0.ndi                 = puschInfo->tbInfo.ndi; /* new transmission */
+   dciInfo->dciFormatInfo.format.format0_0.rvIndex             = puschInfo->tbInfo.rv;
+   dciInfo->dciFormatInfo.format.format0_0.tpcCmd              = 0; //Sphoorthi TODO: check
+   dciInfo->dciFormatInfo.format.format0_0.sulIndicator             = FALSE; /* SUL not configured */
    
    /* Fill DCI Structure */
    dciInfo->dciInfo.rnti                              = ueCb->crnti;
@@ -1131,9 +1133,9 @@ uint8_t schFillUlDci(SchUeCb *ueCb, SchPuschInfo *puschInfo, DciInfo *dciInfo, b
    dciInfo->dciInfo.beamPdcchInfo.digBfInterfaces     = 0;
    dciInfo->dciInfo.beamPdcchInfo.prg[0].pmIdx        = 0;
    dciInfo->dciInfo.beamPdcchInfo.prg[0].beamIdx[0]   = 0;
-   dciInfo->dciInfo.txPdcchPower.powerValue           = 0;
+   dciInfo->dciInfo.txPdcchPower.beta_pdcch_1_0       = 0;
    dciInfo->dciInfo.txPdcchPower.powerControlOffsetSS = 0;
-   dciInfo->dciInfo.pdschCfg                          = NULL; /* No DL data being sent */
+   memset(&dciInfo->dciInfo.pdschCfg, 0, sizeof(PdschCfg));
 
    return ROK;
 }
@@ -1397,12 +1399,12 @@ void deleteSchUeCb(SchUeCb *ueCb)
 *    Functionality: Fill and send UE delete response to MAC
 *
 * @params[in] Inst inst, SchUeDelete  *ueDelete, SchMacRsp result, 
-*              ErrorCause cause
+*              CauseOfResult  cause
 * @return ROK     - success
 *         RFAILED - failure
 *
 * ****************************************************************/
-void SchSendUeDeleteRspToMac(Inst inst, SchUeDelete  *ueDelete, SchMacRsp result, ErrorCause cause)
+void SchSendUeDeleteRspToMac(Inst inst, SchUeDelete  *ueDelete, SchMacRsp result, CauseOfResult  cause)
 {
     Pst rspPst;
     SchUeDeleteRsp  delRsp;
@@ -1437,9 +1439,9 @@ void SchSendUeDeleteRspToMac(Inst inst, SchUeDelete  *ueDelete, SchMacRsp result
 * ****************************************************************/
 uint8_t SchProcUeDeleteReq(Pst *pst, SchUeDelete  *ueDelete)
 {
-    uint8_t      idx=0, ueId=0, ret=ROK;
-    ErrorCause   result;
-    SchCellCb    *cellCb = NULLP;
+    uint8_t idx=0, ueId=0, ret=ROK;
+    CauseOfResult  cause;
+    SchCellCb *cellCb = NULLP;
     Inst         inst = pst->dstInst - SCH_INST_START;
    
     if(!ueDelete)
@@ -1454,7 +1456,7 @@ uint8_t SchProcUeDeleteReq(Pst *pst, SchUeDelete  *ueDelete)
     if(cellCb->cellId != ueDelete->cellId)
     {
        DU_LOG("\nERROR  -->  SCH : SchProcUeDeleteReq(): cell Id is not available");
-       result =  INVALID_CELLID;
+       cause =  CELLID_INVALID;
     }
     else
     {
@@ -1465,22 +1467,22 @@ uint8_t SchProcUeDeleteReq(Pst *pst, SchUeDelete  *ueDelete)
           cellCb->api->SchUeDeleteReq(&cellCb->ueCb[ueId-1]);
           deleteSchUeCb(&cellCb->ueCb[ueId-1]);
           cellCb->numActvUe--;
-          result = NOT_APPLICABLE;
+          cause = SUCCESSFUL;
        }
        else
        {
           DU_LOG("\nERROR  -->  SCH : SchProcUeDeleteReq(): SchUeCb not found");
-          result =  INVALID_UEID;
+          cause =  UEID_INVALID;
        }
     }
     
-    if(result == NOT_APPLICABLE)
+    if(cause == SUCCESSFUL)
     {
-       SchSendUeDeleteRspToMac(inst, ueDelete, RSP_OK, result);
+       SchSendUeDeleteRspToMac(inst, ueDelete, RSP_OK, cause);
     }
     else
     {
-       SchSendUeDeleteRspToMac(inst, ueDelete, RSP_NOK, result);
+       SchSendUeDeleteRspToMac(inst, ueDelete, RSP_NOK, cause);
        ret = RFAILED;
     }
     return ret;