X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_f1ap_msg_hdl.c;h=2934e3eea6064945a658889ddc75d6ef17c79cb1;hb=3360eb21f592bfe7249f501fa59ef8739b8589c2;hp=2dd414b8a1becc4b9db849b3f8da118c27863f05;hpb=958e8b2edbd1e0681419ad86aa0775c88981282c;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 2dd414b8a..2934e3eea 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -18,39 +18,16 @@ /* This file contains F1AP message handler functions */ +#include "du_mgr.h" #include "du_mgr_main.h" -#include "du_cfg.h" #include "du_cell_mgr.h" #include "du_f1ap_msg_hdl.h" +#include "GNB-DU-System-Information.h" -char encBuf[ENC_BUF_MAX_LEN]; +extern char encBuf[ENC_BUF_MAX_LEN]; extern DuCfgParams duCfgParam; - -/******************************************************************* - * - * @brief Writes the encoded chunks into a buffer - * - * @details - * - * Function : PrepFinalEncBuf - * - * Functionality:Fills the encoded buffer - * - * @params[in] void *buffer,initial encoded data - * @params[in] size_t size,size of buffer - * @params[in] void *encodedBuf,final buffer - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -static int PrepFinalEncBuf(const void *buffer, size_t size, void *encodedBuf) -{ - memcpy(encodedBuf + encBufSize, buffer, size); - encBufSize += size; - return 0; -} /* PrepFinalEncBuf */ - +S16 sctpSend(Buffer *mBuf, U8 itfType); /******************************************************************* * * @brief Builds Uplink Info for NR @@ -89,7 +66,7 @@ S16 BuildULNRInfo(NRFreqInfo_t *ulnrfreq) duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.ulNrFreqInfo.\ freqBand[0].nrFreqBand; ulnrfreq->freqBandListNr.list.array[idx]->supportedSULBandList.list.count = SUL_BAND_COUNT; - RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -108,7 +85,7 @@ S16 BuildULNRInfo(NRFreqInfo_t *ulnrfreq) * ****************************************************************/ S16 BuildDLNRInfo(NRFreqInfo_t *dlnrfreq) { - U8 idx; + U8 idx=0; dlnrfreq->nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.\ fdd.dlNrFreqInfo.nrArfcn; dlnrfreq->freqBandListNr.list.count = 1; @@ -124,85 +101,13 @@ S16 BuildDLNRInfo(NRFreqInfo_t *dlnrfreq) DU_FREE(dlnrfreq->freqBandListNr.list.array,sizeof(struct FreqBandNrItem *)); RETVALUE(RFAILED); } - dlnrfreq->freqBandListNr.list.array[idx]->freqBandIndicatorNr = \ - duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.dlNrFreqInfo.\ - freqBand[0].nrFreqBand; - dlnrfreq->freqBandListNr.list.array[idx]->supportedSULBandList.list.count = SUL_BAND_COUNT; - RETVALUE(ROK); + dlnrfreq->freqBandListNr.list.array[idx]->freqBandIndicatorNr = \ + duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.dlNrFreqInfo.\ + freqBand[0].nrFreqBand; + dlnrfreq->freqBandListNr.list.array[idx]->supportedSULBandList.list.count = SUL_BAND_COUNT; + return ROK; } -/******************************************************************* - * - * @brief Builds PLMN ID - * - * @details - * - * Function : BuildPlmn - * - * Functionality: Building the PLMN ID - * - * @params[in] PLMNID plmn - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -S16 BuildPlmn(PlmnId plmn, OCTET_STRING_t *plmnid) -{ - U8 mncCnt; - plmnid->size = 3; - DU_ALLOC(plmnid->buf, plmnid->size * sizeof(U8)); - if(plmnid->buf == NULLP) - { - RETVALUE(RFAILED); - } - mncCnt = 2; - plmnid->buf[0] = ((plmn.mcc[1] << 4) | (plmn.mcc[0])); - if(mncCnt == 2) - { - plmnid->buf[1] = ((0xf0) | (plmn.mcc[2])); - plmnid->buf[2] = ((plmn.mnc[1] << 4) | (plmn.mnc[0])); - } - else - { - plmnid->buf[1] = ((plmn.mnc[0] << 4) | (plmn.mcc[2])); - plmnid->buf[2] = ((plmn.mnc[2] << 4) | (plmn.mnc[1])); - } - RETVALUE(ROK); -} -/******************************************************************* - * - * @brief Builds NRCell ID - * - * @details - * - * Function : BuildNrCellId - * - * Functionality: Building the NR Cell ID - * - * @params[in] BIT_STRING_t *nrcell - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ - -S16 BuildNrCellId(BIT_STRING_t *nrcell) -{ - U8 tmp; - nrcell->size = 5; - DU_ALLOC(nrcell->buf, nrcell->size * sizeof(U8)); - if(nrcell->buf == NULLP) - { - RETVALUE(RFAILED); - } - - for (tmp = 0 ; tmp < nrcell->size-1; tmp++) - { - nrcell->buf[tmp] = 0; - } - nrcell->buf[4] = 16;//change this - nrcell->bits_unused = 4; - RETVALUE(ROK); -} /******************************************************************* * * @brief Builds Nrcgi @@ -221,24 +126,36 @@ S16 BuildNrCellId(BIT_STRING_t *nrcell) S16 BuildNrcgi(NRCGI_t *nrcgi) { S16 ret; - GNB_DU_Served_Cells_Item_t *srvCellItem; - ret = BuildPlmn(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\ + U8 unused = 4; + U8 byteSize = 5; + U8 val = 16; + + /* Allocate Buffer Memory */ + nrcgi->pLMN_Identity.size = PLMN_SIZE * sizeof(U8); + DU_ALLOC(nrcgi->pLMN_Identity.buf, nrcgi->pLMN_Identity.size); + ret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\ &nrcgi->pLMN_Identity); // Building PLMN function if(ret != ROK) { - RETVALUE(RFAILED); + return ret; } /*nrCellIdentity*/ - ret = BuildNrCellId(&nrcgi->nRCellIdentity); - if(ret != ROK) + //ret = BuildNrCellId(&nrcgi->nRCellIdentity); + nrcgi->nRCellIdentity.size = byteSize * sizeof(U8); + DU_ALLOC(nrcgi->nRCellIdentity.buf, nrcgi->nRCellIdentity.size); + if(nrcgi->nRCellIdentity.buf == NULLP) { - DU_FREE(srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\ - srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.size * sizeof(U8)); - RETVALUE(RFAILED); + return RFAILED; } + ret = fillBitString(&nrcgi->nRCellIdentity, unused, byteSize, val); - RETVALUE(ROK); + if(ret != ROK) + { + DU_FREE(nrcgi->nRCellIdentity.buf, nrcgi->nRCellIdentity.size); + return ret; + } + return ROK; } /******************************************************************* * @@ -273,7 +190,7 @@ S16 BuildFiveGSTac(Served_Cell_Information_t *servcell) servcell->fiveGS_TAC->buf[0] = 0; servcell->fiveGS_TAC->buf[1] = 0; servcell->fiveGS_TAC->buf[2] = duCfgParam.srvdCellLst[0].duCellInfo.tac; - RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -293,7 +210,6 @@ S16 BuildFiveGSTac(Served_Cell_Information_t *servcell) S16 BuildNrMode(NR_Mode_Info_t *mode) { S16 ret; - GNB_DU_Served_Cells_Item_t *srvCellItem; /* FDD Mode */ mode->present = NR_Mode_Info_PR_fDD; if(mode->present == NR_Mode_Info_PR_fDD) @@ -316,11 +232,9 @@ S16 BuildNrMode(NR_Mode_Info_t *mode) { DU_FREE(mode->choice.fDD,\ sizeof(FDD_Info_t)); - DU_FREE(srvCellItem->served_Cell_Information.\ - nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\ + DU_FREE(mode->choice.fDD->uL_NRFreqInfo.\ freqBandListNr.list.array,sizeof(struct FreqBandNrItem *)); - DU_FREE(srvCellItem->served_Cell_Information.\ - nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\ + DU_FREE(mode->choice.fDD->uL_NRFreqInfo.\ freqBandListNr.list.array[0],sizeof(struct FreqBandNrItem)); RETVALUE(RFAILED); } @@ -338,7 +252,7 @@ S16 BuildNrMode(NR_Mode_Info_t *mode) mode->choice.fDD->dL_Transmission_Bandwidth.nRNRB = \ duCfgParam.srvdCellLst[0].duCellInfo.\ f1Mode.mode.fdd.dlTxBw.nrb; - RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -359,7 +273,7 @@ S16 BuildExtensions(struct ProtocolExtensionContainer_4624P3 **ieExtend) { U8 idx; U8 plmnidx; - U8 extensionCnt; + U8 extensionCnt=1; U8 extensionId; U8 sliceId; U8 sdId; @@ -369,7 +283,6 @@ S16 BuildExtensions(struct ProtocolExtensionContainer_4624P3 **ieExtend) { RETVALUE(RFAILED); } - extensionCnt=1; (*ieExtend)->list.count = extensionCnt; (*ieExtend)->list.size = \ extensionCnt * sizeof(struct ServedPLMNs_ItemExtIEs *); @@ -524,7 +437,7 @@ S16 BuildExtensions(struct ProtocolExtensionContainer_4624P3 **ieExtend) sdId++; (*ieExtend)->list.array[idx]->extensionValue.choice.SliceSupportList.\ list.array[sliceId]->sNSSAI.sD->buf[sdId] = 9; - RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -546,9 +459,7 @@ S16 BuildServedPlmn(ServedPLMNs_List_t *srvplmn) S16 ret; U8 plmnidx; U8 servPlmnid; - U8 servPlmnCnt; - GNB_DU_Served_Cells_Item_t *srvCellItem; - servPlmnCnt = 1; + U8 servPlmnCnt=1; srvplmn->list.count = servPlmnCnt; srvplmn->list.size = \ servPlmnCnt*sizeof(struct ServedPLMNs_Item *); @@ -575,7 +486,10 @@ S16 BuildServedPlmn(ServedPLMNs_List_t *srvplmn) RETVALUE(RFAILED); } } - ret = BuildPlmn(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\ + /* Allocate Memory to Buffer */ + srvplmn->list.array[0]->pLMN_Identity.size = PLMN_SIZE * sizeof(U8); + DU_ALLOC(srvplmn->list.array[0]->pLMN_Identity.buf, srvplmn->list.array[0]->pLMN_Identity.size); + ret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\ &srvplmn->list.array[0]->pLMN_Identity); if(ret!= ROK) { @@ -593,7 +507,7 @@ S16 BuildServedPlmn(ServedPLMNs_List_t *srvplmn) { DU_FREE(srvplmn->list.\ array[0]->pLMN_Identity.buf,(Size)\ - srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.size * sizeof(U8)); + srvplmn->list.array[0]->pLMN_Identity.size * sizeof(U8)); for(plmnidx=0; plmnidxlist.array[plmnidx],\ @@ -603,7 +517,7 @@ S16 BuildServedPlmn(ServedPLMNs_List_t *srvplmn) sizeof(struct ServedPLMNs_Item *)); RETVALUE(RFAILED); } -RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -627,15 +541,14 @@ S16 BuildServedCellList(GNB_DU_Served_Cells_List_t *duServedCell) U8 idx; U8 plmnidx; U8 plmnId; - U8 plmnCnt; - U8 servPlmnCnt; - U8 extensionCnt; + U8 plmnCnt=1; + U8 servPlmnCnt=1; + U8 extensionCnt=1; U8 sliceId; U8 servId; U8 ieId; GNB_DU_Served_Cells_Item_t *srvCellItem; - plmnCnt = 1; duServedCell->list.size = plmnCnt * sizeof(GNB_DU_Served_Cells_ItemIEs_t *); duServedCell->list.count = plmnCnt; DU_ALLOC(duServedCell->list.array, plmnCnt * sizeof(GNB_DU_Served_Cells_ItemIEs_t *)); @@ -861,8 +774,50 @@ S16 BuildServedCellList(GNB_DU_Served_Cells_List_t *duServedCell) RETVALUE(RFAILED); } srvCellItem->served_Cell_Information.measurementTimingConfiguration.buf[0] = \ - duCfgParam.srvdCellLst[0].duCellInfo.measTimeCfg; - RETVALUE(ROK); + duCfgParam.srvdCellLst[0].duCellInfo.measTimeCfg; + + /* GNB DU System Information */ + DU_ALLOC(srvCellItem->gNB_DU_System_Information, + sizeof(GNB_DU_System_Information_t)); + if(!srvCellItem->gNB_DU_System_Information) + { + DU_LOG("\nF1AP: Memory allocation failure for GNB_DU_System_Information"); + return RFAILED; + } + /* MIB */ + srvCellItem->gNB_DU_System_Information->mIB_message.size =\ + strlen(( char *)duCfgParam.srvdCellLst[0].duSysInfo.mibMsg); + DU_ALLOC(srvCellItem->gNB_DU_System_Information->mIB_message.buf, + srvCellItem->gNB_DU_System_Information->mIB_message.size); + if(!srvCellItem->gNB_DU_System_Information->mIB_message.buf) + { + DU_LOG("\nF1AP: Memory allocation failure for mIB message"); + return RFAILED; + } + strcpy((char *)srvCellItem->gNB_DU_System_Information->mIB_message.buf, + (char *)duCfgParam.srvdCellLst[0].duSysInfo.mibMsg); + + /* SIB1 */ + srvCellItem->gNB_DU_System_Information->sIB1_message.size =\ + duCfgParam.srvdCellLst[0].duSysInfo.sib1Len; + DU_ALLOC(srvCellItem->gNB_DU_System_Information->sIB1_message.buf, + srvCellItem->gNB_DU_System_Information->sIB1_message.size); + if(!srvCellItem->gNB_DU_System_Information->sIB1_message.buf) + { + DU_LOG("\nF1AP: Memory allocation failure for SIB1 message"); + return RFAILED; + } + for(int x=0; xgNB_DU_System_Information->sIB1_message.size; x++) + { + srvCellItem->gNB_DU_System_Information->sIB1_message.buf[x]=\ + duCfgParam.srvdCellLst[0].duSysInfo.sib1Msg[x]; + } + /* Free memory */ + DU_FREE(duCfgParam.srvdCellLst[0].duSysInfo.sib1Msg, + srvCellItem->gNB_DU_System_Information->sIB1_message.size); + DU_FREE(duCfgParam.srvdCellLst[0].duSysInfo.mibMsg, + strlen((char *)duCfgParam.srvdCellLst[0].duSysInfo.mibMsg)); + return ROK; } /******************************************************************* * @@ -948,7 +903,7 @@ S16 BuildRrcVer(RRC_Version_t *rrcVer) rrcLatest++; rrcVer->iE_Extensions->list.array[rrcExt]->extensionValue.choice.\ Latest_RRC_Version_Enhanced.buf[rrcLatest] = 0; - RETVALUE(ROK); + return ROK; } /******************************************************************* * @@ -976,7 +931,7 @@ S16 SendF1APMsg(Region region, Pool pool) { SPrntMsg(mBuf, 0,0); - if(sctpSend(mBuf) != ROK) + if(sctpSend(mBuf, F1_INTERFACE) != ROK) { DU_LOG("\nF1AP : SCTP Send failed"); SPutMsg(mBuf); @@ -996,8 +951,7 @@ S16 SendF1APMsg(Region region, Pool pool) DU_LOG("\nF1AP : Failed to allocate memory"); RETVALUE(RFAILED); } - - RETVALUE(ROK); + return ROK; } /* SendF1APMsg */ @@ -1024,16 +978,15 @@ S16 BuildAndSendF1SetupReq() U8 servId; U8 sliceId; U8 elementCnt; - U8 plmnCnt; - U8 servPlmnCnt; - U8 extensionCnt; + U8 plmnCnt=1; + U8 servPlmnCnt=1; + U8 extensionCnt=1; F1AP_PDU_t *f1apMsg = NULL; F1SetupRequest_t *f1SetupReq; GNB_DU_Served_Cells_List_t *duServedCell; GNB_DU_Served_Cells_Item_t *srvCellItem; RRC_Version_t *rrcVer; asn_enc_rval_t encRetVal; /* Encoder return value */ - DU_LOG("\nF1AP : Building F1 Setup Request\n"); DU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t)); @@ -1059,7 +1012,7 @@ S16 BuildAndSendF1SetupReq() f1SetupReq = &f1apMsg->choice.initiatingMessage->value.choice.F1SetupRequest; - elementCnt = (duCfgParam.duName[0] != NULL) ? 5 : 4; + elementCnt = (duCfgParam.duName != NULL) ? 5 : 4; f1SetupReq->protocolIEs.list.count = elementCnt; f1SetupReq->protocolIEs.list.size = elementCnt * sizeof(F1SetupRequestIEs_t *); @@ -1135,7 +1088,7 @@ S16 BuildAndSendF1SetupReq() duCfgParam.duId; /*DU Name*/ - if(duCfgParam.duName[0] != NULL) + if(duCfgParam.duName != NULL) { idx++; f1SetupReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_gNB_DU_Name ; @@ -1180,7 +1133,8 @@ S16 BuildAndSendF1SetupReq() duServedCell = &f1SetupReq->protocolIEs.list.\ array[idx]->value.choice.GNB_DU_Served_Cells_List; ret = BuildServedCellList(duServedCell); - + srvCellItem = &duServedCell->list.array[idx]->value. \ + choice.GNB_DU_Served_Cells_Item; if(ret != ROK) { DU_FREE(f1SetupReq->protocolIEs.list.array[--idx]->value.\ @@ -1304,6 +1258,10 @@ S16 BuildAndSendF1SetupReq() encBuf); /* Clean up */ #if 0 + DU_FREE(srvCellItem->gNB_DU_System_Information->sIB1_message.buf, + srvCellItem->gNB_DU_System_Information->sIB1_message.size); + DU_FREE(srvCellItem->gNB_DU_System_Information->mIB_message.buf, + srvCellItem->gNB_DU_System_Information->mIB_message.size); DU_FREE(srvCellItem->served_Cell_Information.\ measurementTimingConfiguration.buf,sizeof(U8)); DU_FREE(srvCellItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\ @@ -1373,7 +1331,7 @@ S16 BuildAndSendF1SetupReq() plmnCnt*sizeof(GNB_DU_Served_Cells_ItemIEs_t *)); #endif - if(duCfgParam.duName[0] != NULL) + if(duCfgParam.duName != NULL) { DU_FREE(f1SetupReq->protocolIEs.list.array[idx]->value.choice.\ GNB_DU_Name.buf, sizeof(duCfgParam.duName)); @@ -1409,44 +1367,9 @@ S16 BuildAndSendF1SetupReq() DU_LOG("\nF1AP : Sending F1 Setup request failed"); RETVALUE(RFAILED); } - - RETVALUE(ROK); + return ROK; }/* End of BuildAndSendF1SetupReq */ -/******************************************************************* - * - * @brief Builds the PLMN Id - * - * @details - * - * Function : plmnBuild - * - * Functionality: Builds the PLMN Id - * - * @params[in] PlmnId plmn - * @params[in] OCTET_STRING_t *octe - * - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ -void plmnBuild(PlmnId plmn, OCTET_STRING_t *octe) -{ - U8 mncCnt; - mncCnt = 2; - octe->buf[0] = ((plmn.mcc[1] << 4) | (plmn.mcc[0])); - if(mncCnt == 2) - { - octe->buf[1] = ((0xf0) | (plmn.mcc[2])); - octe->buf[2] = ((plmn.mnc[1] << 4) | (plmn.mnc[0])); - } - else - { - octe->buf[1] = ((plmn.mnc[0] << 4) | (plmn.mcc[2])); - octe->buf[2] = ((plmn.mnc[2] << 4) | (plmn.mnc[1])); - } -} - /******************************************************************* * * @brief Builds and sends the DUConfigUpdate @@ -1603,7 +1526,7 @@ S16 BuildAndSendDUConfigUpdate() /*pLMN_Identity*/ modifyItem->oldNRCGI.pLMN_Identity.size = 3; - DU_ALLOC(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t)); + DU_ALLOC(modifyItem->oldNRCGI.pLMN_Identity.buf, 3*sizeof(uint8_t)); if(modifyItem->oldNRCGI.pLMN_Identity.buf == NULLP) { for(idy=0; idyoldNRCGI.pLMN_Identity); /*nRCellIdentity*/ modifyItem->oldNRCGI.nRCellIdentity.size = 5; @@ -1682,7 +1605,7 @@ S16 BuildAndSendDUConfigUpdate() DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t)); RETVALUE(RFAILED); } - plmnBuild(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\ + buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\ &modifyItem->served_Cell_Information.nRCGI.pLMN_Identity); modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.size = 5; DU_ALLOC(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\ @@ -1823,7 +1746,7 @@ S16 BuildAndSendDUConfigUpdate() DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t)); RETVALUE(RFAILED); } - plmnBuild(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.plmn[0],\ + buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.plmn[0],\ &modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->pLMN_Identity); DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\ array[0]->iE_Extensions,sizeof(struct ProtocolExtensionContainer_4624P3)); @@ -2875,8 +2798,7 @@ S16 BuildAndSendDUConfigUpdate() DU_LOG("\nF1AP : Sending GND-DU Config Update failed"); RETVALUE(RFAILED); } - - RETVALUE(ROK); + return ROK; }/* End of BuildAndSendDUConfigUpdate */ /******************************************************************* @@ -2898,7 +2820,7 @@ S16 BuildAndSendDUConfigUpdate() * ****************************************************************/ S16 BuildAndSendULRRCMessageTransfer() { - S16 ret; + U8 elementCnt; U8 ieId; U8 idx; @@ -3029,8 +2951,7 @@ S16 BuildAndSendULRRCMessageTransfer() DU_LOG("\n F1AP : Sending UL RRC Message Transfer Failed"); RETVALUE(RFAILED); } - - RETVALUE(ROK); + return ROK; }/* End of BuildAndSendULRRCMessageTransfer*/ /******************************************************************* @@ -3146,7 +3067,7 @@ S16 BuildAndSendRRCSetupReq() DU_FREE(initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.\ nRCellIdentity.buf,initULRRCMsg->protocolIEs.list.array[idx]->\ value.choice.NRCGI.nRCellIdentity.size); - DU_FREE(initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.\ + DU_FREE(initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.\ pLMN_Identity.buf,initULRRCMsg->protocolIEs.list.array[idx]->\ value.choice.NRCGI.pLMN_Identity.size); for(idx=0; idxlist.array[idx]->id = ProtocolIE_ID_id_SCell_ToBeSetup_Item; spCellLst->list.array[idx]->criticality = Criticality_ignore; - spCellLst->list.array[idx]->value.present = \ + spCellLst->list.array[idx]->value.present =\ SCell_ToBeSetup_ItemIEs__value_PR_SCell_ToBeSetup_Item; /* Special Cell ID -NRCGI */ ret = BuildNrcgi(&spCellLst->list.array[idx]->value.choice.SCell_ToBeSetup_Item.sCell_ID); @@ -3274,8 +3194,7 @@ S16 BuildSplCellList(SCell_ToBeSetup_List_t *spCellLst) } /*Special Cell Index*/ spCellLst->list.array[idx]->value.choice.SCell_ToBeSetup_Item.sCellIndex = 1; - - RETVALUE(ROK); + return ROK; }/* End of BuildSplCellList*/ /******************************************************************* @@ -3325,7 +3244,7 @@ S16 BuildSRBSetup(SRBs_ToBeSetup_List_t *srbSet) srbSet->list.array[idx]->value.present = \ SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item; srbSet->list.array[idx]->value.choice.SRBs_ToBeSetup_Item.sRBID = 2; - RETVALUE(ROK); + return ROK; }/* End of BuildSRBSetup*/ /******************************************************************* @@ -3389,7 +3308,7 @@ S16 BuildQOSInfo(QoSFlowLevelQoSParameters_t *drbQos) Pre_emptionVulnerability_not_pre_emptable; /* TO DO: GBR_QoSFlowInformation */ - RETVALUE(ROK); + return ROK; }/*End of BuildQOSInfo*/ /******************************************************************* @@ -3437,8 +3356,7 @@ S16 BuildSNSSAI(SNSSAI_t *snssai) snssai->sD->buf[0] = 3; snssai->sD->buf[1] = 6; snssai->sD->buf[2] = 9; - - RETVALUE(ROK); + return ROK; }/*End of BuildSNSSAI*/ /******************************************************************* @@ -3506,7 +3424,7 @@ S16 BuildFlowsMap(Flows_Mapped_To_DRB_List_t *flowMap) DU_FREE(flowMap->list.array,flowMap->list.size); RETVALUE(RFAILED); } - RETVALUE(ROK); + return ROK; }/*End of BuildFlowsMap*/ /******************************************************************* @@ -3527,7 +3445,6 @@ S16 BuildFlowsMap(Flows_Mapped_To_DRB_List_t *flowMap) * ****************************************************************/ S16 BuildULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo) { - S16 ret; U8 idx; U8 ulidx; U8 ulCnt; @@ -3630,7 +3547,7 @@ S16 BuildULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo) ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\ gTP_TEID.buf[3] = 1; - RETVALUE(ROK); + return ROK; }/*End of BuildULTnlInfo*/ /******************************************************************* @@ -3902,8 +3819,7 @@ S16 BuildDRBSetup(DRBs_ToBeSetup_List_t *drbSet) RETVALUE(RFAILED); } drbSetItem->uLConfiguration->uLUEConfiguration = ULUEConfiguration_no_data; - - RETVALUE(ROK); + return ROK; }/* End of BuildDRBSetup*/ /******************************************************************* @@ -3941,7 +3857,6 @@ S16 BuildAndSendUESetReq() U8 ulCnt; F1AP_PDU_t *f1apMsg = NULL; UEContextSetupRequest_t *ueSetReq; - SCell_ToBeSetup_List_t *spCellLst; asn_enc_rval_t encRetVal; /* Encoder return value */ DU_LOG("\n F1AP : Building UE Context Setup Request\n"); @@ -4037,7 +3952,7 @@ S16 BuildAndSendUESetReq() BuildNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI); if(ret != ROK) { - //idx =2 + idx =2; DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\ nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\ choice.NRCGI.nRCellIdentity.size)); @@ -4098,7 +4013,7 @@ S16 BuildAndSendUESetReq() ret = BuildSplCellList(&ueSetReq->protocolIEs.\ list.array[idx]->value.choice.SCell_ToBeSetup_List); if(ret != ROK) - { //idx=6 + { idx=6; DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.buf,\ @@ -4120,7 +4035,7 @@ S16 BuildAndSendUESetReq() DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\ array[idx]->value.choice.SCell_ToBeSetup_List.list.size); - //idx =2 + idx =2; idx=idx-4; DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\ nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\ @@ -4151,7 +4066,8 @@ S16 BuildAndSendUESetReq() ret = BuildSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.\ choice.SRBs_ToBeSetup_List); if(ret != ROK) - {//idx =7 + { + idx =7; for(srbId=0; srbIdprotocolIEs.list.array[idx]->value.choice.\ @@ -4161,30 +4077,29 @@ S16 BuildAndSendUESetReq() DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SRBs_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\ array[idx]->value.choice.SRBs_ToBeSetup_List.list.size); - //idx=6 - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + idx=6; + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.buf,\ - ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.size); - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.buf,\ - ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.size); for(spId=0; spIdprotocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[spId],sizeof(struct SCell_ToBeSetup_ItemIEs)); } - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\ - array[--idx]->value.choice.SCell_ToBeSetup_List.list.size); - //idx=2 - idx=idx-4; + array[idx]->value.choice.SCell_ToBeSetup_List.list.size); + idx=2; DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\ nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\ choice.NRCGI.nRCellIdentity.size)); @@ -4216,7 +4131,7 @@ S16 BuildAndSendUESetReq() ret = BuildDRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.\ choice.DRBs_ToBeSetup_List); if(ret != ROK) - { //idx=8 + { idx=8; DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ DRBs_ToBeSetup_List.list.array[0]->value.choice.\ DRBs_ToBeSetup_Item.uLConfiguration,\ @@ -4328,40 +4243,39 @@ S16 BuildAndSendUESetReq() DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ DRBs_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\ array[idx]->value.choice.DRBs_ToBeSetup_List.list.size); - //idx=7 + idx=7; for(srbId=0; srbIdprotocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SRBs_ToBeSetup_List.list.array[srbId],\ sizeof(struct SRBs_ToBeSetup_ItemIEs)); } - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SRBs_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\ - array[--idx]->value.choice.SRBs_ToBeSetup_List.list.size); - //idx=6 - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + array[idx]->value.choice.SRBs_ToBeSetup_List.list.size); + idx=6; + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.buf,\ - ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.size); - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.buf,\ - ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[0]->value.choice.\ SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.size); for(spId=0; spIdprotocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array[spId],sizeof(struct SCell_ToBeSetup_ItemIEs)); } - DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\ + DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\ SCell_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\ - array[--idx]->value.choice.SCell_ToBeSetup_List.list.size); - //idx =2 - idx = idx-4; + array[idx]->value.choice.SCell_ToBeSetup_List.list.size); + idx =2; DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\ nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\ choice.NRCGI.nRCellIdentity.size)); @@ -4410,8 +4324,7 @@ S16 BuildAndSendUESetReq() DU_LOG("\n F1AP : Sending UE Context Setup Request Failed"); RETVALUE(RFAILED); } - - RETVALUE(ROK); + return ROK; }/* End of BuildAndSendUESetReq*/ /******************************************************************* @@ -4534,15 +4447,10 @@ void F1APMsgHdlr(Buffer *mBuf) S16 procGNBDUCfgUpdAck(F1AP_PDU_t *f1apMsg) { - F1GnbDuCfgUpdAck duCfgUpdAckDb; - GNBDUConfigurationUpdateAcknowledge_t *gnbDuCfgUpdAckMsg; DU_LOG("\nF1AP : GNB-DU config update acknowledgment received"); - /* Store the received info in local database */ - gnbDuCfgUpdAckMsg = &f1apMsg->choice.successfulOutcome->value.choice.GNBDUConfigurationUpdateAcknowledge; - duCfgUpdAckDb.transId = gnbDuCfgUpdAckMsg->protocolIEs.list.array[0]->value.choice.TransactionID; /* TODO :Check the deallocation */ #if 0 @@ -4552,8 +4460,7 @@ S16 procGNBDUCfgUpdAck(F1AP_PDU_t *f1apMsg) (Size)sizeof(SuccessfulOutcome_t)); SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t)); #endif - - RETVALUE(ROK); + return ROK; } /**********************************************************************