X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_f1ap_msg_hdl.c;h=c355732073edf3a742a7ced2a1a073fa39d24057;hb=52ca0cf30806914e2f44054932cd2300f12aded8;hp=1450f92561f805d2254ae74297460fa475c5e94a;hpb=a9e15890b397c8fe514ccd82cf1c8541099fe573;p=o-du%2Fl2.git diff --git a/src/du_app/du_f1ap_msg_hdl.c b/src/du_app/du_f1ap_msg_hdl.c index 1450f9256..c35573207 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -210,13 +210,13 @@ uint8_t fetchLcId(uint8_t drbId) { if(duCb.actvCellLst[cellIdx] != NULLP) { - numLcs = duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.numLcs; + numLcs = duCb.actvCellLst[cellIdx]->ueCb[ueIdx].duRlcUeCfg.numLcs; for(lcIdx = 0; lcIdx < numLcs; lcIdx++) { - if(duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.rlcLcCfg[lcIdx].rbId == drbId && \ - duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.rlcLcCfg[lcIdx].rbType == RB_TYPE_DRB) + if(duCb.actvCellLst[cellIdx]->ueCb[ueIdx].duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.rbId == drbId && \ + duCb.actvCellLst[cellIdx]->ueCb[ueIdx].duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.rbType == RB_TYPE_DRB) { - lcId = duCb.actvCellLst[cellIdx]->ueCb[ueIdx].rlcUeCfg.rlcLcCfg[lcIdx].lcId; + lcId = duCb.actvCellLst[cellIdx]->ueCb[ueIdx].duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.lcId; return lcId; } } @@ -1214,7 +1214,7 @@ void freeFddNrFreqInfo(FDD_Info_t *fDD) * ****************************************************************/ void FreeServedCellList( GNB_DU_Served_Cells_List_t *duServedCell) { - uint8_t plmnCnt=MAX_PLMN; + uint8_t plmnCnt= 1; uint8_t extensionCnt=IE_EXTENSION_LIST_COUNT; uint8_t plmnIdx=0, sliceIdx=0; GNB_DU_Served_Cells_Item_t *srvCellItem; @@ -2606,7 +2606,7 @@ uint8_t BuildAndSendULRRCMessageTransfer(DuUeCb *ueCb, uint8_t lcId, \ while(true) { - DU_LOG("\n INFO --> F1AP : Building UL RRC Message Transfer Message\n"); + DU_LOG("\nINFO --> F1AP : Building UL RRC Message Transfer Message\n"); DU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t)); if(f1apMsg == NULLP) @@ -2707,7 +2707,7 @@ uint8_t BuildAndSendULRRCMessageTransfer(DuUeCb *ueCb, uint8_t lcId, \ } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for ULRRCMessageTransfer\n"); + DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for ULRRCMessageTransfer\n"); #ifdef DEBUG_ASN_PRINT for(int i=0; i< encBufSize; i++) { @@ -3377,12 +3377,12 @@ uint8_t BuildRlcBearerToAddModList(DuUeCb *ueCb, struct CellGroupConfigRrc__rlc_ if(ueCb == NULLP) elementCnt = 1; else if(ueCb->f1UeDb->actionType == UE_CTXT_CFG_QUERY) - elementCnt = ueCb->rlcUeCfg.numLcs; + elementCnt = ueCb->duRlcUeCfg.numLcs; else { - for(lcIdx = 0; lcIdxrlcUeCfg.numLcs; lcIdx++) + for(lcIdx = 0; lcIdxduRlcUeCfg.numLcs; lcIdx++) { - if(ueCb->rlcUeCfg.rlcLcCfg[lcIdx].isLcAddModRspSent == false) + if(ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.isLcAddModRspSent == false) elementCnt++; } } @@ -3453,13 +3453,13 @@ uint8_t BuildRlcBearerToAddModList(DuUeCb *ueCb, struct CellGroupConfigRrc__rlc_ else { idx=0; - for(lcIdx=0; lcIdxrlcUeCfg.numLcs; lcIdx++) + for(lcIdx=0; lcIdxduRlcUeCfg.numLcs; lcIdx++) { - if((ueCb->f1UeDb->actionType != UE_CTXT_CFG_QUERY) && (ueCb->rlcUeCfg.rlcLcCfg[lcIdx].isLcAddModRspSent == true)) + if((ueCb->f1UeDb->actionType != UE_CTXT_CFG_QUERY) && (ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.isLcAddModRspSent == true)) continue; /* Fill Logical channel identity */ - rlcBearerList->list.array[idx]->logicalChannelIdentity = ueCb->rlcUeCfg.rlcLcCfg[lcIdx].lcId; + rlcBearerList->list.array[idx]->logicalChannelIdentity = ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.lcId; /* Fill Radio Bearer Id and type (DRB/SRB) for this logical channel */ DU_ALLOC(rlcBearerList->list.array[idx]->servedRadioBearer, sizeof(struct RLC_BearerConfig__servedRadioBearer)); @@ -3469,20 +3469,20 @@ uint8_t BuildRlcBearerToAddModList(DuUeCb *ueCb, struct CellGroupConfigRrc__rlc_ return RFAILED; } rlcBearerList->list.array[idx]->servedRadioBearer->present = \ - covertRbTypeFromIntEnumToRrcEnum(ueCb->rlcUeCfg.rlcLcCfg[lcIdx].rbType); + covertRbTypeFromIntEnumToRrcEnum(ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.rbType); switch(rlcBearerList->list.array[idx]->servedRadioBearer->present) { case RLC_BearerConfig__servedRadioBearer_PR_srb_Identity: - rlcBearerList->list.array[idx]->servedRadioBearer->choice.srb_Identity = ueCb->rlcUeCfg.rlcLcCfg[lcIdx].rbId; + rlcBearerList->list.array[idx]->servedRadioBearer->choice.srb_Identity = ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.rbId; break; case RLC_BearerConfig__servedRadioBearer_PR_drb_Identity: - rlcBearerList->list.array[idx]->servedRadioBearer->choice.drb_Identity = ueCb->rlcUeCfg.rlcLcCfg[lcIdx].rbId; + rlcBearerList->list.array[idx]->servedRadioBearer->choice.drb_Identity = ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.rbId; break; case RLC_BearerConfig__servedRadioBearer_PR_NOTHING: default: break; } - ueCb->rlcUeCfg.rlcLcCfg[lcIdx].isLcAddModRspSent = true; + ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.isLcAddModRspSent = true; rlcBearerList->list.array[idx]->reestablishRLC = NULLP; @@ -3494,7 +3494,7 @@ uint8_t BuildRlcBearerToAddModList(DuUeCb *ueCb, struct CellGroupConfigRrc__rlc_ DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildRlcBearerToAddModList"); return RFAILED; } - if(BuildRlcConfig(&ueCb->rlcUeCfg.rlcLcCfg[lcIdx], rlcBearerList->list.array[idx]->rlc_Config) != ROK) + if(BuildRlcConfig(&ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg, rlcBearerList->list.array[idx]->rlc_Config) != ROK) { DU_LOG("\nERROR --> F1AP : BuildRlcConfig failed"); return RFAILED; @@ -3510,7 +3510,7 @@ uint8_t BuildRlcBearerToAddModList(DuUeCb *ueCb, struct CellGroupConfigRrc__rlc_ } for(macLcIdx = 0; macLcIdx < ueCb->duMacUeCfg.numLcs; macLcIdx++) { - if(ueCb->duMacUeCfg.lcCfgList[macLcIdx].lcConfig.lcId == ueCb->rlcUeCfg.rlcLcCfg[lcIdx].lcId) + if(ueCb->duMacUeCfg.lcCfgList[macLcIdx].lcConfig.lcId == ueCb->duRlcUeCfg.rlcLcCfg[lcIdx].rlcBearerCfg.lcId) { if(BuildMacLCConfig(&ueCb->duMacUeCfg.lcCfgList[macLcIdx].lcConfig, rlcBearerList->list.array[idx]->mac_LogicalChannelConfig) != ROK) { @@ -4083,14 +4083,16 @@ elementCnt = pdschCfg->numTimeDomRsrcAlloc; for(idx = 0; idx < elementCnt; idx++) { timeDomAlloc = timeDomAllocList->choice.setup->list.array[idx]; - DU_ALLOC(timeDomAlloc->k0, sizeof(long)); - if(!timeDomAlloc->k0) - { - DU_LOG("\nERROR --> F1AP : Memory allocation failed in BuildPdschTimeDomAllocList"); - return RFAILED; - } if(pdschCfg->timeDomRsrcAllociList[idx].k0) + { + DU_ALLOC(timeDomAlloc->k0, sizeof(long)); + if(!timeDomAlloc->k0) + { + DU_LOG("\nERROR --> F1AP : Memory allocation failed in BuildPdschTimeDomAllocList"); + return RFAILED; + } *(timeDomAlloc->k0) = *(pdschCfg->timeDomRsrcAllociList[idx].k0); + } timeDomAlloc->mappingType = pdschCfg->timeDomRsrcAllociList[idx].mappingType; timeDomAlloc->startSymbolAndLength = pdschCfg->timeDomRsrcAllociList[idx].startSymbolAndLength; } @@ -6715,7 +6717,7 @@ uint8_t BuildSpCellConfigCommon(ServingCellConfigCommon_t *spCellConfigCommon) convertSsbPeriodicityValueToEnum(duCfgParam.sib1Params.srvCellCfgCommSib.ssbPrdServingCell); /* DMRS Type A position */ - spCellConfigCommon->dmrs_TypeA_Position = convertDmrsTypeAPosValueToEnum(duCfgParam.macCellCfg.dmrsTypeAPos); + spCellConfigCommon->dmrs_TypeA_Position = convertDmrsTypeAPosValueToEnum(duCfgParam.macCellCfg.ssbCfg.dmrsTypeAPos); /* SSB subcarrier spacing */ DU_ALLOC(spCellConfigCommon->ssbSubcarrierSpacing, sizeof(SubcarrierSpacing_t)); @@ -7199,27 +7201,27 @@ uint8_t BuildDrxConfigRrc(DuUeCb *ueCb, struct MAC_CellGroupConfig__drx_ConfigRr else { drxCfg->choice.setup->drx_onDurationTimer.present = DRX_ConfigRrc__drx_onDurationTimer_PR_subMilliSeconds; - drxCfg->choice.setup->drx_onDurationTimer.choice.subMilliSeconds = ueCb->macUeCfg.macCellGrpCfg.drxCfg.\ + drxCfg->choice.setup->drx_onDurationTimer.choice.subMilliSeconds = ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.\ drxOnDurationTimer.onDurationtimerValue.subMilliSeconds; } - drxCfg->choice.setup->drx_InactivityTimer = convertDrxInactivityTimerValueToEnum(ueCb->macUeCfg.macCellGrpCfg.drxCfg.drxInactivityTimer); - drxCfg->choice.setup->drx_HARQ_RTT_TimerDL = ueCb->macUeCfg.macCellGrpCfg.drxCfg.drxHarqRttTimerDl; - drxCfg->choice.setup->drx_HARQ_RTT_TimerUL = ueCb->macUeCfg.macCellGrpCfg.drxCfg.drxHarqRttTimerUl; - drxCfg->choice.setup->drx_RetransmissionTimerDL = convertDrxRetransmissionTimerDlValueToEnum(ueCb->macUeCfg.macCellGrpCfg.drxCfg.\ + drxCfg->choice.setup->drx_InactivityTimer = convertDrxInactivityTimerValueToEnum(ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.drxInactivityTimer); + drxCfg->choice.setup->drx_HARQ_RTT_TimerDL = ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.drxHarqRttTimerDl; + drxCfg->choice.setup->drx_HARQ_RTT_TimerUL = ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.drxHarqRttTimerUl; + drxCfg->choice.setup->drx_RetransmissionTimerDL = convertDrxRetransmissionTimerDlValueToEnum(ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.\ drxRetransmissionTimerDl); - drxCfg->choice.setup->drx_RetransmissionTimerUL = convertDrxRetransmissionTimerUlValueToEnum(ueCb->macUeCfg.macCellGrpCfg.drxCfg.\ + drxCfg->choice.setup->drx_RetransmissionTimerUL = convertDrxRetransmissionTimerUlValueToEnum(ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.\ drxRetransmissionTimerUl); - drxCfg->choice.setup->drx_SlotOffset = ueCb->macUeCfg.macCellGrpCfg.drxCfg.drxSlotOffset; - fillLongCycleOffsetValFromDuCb(ueCb->macUeCfg.macCellGrpCfg.drxCfg.drxLongCycleStartOffset, &drxCfg->choice.setup->drx_LongCycleStartOffset); + drxCfg->choice.setup->drx_SlotOffset = ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.drxSlotOffset; + fillLongCycleOffsetValFromDuCb(ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.drxLongCycleStartOffset, &drxCfg->choice.setup->drx_LongCycleStartOffset); - if(ueCb->macUeCfg.macCellGrpCfg.drxCfg.shortDrxPres) + if(ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.shortDrxPres) { DU_ALLOC(drxCfg->choice.setup->shortDRX, sizeof(struct DRX_ConfigRrc__shortDRX)); if(drxCfg->choice.setup->shortDRX) { - drxCfg->choice.setup->shortDRX->drx_ShortCycle = convertShortDrxCycleLengthValueToEnum(ueCb->macUeCfg.macCellGrpCfg.drxCfg.\ + drxCfg->choice.setup->shortDRX->drx_ShortCycle = convertShortDrxCycleLengthValueToEnum(ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.\ shortDrx.drxShortCycle); - drxCfg->choice.setup->shortDRX->drx_ShortCycleTimer = ueCb->macUeCfg.macCellGrpCfg.drxCfg.shortDrx.drxShortCycleTimer; + drxCfg->choice.setup->shortDRX->drx_ShortCycleTimer = ueCb->duMacUeCfg.macCellGrpCfg.drxCfg.shortDrx.drxShortCycleTimer; } else { @@ -9736,7 +9738,7 @@ void freeDuUeCfg(UeCtxtActionType actionType, DuUeCfg *ueCfg) { for(lcIdx = 0; lcIdx < ueCfg->numRlcLcs; lcIdx++) { - freeRlcLcCfg(&ueCfg->rlcLcCfg[lcIdx]); + freeRlcLcCfg(&ueCfg->rlcLcCfg[lcIdx].rlcBearerCfg); } } @@ -10082,30 +10084,30 @@ uint8_t extractDrbSnssaiCfg(SNSSAI_t *RecvSnssai, Snssai **snssaiToBeShared) * ****************************************************************/ void procRlcLcCfg(uint8_t rbId, uint8_t lcId, uint8_t rbType, uint8_t rlcMode,\ - uint8_t configType, RLC_Config_t *f1RlcCfg, RlcBearerCfg *lcCfg, QoSInformation_t *qoSInformation) + uint8_t configType, RLC_Config_t *f1RlcCfg, DuRlcBearerCfg *lcCfg, QoSInformation_t *qoSInformation) { DRB_Information_t *drbInfo; - lcCfg->rbId = rbId; + lcCfg->rlcBearerCfg.rbId = rbId; lcCfg->configType = configType; if(rbType == RB_TYPE_SRB) { - lcCfg->rbType = RB_TYPE_SRB; - lcCfg->lcId = rbId; - lcCfg->lcType = LCH_DCCH; - lcCfg->rlcMode = RLC_AM; + lcCfg->rlcBearerCfg.rbType = RB_TYPE_SRB; + lcCfg->rlcBearerCfg.lcId = rbId; + lcCfg->rlcBearerCfg.lcType = LCH_DCCH; + lcCfg->rlcBearerCfg.rlcMode = RLC_AM; } else if(rbType == RB_TYPE_DRB) { - lcCfg->rbType = RB_TYPE_DRB; - lcCfg->lcId = lcId; - lcCfg->lcType = LCH_DTCH; - lcCfg->rlcMode = rlcMode; + lcCfg->rlcBearerCfg.rbType = RB_TYPE_DRB; + lcCfg->rlcBearerCfg.lcId = lcId; + lcCfg->rlcBearerCfg.lcType = LCH_DTCH; + lcCfg->rlcBearerCfg.rlcMode = rlcMode; } if(f1RlcCfg) /* rlc mode config recived */ { - extractRlcModeCfg(lcCfg->rlcMode, lcCfg, f1RlcCfg); + extractRlcModeCfg(lcCfg->rlcBearerCfg.rlcMode, &lcCfg->rlcBearerCfg, f1RlcCfg); } if(qoSInformation != NULLP) { @@ -10115,7 +10117,7 @@ void procRlcLcCfg(uint8_t rbId, uint8_t lcId, uint8_t rbType, uint8_t rlcMode,\ QoSInformation_ExtIEs__value_PR_DRB_Information) { drbInfo = &qoSInformation->choice.choice_extension->value.choice.DRB_Information; - if(extractDrbSnssaiCfg(&drbInfo->sNSSAI, &lcCfg->snssai) != ROK) + if(extractDrbSnssaiCfg(&drbInfo->sNSSAI, &lcCfg->rlcBearerCfg.snssai) != ROK) { DU_LOG("\nERROR --> DUAPP: Unable to extract Snssai information at procRlcLcCfg()"); return; @@ -10556,7 +10558,7 @@ uint8_t extractRlcCfgToAddMod(struct CellGroupConfigRrc__rlc_BearerToAddModList /* Filling RLC/MAC Config*/ memset(&ueCfgDb->macLcCfg[idx], 0, sizeof(DuLcCfg)); - memset(&ueCfgDb->rlcLcCfg[idx], 0, sizeof(RlcBearerCfg)); + memset(&ueCfgDb->rlcLcCfg[idx], 0, sizeof(DuRlcBearerCfg)); procRlcLcCfg(rbId, lcId, rbType, rlcMode, CONFIG_UNKNOWN, f1RlcCfg, &(ueCfgDb->rlcLcCfg[idx]), NULLP); if(procMacLcCfg(lcId, rbType, CONFIG_UNKNOWN, NULL, NULL, NULL, macUlLcCfg, &ueCfgDb->macLcCfg[idx], NULL) != ROK) { @@ -12964,7 +12966,7 @@ uint8_t extractCuToDuRrcInfoExt(ProtocolExtensionContainer_4624P16_t *protocolIe * @return void * * ****************************************************************/ -uint8_t procSrbListToSetup(SRBs_ToBeSetup_Item_t * srbItem, DuLcCfg *duMacLcToAdd, RlcBearerCfg *rlcLcToAdd) +uint8_t procSrbListToSetup(SRBs_ToBeSetup_Item_t * srbItem, DuLcCfg *duMacLcToAdd, DuRlcBearerCfg *rlcLcToAdd) { /* Filling RLC INFO */ @@ -13004,7 +13006,7 @@ uint8_t extractSrbListToSetup(SRBs_ToBeSetup_List_t *srbCfg, DuUeCfg *ueCfgDb) uint8_t ret = ROK, srbIdx = 0, rlcLcIdx = 0; SRBs_ToBeSetup_Item_t *srbItem = NULLP; DuLcCfg *macLcCtxt = NULLP; - RlcBearerCfg *rlcLcCtxt = NULLP; + DuRlcBearerCfg *rlcLcCtxt = NULLP; if(srbCfg) { @@ -13029,7 +13031,7 @@ uint8_t extractSrbListToSetup(SRBs_ToBeSetup_List_t *srbCfg, DuUeCfg *ueCfgDb) for(rlcLcIdx = 0; rlcLcIdx < ueCfgDb->numMacLcs; rlcLcIdx++) { - if(ueCfgDb->rlcLcCfg[rlcLcIdx].rbId == srbItem->sRBID && ueCfgDb->rlcLcCfg[rlcLcIdx].rbType == RB_TYPE_SRB) + if(ueCfgDb->rlcLcCfg[rlcLcIdx].rlcBearerCfg.rbId == srbItem->sRBID && ueCfgDb->rlcLcCfg[rlcLcIdx].rlcBearerCfg.rbType == RB_TYPE_SRB) { macLcCtxt = &ueCfgDb->macLcCfg[rlcLcIdx]; rlcLcCtxt = &ueCfgDb->rlcLcCfg[rlcLcIdx]; @@ -13044,7 +13046,7 @@ uint8_t extractSrbListToSetup(SRBs_ToBeSetup_List_t *srbCfg, DuUeCfg *ueCfgDb) } if(!rlcLcCtxt) { - memset(&ueCfgDb->rlcLcCfg[ueCfgDb->numRlcLcs], 0, sizeof(RlcBearerCfg)); + memset(&ueCfgDb->rlcLcCfg[ueCfgDb->numRlcLcs], 0, sizeof(DuRlcBearerCfg)); rlcLcCtxt = &ueCfgDb->rlcLcCfg[ueCfgDb->numRlcLcs]; ueCfgDb->numRlcLcs++; } @@ -13079,13 +13081,13 @@ uint8_t extractSrbListToSetup(SRBs_ToBeSetup_List_t *srbCfg, DuUeCfg *ueCfgDb) * * @params[in] DRBs_ToBeSetup_Item_t , DRBs_ToBeSetupMod_Item_t, * DRBs_ToBeModified_Item_t , lcId, DuLcCfg pointer, - * RlcBearerCfg , UpTnlCfg, RlcUeCfg + * RlcBearerCfg , UpTnlCfg, DuRlcUeCfg * @return void * * ****************************************************************/ uint8_t procDrbListToSetupMod(uint8_t lcId, DRBs_ToBeSetup_Item_t *drbItem,\ -DRBs_ToBeSetupMod_Item_t *drbSetupModItem, DRBs_ToBeModified_Item_t *drbModItem, DuLcCfg *macLcToAdd, RlcBearerCfg *rlcLcToAdd, UpTnlCfg *upTnlInfo, RlcUeCfg *storedRlcUeCfg) +DRBs_ToBeSetupMod_Item_t *drbSetupModItem, DRBs_ToBeModified_Item_t *drbModItem, DuLcCfg *macLcToAdd, DuRlcBearerCfg *rlcLcToAdd, UpTnlCfg *upTnlInfo, DuRlcUeCfg *storedRlcUeCfg) { uint8_t cfgIdx = 0; RlcMode rlcModeInfo; @@ -13122,9 +13124,9 @@ DRBs_ToBeSetupMod_Item_t *drbSetupModItem, DRBs_ToBeModified_Item_t *drbModItem, { for(cfgIdx = 0; cfgIdx < storedRlcUeCfg->numLcs; cfgIdx++) { - if(storedRlcUeCfg->rlcLcCfg[cfgIdx].lcId == lcId) + if(storedRlcUeCfg->rlcLcCfg[cfgIdx].rlcBearerCfg.lcId == lcId) { - rlcModeInfo = storedRlcUeCfg->rlcLcCfg[cfgIdx].rlcMode; + rlcModeInfo = storedRlcUeCfg->rlcLcCfg[cfgIdx].rlcBearerCfg.rlcMode; break; } } @@ -13158,7 +13160,7 @@ DRBs_ToBeSetupMod_Item_t *drbSetupModItem, DRBs_ToBeModified_Item_t *drbModItem, * ****************************************************************/ uint8_t extractDrbListToSetupMod(DRBs_ToBeSetup_List_t *drbCfg, DRBs_ToBeSetupMod_List_t *drbSetupModCfg,\ - DRBs_ToBeModified_List_t *drbModCfg, uint8_t drbCount, DuUeCfg *ueCfgDb, uint32_t *drbBitMap, RlcUeCfg *rlcUeCfg) + DRBs_ToBeModified_List_t *drbModCfg, uint8_t drbCount, DuUeCfg *ueCfgDb, uint32_t *drbBitMap, DuRlcUeCfg *rlcUeCfg) { uint8_t ret = ROK; uint8_t drbIdx = 0, rlcLcIdx = 0; @@ -13167,7 +13169,7 @@ uint8_t extractDrbListToSetupMod(DRBs_ToBeSetup_List_t *drbCfg, DRBs_ToBeSetupMo DRBs_ToBeSetupMod_ItemIEs_t *drbSetupModItem = NULLP; DRBs_ToBeModified_ItemIEs_t *drbModItem = NULLP; DuLcCfg *macLcCtxt = NULLP; - RlcBearerCfg *rlcLcCtxt = NULLP; + DuRlcBearerCfg *rlcLcCtxt = NULLP; ret = ROK; if(drbCount > 0) @@ -13205,7 +13207,8 @@ uint8_t extractDrbListToSetupMod(DRBs_ToBeSetup_List_t *drbCfg, DRBs_ToBeSetupMo for(rlcLcIdx = 0; rlcLcIdx < ueCfgDb->numRlcLcs; rlcLcIdx++) { - if(ueCfgDb->rlcLcCfg[rlcLcIdx].rbId == drbId && ueCfgDb->rlcLcCfg[rlcLcIdx].rbType == RB_TYPE_DRB) + if(ueCfgDb->rlcLcCfg[rlcLcIdx].rlcBearerCfg.rbId == drbId && \ + ueCfgDb->rlcLcCfg[rlcLcIdx].rlcBearerCfg.rbType == RB_TYPE_DRB) { macLcCtxt = &ueCfgDb->macLcCfg[rlcLcIdx]; rlcLcCtxt = &ueCfgDb->rlcLcCfg[rlcLcIdx]; @@ -13307,14 +13310,14 @@ uint8_t extractDrbListToSetupMod(DRBs_ToBeSetup_List_t *drbCfg, DRBs_ToBeSetupMo * * ****************************************************************/ -uint8_t extractDrbListToRelease(uint8_t ueId, DRBs_ToBeReleased_List_t *drbToRel, uint8_t drbCount, DuUeCfg *ueCfgDb, RlcUeCfg *rlcUeCfg) +uint8_t extractDrbListToRelease(uint8_t ueId, DRBs_ToBeReleased_List_t *drbToRel, uint8_t drbCount, DuUeCfg *ueCfgDb, DuRlcUeCfg *rlcUeCfg) { uint8_t ret = ROK, teIdx = 0; uint8_t drbIdx = 0, rlcLcIdx = 0; uint8_t drbId = 0, lcId = 0; DRBs_ToBeReleased_ItemIEs_t *drbRelItem = NULLP; DuLcCfg *macLcCtxt = NULLP; - RlcBearerCfg *rlcLcCtxt = NULLP; + DuRlcBearerCfg *rlcLcCtxt = NULLP; ret = ROK; if(drbCount > 0) @@ -13337,7 +13340,7 @@ uint8_t extractDrbListToRelease(uint8_t ueId, DRBs_ToBeReleased_List_t *drbToRel for(rlcLcIdx = 0; rlcLcIdx < ueCfgDb->numRlcLcs; rlcLcIdx++) { - if(ueCfgDb->rlcLcCfg[rlcLcIdx].rbId == drbId && ueCfgDb->rlcLcCfg[rlcLcIdx].rbType == RB_TYPE_DRB) + if(ueCfgDb->rlcLcCfg[rlcLcIdx].rlcBearerCfg.rbId == drbId && ueCfgDb->rlcLcCfg[rlcLcIdx].rlcBearerCfg.rbType == RB_TYPE_DRB) { macLcCtxt = &ueCfgDb->macLcCfg[rlcLcIdx]; rlcLcCtxt = &ueCfgDb->rlcLcCfg[rlcLcIdx]; @@ -13353,7 +13356,7 @@ uint8_t extractDrbListToRelease(uint8_t ueId, DRBs_ToBeReleased_List_t *drbToRel } if(!rlcLcCtxt) { - memset(&ueCfgDb->rlcLcCfg[ueCfgDb->numRlcLcs], 0, sizeof(RlcBearerCfg)); + memset(&ueCfgDb->rlcLcCfg[ueCfgDb->numRlcLcs], 0, sizeof(DuRlcBearerCfg)); rlcLcCtxt = &ueCfgDb->rlcLcCfg[ueCfgDb->numRlcLcs]; ueCfgDb->numRlcLcs++; } @@ -13365,7 +13368,7 @@ uint8_t extractDrbListToRelease(uint8_t ueId, DRBs_ToBeReleased_List_t *drbToRel } /* Filling RLC INFO */ - procRlcLcCfg(drbId, lcId, RB_TYPE_DRB, rlcLcCtxt->rlcMode, CONFIG_DEL, NULL, rlcLcCtxt, NULLP); + procRlcLcCfg(drbId, lcId, RB_TYPE_DRB, rlcLcCtxt->rlcBearerCfg.rlcMode, CONFIG_DEL, NULL, rlcLcCtxt, NULLP); /* Filling MAC INFO */ if(procMacLcCfg(lcId, RB_TYPE_DRB, CONFIG_DEL, NULL, NULL, NULL, NULL, macLcCtxt, NULLP) != ROK) { @@ -15633,35 +15636,35 @@ uint8_t procF1DlRrcMsgTrans(F1AP_PDU_t *f1apMsg) { if(f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size > 0) { - dlMsg.rrcMsgSize = f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size; - DU_ALLOC_SHRABL_BUF(dlMsg.rrcMsgPdu, dlMsg.rrcMsgSize); - if(dlMsg.rrcMsgPdu) - { - memcpy(dlMsg.rrcMsgPdu, f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf,\ - dlMsg.rrcMsgSize); - } - else - { - DU_LOG("\nERROR --> DU APP : Memory alloc Failed at RRC Container at procF1DlRrcMsgTrans()"); - return RFAILED; - } - } - else - { - DU_LOG("\nERROR --> DU_APP : RRC Container Size is invalid:%ld",\ - f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size); - return RFAILED; - } - break; - } - case ProtocolIE_ID_id_RRCDeliveryStatusRequest: - { - dlMsg.deliveryStatRpt = true; - break; - } - default: - DU_LOG("\nERROR --> DU_APP : Invalid IE received in DL RRC Msg Transfer:%ld", - f1DlRrcMsg->protocolIEs.list.array[idx]->id); + dlMsg.rrcMsgSize = f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size; + DU_ALLOC_SHRABL_BUF(dlMsg.rrcMsgPdu, dlMsg.rrcMsgSize); + if(dlMsg.rrcMsgPdu) + { + memcpy(dlMsg.rrcMsgPdu, f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf,\ + dlMsg.rrcMsgSize); + } + else + { + DU_LOG("\nERROR --> DU APP : Memory alloc Failed at RRC Container at procF1DlRrcMsgTrans()"); + return RFAILED; + } + } + else + { + DU_LOG("\nERROR --> DU_APP : RRC Container Size is invalid:%ld",\ + f1DlRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size); + return RFAILED; + } + break; + } + case ProtocolIE_ID_id_RRCDeliveryStatusRequest: + { + dlMsg.deliveryStatRpt = true; + break; + } + default: + DU_LOG("\nERROR --> DU_APP : Invalid IE received in DL RRC Msg Transfer:%ld", + f1DlRrcMsg->protocolIEs.list.array[idx]->id); } } @@ -15717,8 +15720,8 @@ uint8_t BuildSrbSetupModList(SRBs_SetupMod_List_t *srbList, DuUeCfg *ueCfg) srbItemIe->id = ProtocolIE_ID_id_SRBs_SetupMod_Item; srbItemIe->criticality = Criticality_reject; srbItemIe->value.present = SRBs_SetupMod_ItemIEs__value_PR_SRBs_SetupMod_Item; - srbItemIe->value.choice.SRBs_SetupMod_Item.sRBID = ueCfg->rlcLcCfg[srbIdx].rbId; - srbItemIe->value.choice.SRBs_SetupMod_Item.lCID = ueCfg->rlcLcCfg[srbIdx].lcId; + srbItemIe->value.choice.SRBs_SetupMod_Item.sRBID = ueCfg->rlcLcCfg[srbIdx].rlcBearerCfg.rbId; + srbItemIe->value.choice.SRBs_SetupMod_Item.lCID = ueCfg->rlcLcCfg[srbIdx].rlcBearerCfg.lcId; } return ROK; } @@ -16150,12 +16153,12 @@ uint8_t BuildAndSendUeContextModRsp(DuUeCb *ueCb) ueContextModifyRes->protocolIEs.list.array[ieIdx]->criticality = Criticality_reject; ueContextModifyRes->protocolIEs.list.array[ieIdx]->value.present = \ UEContextModificationResponseIEs__value_PR_SRBs_SetupMod_List; - for(rbIdx = 0; rbIdx < ueCb->rlcUeCfg.numLcs; rbIdx++) + for(rbIdx = 0; rbIdx < ueCb->duRlcUeCfg.numLcs; rbIdx++) { - if(ueCb->rlcUeCfg.rlcLcCfg[rbIdx].rbType == RB_TYPE_SRB) + if(ueCb->duRlcUeCfg.rlcLcCfg[rbIdx].rlcBearerCfg.rbType == RB_TYPE_SRB) { - memcpy(&ueCb->f1UeDb->duUeCfg.rlcLcCfg[ueCb->f1UeDb->duUeCfg.numRlcLcs++], &ueCb->rlcUeCfg.rlcLcCfg[rbIdx],\ - sizeof(RlcBearerCfg)); + memcpy(&ueCb->f1UeDb->duUeCfg.rlcLcCfg[ueCb->f1UeDb->duUeCfg.numRlcLcs++], &ueCb->duRlcUeCfg.rlcLcCfg[rbIdx],\ + sizeof(DuRlcBearerCfg)); } } ret = BuildSrbSetupModList(&ueContextModifyRes->protocolIEs.list.array[ieIdx]->value.choice.SRBs_SetupMod_List, \ @@ -16756,7 +16759,7 @@ uint8_t procF1UeContextModificationReq(F1AP_PDU_t *f1apMsg) drbModifiedCfg = &ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.\ choice.DRBs_ToBeModified_List; if(extractDrbListToSetupMod(NULL, NULL, drbModifiedCfg, drbModifiedCfg->list.count,\ - &duUeCb->f1UeDb->duUeCfg, &duUeCb->drbBitMap, &duUeCb->rlcUeCfg)) + &duUeCb->f1UeDb->duUeCfg, &duUeCb->drbBitMap, &duUeCb->duRlcUeCfg)) { DU_LOG("\nERROR --> DU APP : Failed at extractDrbListToSetupMod() for DrbModifiedList"); ret = RFAILED; @@ -16770,7 +16773,7 @@ uint8_t procF1UeContextModificationReq(F1AP_PDU_t *f1apMsg) drbToRelease = &ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.\ choice.DRBs_ToBeReleased_List; if(extractDrbListToRelease(gnbDuUeF1apId, drbToRelease, drbToRelease->list.count,\ - &duUeCb->f1UeDb->duUeCfg, &duUeCb->rlcUeCfg)) + &duUeCb->f1UeDb->duUeCfg, &duUeCb->duRlcUeCfg)) { DU_LOG("\nERROR --> DU APP : Failed at extractDrbListToSetupMod() for DrbModifiedList"); ret = RFAILED;