X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_f1ap_msg_hdl.c;h=fe3430825c13806a92834c95160b5880b706e6b5;hb=135666f5b7d048c76f68c15bd0c6b6566d1e49e2;hp=21f3b70bb0b9388cba7bd666a8cec7b13e68ed46;hpb=d18338bde70b043c3dde28b7d88d128c0b138380;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 21f3b70bb..fe3430825 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -5531,9 +5531,10 @@ void freeDuUeCfg(DuUeCfg *ueCfg) DU_FREE(ueCfg->cellGrpCfg, sizeof(CellGroupConfigRrc_t)); ueCfg->cellGrpCfg = NULLP; } - if(ueCfg->maxAggrBitRate) + if(ueCfg->ambrCfg) { - DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, ueCfg->maxAggrBitRate, sizeof(MaxAggrBitRate)); + memset(ueCfg->ambrCfg, 0, sizeof(AmbrCfg)); + DU_FREE_SHRABL_BUF(DU_APP_MEM_REGION, DU_POOL, ueCfg->ambrCfg, sizeof(AmbrCfg)); } for(lcIdx = 0; lcIdx < ueCfg->numRlcLcs; lcIdx++) { @@ -5574,6 +5575,7 @@ void freeF1UeDb(F1UeContextSetupDb *f1UeDb) } freeDuUeCfg(&f1UeDb->duUeCfg); memset(f1UeDb, 0, sizeof(F1UeContextSetupDb)); + DU_FREE(f1UeDb, sizeof(F1UeContextSetupDb)); } /******************************************************************* @@ -6471,9 +6473,6 @@ void extractPdschCfg(PDSCH_Config_t *cuPdschCfg, PdschConfig *macPdschCfg) { macPdschCfg->timeDomRsrcAllociList[timeDomIdx].mappingType = \ timeDomAlloc->choice.setup->list.array[timeDomIdx]->mappingType; - //macPdschCfg->timeDomRsrcAllociList[timeDomIdx].startSymbol = \ - - //macPdschCfg->timeDomRsrcAllociList[timeDomIdx].symbolLength; macPdschCfg->timeDomRsrcAllociList[timeDomIdx].startSymbolAndLength = \ timeDomAlloc->choice.setup->list.array[timeDomIdx]->startSymbolAndLength; } @@ -6687,13 +6686,9 @@ void extractPuschCfg(struct BWP_UplinkDedicated__pusch_Config *cuPuschCfg, Pusch macPuschCfg->timeDomRsrcAllocList[timeDomIdx].k2 = \ *(timeDomAllocList->choice.setup->list.array[timeDomIdx]->k2); macPuschCfg->timeDomRsrcAllocList[timeDomIdx].mappingType = \ - timeDomAllocList->choice.setup->list.array[timeDomIdx]->mappingType; + timeDomAllocList->choice.setup->list.array[timeDomIdx]->mappingType; macPuschCfg->timeDomRsrcAllocList[timeDomIdx].startSymbolAndLength = \ timeDomAllocList->choice.setup->list.array[timeDomIdx]->startSymbolAndLength; - //macPuschCfg->timeDomRsrcAllocList[timeDomIdx].startSymbol = \ - timeDomAllocList->choice.setup->list.array[timeDomIdx]->startSymbol; - //macPuschCfg->timeDomRsrcAllocList[timeDomIdx].symbolLen = \ - timeDomAllocList->choice.setup->list.array[timeDomIdx]->symbolLen; } } } @@ -7257,7 +7252,7 @@ uint8_t procF1UeContextSetupReq(F1AP_PDU_t *f1apMsg) { uint8_t ret, ieIdx, ueIdx, lcId, cellIdx; bool ueCbFound = false; - uint32_t gnbCuUeF1apId, gnbDuUeF1apId; + uint32_t gnbCuUeF1apId, gnbDuUeF1apId, bitRateSize; DuUeCb *duUeCb = NULLP; UEContextSetupRequest_t *ueSetReq = NULLP; @@ -7384,35 +7379,39 @@ uint8_t procF1UeContextSetupReq(F1AP_PDU_t *f1apMsg) } case ProtocolIE_ID_id_RRCDeliveryStatusRequest: { - duUeCb->f1UeDb->dlRrcMsg->deliveryStatRpt = true; + if(duUeCb->f1UeDb->dlRrcMsg->rrcMsgPdu) + { + duUeCb->f1UeDb->dlRrcMsg->deliveryStatRpt = true; + } + else + { + DU_LOG("\nIgnoring delivery report, since rrcContainer is not present"); + } break; } - //TODO: To handle maxAggrBitRate case, - // Dependency: The protocolIE is not specified in ASN -#if 0 - case ProtocolIE_ID_id_ULPDUSessionAggregateMaximumBitRate: { + case ProtocolIE_ID_id_GNB_DU_UE_AMBR_UL: { /* MaximumBitRate Uplink */ bitRateSize = ueSetReq->protocolIEs.list.array[ieIdx]->value.choice.BitRate.size; if(bitRateSize > 0) { - DU_ALLOC_SHRABL_BUF(duUeCb->f1UeDb->duUeCfg.maxAggrBitRate, bitRateSize); - if(!duUeCb->f1UeDb->duUeCfg.maxAggrBitRate) + DU_ALLOC_SHRABL_BUF(duUeCb->f1UeDb->duUeCfg.ambrCfg, bitRateSize); + if(!duUeCb->f1UeDb->duUeCfg.ambrCfg) { DU_LOG("\nDU APP : Memory allocation failed for bitRate in procUeCtxtSetupReq"); ret = RFAILED; } else { - duUeCb->f1UeDb->duUeCfg.maxAggrBitRate->ulBits =\ - *ueSetReq->protocolIEs.list.array[ieIdx]->value.choice.BitRate.buf; - duUeCb->f1UeDb->duUeCfg.maxAggrBitRate->dlBits = 0; + memset(duUeCb->f1UeDb->duUeCfg.ambrCfg, 0, sizeof(AmbrCfg)); + memcpy(&duUeCb->f1UeDb->duUeCfg.ambrCfg->ulBr, + ueSetReq->protocolIEs.list.array[ieIdx]->value.choice.BitRate.buf, bitRateSize); + duUeCb->f1UeDb->duUeCfg.ambrCfg->dlBr = 0; } } else ret = RFAILED; break; } -#endif default: { break; @@ -7674,6 +7673,7 @@ uint8_t BuildAndSendUeContextSetupRsp(uint8_t ueIdx, uint8_t cellId) choice.DUtoCURRCInformation.cellGroupConfig, cellGrpCfg); /* Free UeContext Db created during Ue context Req */ freeF1UeDb(ueCb->f1UeDb); + ueCb->f1UeDb = NULLP; } } else