extern char encBuf[ENC_BUF_MAX_LEN];
extern DuCfgParams duCfgParam;
-static S16 BuildULTnlInforet=RFAILED;
-
+uint8_t BuildULTnlInforet=RFAILED;
+uint8_t ServedCellListreturn=RFAILED;
S16 sctpSend(Buffer *mBuf, U8 itfType);
-
-
+uint8_t Nrcgiret=RFAILED;
+uint8_t SplCellListret=RFAILED;
+uint8_t SRBSetupret=RFAILED;
/*******************************************************************
*
* @brief Builds Uplink Info for NR
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildULNRInfo(NRFreqInfo_t *ulnrfreq)
+uint8_t BuildULNRInfo(NRFreqInfo_t *ulnrfreq)
{
- U8 idx=0;
+ uint8_t idx=0;
ulnrfreq->nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.\
fdd.ulNrFreqInfo.nrArfcn;
ulnrfreq->freqBandListNr.list.count = 1;
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildDLNRInfo(NRFreqInfo_t *dlnrfreq)
+uint8_t BuildDLNRInfo(NRFreqInfo_t *dlnrfreq)
{
- U8 idx=0;
+ uint8_t idx=0;
dlnrfreq->nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.\
fdd.dlNrFreqInfo.nrArfcn;
dlnrfreq->freqBandListNr.list.count = 1;
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildNrcgi(NRCGI_t *nrcgi)
+uint8_t BuildNrcgi(NRCGI_t *nrcgi)
{
- S16 ret;
- U8 unused = 4;
- U8 byteSize = 5;
- U8 val = 16;
+ uint8_t ret;
+ uint8_t unused = 4;
+ uint8_t byteSize = 5;
+ uint8_t val = 16;
/* Allocate Buffer Memory */
- nrcgi->pLMN_Identity.size = PLMN_SIZE * sizeof(U8);
+ nrcgi->pLMN_Identity.size = PLMN_SIZE * sizeof(uint8_t);
DU_ALLOC(nrcgi->pLMN_Identity.buf, nrcgi->pLMN_Identity.size);
if(nrcgi->pLMN_Identity.buf == NULLP)
{
}
/*nrCellIdentity*/
//ret = BuildNrCellId(&nrcgi->nRCellIdentity);
- nrcgi->nRCellIdentity.size = byteSize * sizeof(U8);
+ nrcgi->nRCellIdentity.size = byteSize * sizeof(uint8_t);
DU_ALLOC(nrcgi->nRCellIdentity.buf, nrcgi->nRCellIdentity.size);
if(nrcgi->nRCellIdentity.buf == NULLP)
{
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildFiveGSTac(Served_Cell_Information_t *servcell)
+uint8_t BuildFiveGSTac(Served_Cell_Information_t *servcell)
{
DU_ALLOC(servcell->fiveGS_TAC,sizeof(FiveGS_TAC_t));
if(servcell->fiveGS_TAC == NULLP)
{
return RFAILED;
}
- servcell->fiveGS_TAC->size = 3 * sizeof(U8);
+ servcell->fiveGS_TAC->size = 3 * sizeof(uint8_t);
DU_ALLOC(servcell->fiveGS_TAC->buf,\
sizeof(servcell->fiveGS_TAC->size));
if(servcell->fiveGS_TAC->buf == NULLP)
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildNrMode(NR_Mode_Info_t *mode)
+uint8_t BuildNrMode(NR_Mode_Info_t *mode)
{
- S16 BuildDLNRInforet=0;
- S16 BuildULNRInforet=0;
+ uint8_t BuildDLNRInforet=0;
+ uint8_t BuildULNRInforet=0;
/* FDD Mode */
mode->present = NR_Mode_Info_PR_fDD;
if(mode->present == NR_Mode_Info_PR_fDD)
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildExtensions(ProtocolExtensionContainer_4624P3_t **ieExtend)
+uint8_t BuildExtensions(ProtocolExtensionContainer_4624P3_t **ieExtend)
{
- U8 idx;
- U8 plmnidx;
- U8 extensionCnt=1;
- U8 sliceId=0;
- U8 sdId;
+ uint8_t idx;
+ uint8_t plmnidx;
+ uint8_t extensionCnt=1;
+ uint8_t sliceId=0;
+ uint8_t sdId;
DU_ALLOC(*ieExtend,sizeof(ProtocolExtensionContainer_4624P3_t));
if((*ieExtend) == NULLP)
{
return RFAILED;
}
(*ieExtend)->list.array[idx]->extensionValue.choice.SliceSupportList.\
- list.array[sliceId]->sNSSAI.sST.size = sizeof(U8);
+ list.array[sliceId]->sNSSAI.sST.size = sizeof(uint8_t);
DU_ALLOC((*ieExtend)->list.array[idx]->extensionValue.choice.SliceSupportList\
.list.array[sliceId]->sNSSAI.sST.buf,(*ieExtend)->list.array[idx]->\
extensionValue.choice.SliceSupportList.\
return RFAILED;
}
(*ieExtend)->list.array[idx]->extensionValue.choice.SliceSupportList.\
- list.array[sliceId]->sNSSAI.sD->size = 3*sizeof(U8);
+ list.array[sliceId]->sNSSAI.sD->size = 3*sizeof(uint8_t);
DU_ALLOC((*ieExtend)->list.array[idx]->extensionValue.choice.SliceSupportList.\
list.array[sliceId]->sNSSAI.sD->buf,(*ieExtend)->list.array[idx]->extensionValue.choice.\
SliceSupportList.list.array[sliceId]->sNSSAI.sD->size);
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildServedPlmn(ServedPLMNs_List_t *srvplmn)
+uint8_t BuildServedPlmn(ServedPLMNs_List_t *srvplmn)
{
- U8 plmnidx;
- U8 servPlmnCnt=1;
- S16 buildPlmnIdret=0;
- S16 BuildExtensionsret=0;
+ uint8_t plmnidx;
+ uint8_t servPlmnCnt=1;
+ uint8_t buildPlmnIdret=0;
+ uint8_t BuildExtensionsret=0;
srvplmn->list.count = servPlmnCnt;
srvplmn->list.size = \
servPlmnCnt*sizeof(ServedPLMNs_Item_t *);
return RFAILED;
}
}
- srvplmn->list.array[0]->pLMN_Identity.size = PLMN_SIZE * sizeof(U8);
+ srvplmn->list.array[0]->pLMN_Identity.size = PLMN_SIZE * sizeof(uint8_t);
DU_ALLOC(srvplmn->list.array[0]->pLMN_Identity.buf, srvplmn->list.array[0]->pLMN_Identity.size);
buildPlmnIdret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
&srvplmn->list.array[0]->pLMN_Identity);
*
* ****************************************************************/
-S16 BuildServedCellList(GNB_DU_Served_Cells_List_t *duServedCell)
+uint8_t BuildServedCellList(GNB_DU_Served_Cells_List_t *duServedCell)
{
- S16 BuildNrcgiret=0;
- S16 BuildFiveGSTacret=0;
- S16 BuildServedPlmnret=0;
- S16 BuildNrModeret=0;
- U8 idx;
- U8 plmnidx;
- U8 plmnCnt=1;
+ uint8_t BuildNrcgiret=0;
+ uint8_t BuildFiveGSTacret=0;
+ uint8_t BuildServedPlmnret=0;
+ uint8_t BuildNrModeret=0;
+ uint8_t idx;
+ uint8_t plmnidx;
+ uint8_t plmnCnt=1;
GNB_DU_Served_Cells_Item_t *srvCellItem;
duServedCell->list.size = plmnCnt * sizeof(GNB_DU_Served_Cells_ItemIEs_t *);
duServedCell->list.count = plmnCnt;
}
/*Measurement timing Config*/
srvCellItem->served_Cell_Information.measurementTimingConfiguration.\
- size = sizeof(U8);
+ size = sizeof(uint8_t);
DU_ALLOC(srvCellItem->served_Cell_Information.\
measurementTimingConfiguration.buf,srvCellItem->served_Cell_Information.measurementTimingConfiguration.size);
if(srvCellItem->served_Cell_Information.\
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildRrcVer(RRC_Version_t *rrcVer)
+uint8_t BuildRrcVer(RRC_Version_t *rrcVer)
{
- U8 rrcExt;
- U8 rrcLatest;
- rrcVer->latest_RRC_Version.size = sizeof(U8);
- DU_ALLOC(rrcVer->latest_RRC_Version.buf,sizeof(U8));
+ uint8_t rrcExt;
+ uint8_t rrcLatest;
+ rrcVer->latest_RRC_Version.size = sizeof(uint8_t);
+ DU_ALLOC(rrcVer->latest_RRC_Version.buf,sizeof(uint8_t));
if(rrcVer->latest_RRC_Version.buf == NULLP)
{
return RFAILED;
rrcVer->iE_Extensions->list.array[rrcExt]->extensionValue.present =\
RRC_Version_ExtIEs__extensionValue_PR_Latest_RRC_Version_Enhanced;
rrcVer->iE_Extensions->list.array[rrcExt]->extensionValue.choice\
- .Latest_RRC_Version_Enhanced.size = 3*sizeof(U8);
+ .Latest_RRC_Version_Enhanced.size = 3*sizeof(uint8_t);
DU_ALLOC(rrcVer->iE_Extensions->list.array[rrcExt]->extensionValue.choice\
.Latest_RRC_Version_Enhanced.buf,rrcVer->iE_Extensions->list.\
array[rrcExt]->extensionValue.choice.Latest_RRC_Version_Enhanced.size);
* RFAILED - failure
*
* ****************************************************************/
-S16 SendF1APMsg(Region region, Pool pool)
+uint8_t SendF1APMsg(Region region, Pool pool)
{
Buffer *mBuf;
* ****************************************************************/
void FreeServedCellList( GNB_DU_Served_Cells_List_t *duServedCell)
{
- U8 plmnCnt=1;
- U8 servId=0;
- U8 sliceId=0;
- U8 ieId=0;
- U8 extensionCnt=1;
- U8 plmnidx=0;
+ uint8_t plmnCnt=1;
+ uint8_t servId=0;
+ uint8_t sliceId=0;
+ uint8_t ieId=0;
+ uint8_t extensionCnt=1;
+ uint8_t plmnidx=0;
GNB_DU_Served_Cells_Item_t *srvCellItem= &duServedCell->list.array[0]->value.choice.GNB_DU_Served_Cells_Item;
if(duServedCell->list.array!=NULLP)
{
}
DU_FREE(srvCellItem->served_Cell_Information.servedPLMNs.list.array[servId]->\
iE_Extensions->list.array[ieId]->extensionValue.choice.SliceSupportList.list.array[sliceId]->\
- sNSSAI.sST.buf,sizeof(U8));
+ sNSSAI.sST.buf,sizeof(uint8_t));
}
DU_FREE(srvCellItem->served_Cell_Information.servedPLMNs.list.array[servId]->iE_Extensions->list.array[0]->\
extensionValue.choice.SliceSupportList.list.array[sliceId],sizeof(SliceSupportItem_t));
DU_FREE(srvCellItem->served_Cell_Information.servedPLMNs.list.\
array[servId]->pLMN_Identity.buf,srvCellItem->served_Cell_Information.\
servedPLMNs.list.array[servId]->pLMN_Identity.size
- * sizeof(U8));
+ * sizeof(uint8_t));
}
DU_FREE(srvCellItem->served_Cell_Information.servedPLMNs.list.array[plmnidx],\
sizeof(ServedPLMNs_Item_t *));
}
DU_FREE(srvCellItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
srvCellItem->served_Cell_Information.nRCGI.nRCellIdentity.size *
- sizeof(U8));
+ sizeof(uint8_t));
}
DU_FREE(srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.size *
- sizeof(U8));
+ sizeof(uint8_t));
}
DU_FREE(duServedCell->list.array[plmnidx],sizeof(GNB_DU_Served_Cells_ItemIEs_t));
}
DU_FREE(duServedCell->list.array,plmnCnt*sizeof(GNB_DU_Served_Cells_ItemIEs_t*));
}
}
+/*******************************************************************
+ *
+ * @brief deallocating the memory of function BuildAndSendF1SetupReq()
+ *
+ * @details
+ *
+ * Function : FreeF1SetupReq
+ *
+ * Functionality: deallocating the memory of function BuildAndSendF1SetupReq
+ *
+ * @params[in] F1AP_PDU_t *f1apMsg
+ *
+ * @return void
+ *
+ * ****************************************************************/
+void FreeF1SetupReq(F1AP_PDU_t *f1apMsg)
+{
+ uint8_t idx =0;
+ uint8_t idx1=1;
+ F1SetupRequest_t *f1SetupReq=NULLP;
+
+
+ if(f1apMsg != NULLP)
+ {
+ if(f1apMsg->choice.initiatingMessage != NULLP)
+ {
+ f1SetupReq = &f1apMsg->choice.initiatingMessage->value.choice.F1SetupRequest;
+ if(f1SetupReq->protocolIEs.list.array != NULLP)
+ {
+ if(f1SetupReq->protocolIEs.list.array[idx1]!=NULLP)
+ {
+ if(f1SetupReq->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.buf != NULLP)
+ {
+ idx1++;
+ if(f1SetupReq->protocolIEs.list.array[idx1]->value.choice.GNB_DU_Name.buf != NULLP)
+ {
+ idx1=4;
+ if(ServedCellListreturn == ROK)
+ {
+ FreeRrcVer(&f1SetupReq->protocolIEs.list.array[idx1]->value.choice.RRC_Version);
+ }
+ idx1--;
+ FreeServedCellList(&f1SetupReq->protocolIEs.list.array[idx1]->value.choice.GNB_DU_Served_Cells_List);
+ idx1--;
+ DU_FREE(f1SetupReq->protocolIEs.list.array[idx1]->value.choice.GNB_DU_Name.buf,
+ strlen((char *)duCfgParam.duName));
+ }
+ idx1--;
+ DU_FREE(f1SetupReq->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.buf,\
+ f1SetupReq->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.size);
+ }
+ }
+ for(idx=0; idx<f1SetupReq->protocolIEs.list.count; idx++)
+ {
+ if(f1SetupReq->protocolIEs.list.array[idx]!=NULLP)
+ {
+ DU_FREE(f1SetupReq->protocolIEs.list.array[idx],sizeof(F1SetupRequestIEs_t));
+ }
+ }
+ DU_FREE(f1SetupReq->protocolIEs.list.array,\
+ f1SetupReq->protocolIEs.list.size);
+ }
+ DU_FREE(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t));
+ }
+ DU_FREE(f1apMsg, sizeof(F1AP_PDU_t));
+ }
+
+}
/*******************************************************************
*
* @brief Builds and Send the F1SetupRequest
* RFAILED - failure
*
******************************************************************/
-S16 BuildAndSendF1SetupReq()
+uint8_t BuildAndSendF1SetupReq()
{
- S16 BuildServedCellListreturn=0;
- S16 BuildRrcVerreturn=0;
- U8 idx=0,idx2=0,i=0;
- U8 ieId=0;
- U8 elementCnt=0;
+ uint8_t idx=0;
+ uint8_t idx2=0;
+ uint8_t i=0;
+ uint8_t elementCnt=0;
F1AP_PDU_t *f1apMsg = NULLP;
F1SetupRequest_t *f1SetupReq=NULLP;
GNB_DU_Served_Cells_List_t *duServedCell=NULLP;
RRC_Version_t *rrcVer=NULLP;
asn_enc_rval_t encRetVal; /* Encoder return value */
- bool ret=false;
+ uint8_t ret= RFAILED;
+ uint8_t BuildRrcVerreturn=0;
+
DU_LOG("\nF1AP : Building F1 Setup Request\n");
do
{
f1SetupReq->protocolIEs.list.array[idx2]->value.present = \
F1SetupRequestIEs__value_PR_GNB_DU_ID;
f1SetupReq->protocolIEs.list.array[idx2]->value.choice.GNB_DU_ID.size =\
- sizeof(U8);
+ sizeof(uint8_t);
DU_ALLOC(f1SetupReq->protocolIEs.list.array[idx2]->value.choice.GNB_DU_ID.buf,\
f1SetupReq->protocolIEs.list.array[idx2]->value.choice.GNB_DU_ID.size);
F1SetupRequestIEs__value_PR_GNB_DU_Served_Cells_List;
duServedCell = &f1SetupReq->protocolIEs.list.\
array[idx2]->value.choice.GNB_DU_Served_Cells_List;
- BuildServedCellListreturn = BuildServedCellList(duServedCell);
- if(BuildServedCellListreturn != ROK)
+ ServedCellListreturn = BuildServedCellList(duServedCell);
+ if(ServedCellListreturn != ROK)
{
break;
}
-
/*RRC Version*/
idx2++;
f1SetupReq->protocolIEs.list.array[idx2]->id = \
F1SetupRequestIEs__value_PR_RRC_Version;
rrcVer = &f1SetupReq->protocolIEs.list.array[idx2]->value.choice.RRC_Version;
BuildRrcVerreturn = BuildRrcVer(rrcVer);
- ieId = 0;
if(BuildRrcVerreturn != ROK)
{
break;
xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg);
/* Encode the F1SetupRequest type as APER */
- cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+ cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\
encBuf);
DU_LOG("\nF1AP : Sending F1 Setup request failed");
break;
}
- ret=true;
+
+ ret=ROK;
break;
}while(1);
- if(f1apMsg != NULLP)
- {
-
- if(f1apMsg->choice.initiatingMessage != NULLP)
- {
- if(f1SetupReq->protocolIEs.list.array != NULLP)
- {
- if(idx == elementCnt-1)
- {
- if(f1SetupReq->protocolIEs.list.array[1]->value.choice.GNB_DU_ID.buf != NULLP)
- {
- if(f1SetupReq->protocolIEs.list.array[2]->value.choice.GNB_DU_Name.buf != NULLP)
- {
- if(BuildServedCellListreturn == ROK)
- {
- FreeRrcVer(rrcVer);
- }
- FreeServedCellList(duServedCell);
- DU_FREE(f1SetupReq->protocolIEs.list.array[2]->value.choice.GNB_DU_Name.buf, strlen((char *)duCfgParam.duName));
- }
- DU_FREE(f1SetupReq->protocolIEs.list.array[1]->value.choice.GNB_DU_ID.buf, sizeof(U8));
- }
- for(idx=0; idx<elementCnt; idx++)
- {
- DU_FREE(f1SetupReq->protocolIEs.list.array[idx],sizeof(F1SetupRequestIEs_t));
- }
- }
- else
- {
- for(ieId=0 ; ieId<idx ;ieId++)
- {
- if(f1SetupReq->protocolIEs.list.array[ieId]!=NULLP)
- {
- DU_FREE(f1SetupReq->protocolIEs.list.array[ieId],\
- sizeof(F1SetupRequestIEs_t));
- }
- }
- }
- DU_FREE(f1SetupReq->protocolIEs.list.array,\
- elementCnt * sizeof(F1SetupRequestIEs_t *));
- }
- DU_FREE(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t));
- }
- DU_FREE(f1apMsg, sizeof(F1AP_PDU_t));
- }
-
- if(ret==true)
- return ROK;
- else
- return RFAILED;
+ FreeF1SetupReq(f1apMsg);
+
+ return ret;
}/* End of BuildAndSendF1SetupReq */
/*******************************************************************
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildAndSendDUConfigUpdate()
+uint8_t BuildAndSendDUConfigUpdate()
{
- U8 idx;
- U8 idy;
- U8 idx1;
- U8 idy1;
- U8 idy2;
- U8 elementCnt;
- U8 modifyCnt;
- U8 servPlmnCnt;
- U8 extensionCnt;
+ uint8_t idx;
+ uint8_t idy;
+ uint8_t idx1;
+ uint8_t idy1;
+ uint8_t idy2;
+ uint8_t elementCnt;
+ uint8_t modifyCnt;
+ uint8_t servPlmnCnt;
+ uint8_t extensionCnt;
asn_enc_rval_t encRetVal; /* Encoder return value */
F1AP_PDU_t *f1apDuCfg = NULL;
GNBDUConfigurationUpdate_t *duCfgUpdate;
Served_Cells_To_Modify_List_t *cellsToModify;
Served_Cells_To_Modify_Item_t *modifyItem;
- bool checkvar=false;
- U8 i;
+ uint8_t ret= RFAILED;
+ uint8_t i;
while(1)
{
xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apDuCfg);
/* Encode the DU Config Update type as APER */
- cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+ cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apDuCfg, PrepFinalEncBuf, encBuf);
DU_LOG("\nF1AP : Sending GND-DU Config Update failed");
break;
}
- checkvar=true;
+
+ ret = ROK;
break;
- }
+ }
+ FreeDUConfigUpdate(f1apDuCfg);
+
+ return ret;
+}
+ /*******************************************************************
+ *
+ * @brief Deallocating memory of BuildAndSendDUConfigUpdate
+ *
+ * @details
+ *
+ * Function : FreeDUConfigUpdate
+ *
+ * Functionality: Deallocating memory of variables allocated in
+ * BuildAndSendDUConfigUpdate function
+ *
+ * @params[in] F1AP_PDU_t *f1apDuCfg
+ *
+ * @return ROK - void
+ *
+ * ****************************************************************/
+void FreeDUConfigUpdate(F1AP_PDU_t *f1apDuCfg)
+{
+ uint8_t i;
+ uint8_t idx;
+ GNBDUConfigurationUpdate_t *duCfgUpdate;
+ Served_Cells_To_Modify_List_t *cellsToModify;
+ Served_Cells_To_Modify_Item_t *modifyItem;
+ idx=0;
+ i=1;
if(f1apDuCfg != NULLP)
{
if(f1apDuCfg->choice.initiatingMessage != NULLP)
{
+ duCfgUpdate = &f1apDuCfg->choice.initiatingMessage->\
+ value.choice.GNBDUConfigurationUpdate;
if(duCfgUpdate->protocolIEs.list.array != NULLP)
{
- if(idx==elementCnt)
- {
- if(cellsToModify->list.array != NULLP)
- {
- if(idy==modifyCnt)
- {
- if(modifyItem->oldNRCGI.pLMN_Identity.buf != NULLP)
- {
+ if(duCfgUpdate->protocolIEs.list.array[i] != NULLP)
+ {
+ cellsToModify = &duCfgUpdate->protocolIEs.list.array[i]->\
+ value.choice.Served_Cells_To_Modify_List;
+ if(cellsToModify->list.array != NULLP)
+ {
+ if(cellsToModify->list.array[idx] != NULLP)
+ {
+ modifyItem=&cellsToModify->list.array[idx]->value.choice.\
+ Served_Cells_To_Modify_Item;
+ if(modifyItem->oldNRCGI.pLMN_Identity.buf != NULLP)
+ {
if(modifyItem->oldNRCGI.nRCellIdentity.buf != NULLP)
- {
+ {
if(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf != NULLP)
- {
- if(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf
- != NULLP)
+ {
+ if(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf
+ != NULLP)
{
if(modifyItem->served_Cell_Information.servedPLMNs.list.array\
!= NULLP)
{
- if(idy1==servPlmnCnt)
+ if(!modifyItem->served_Cell_Information.servedPLMNs.list.array[idx])
{
- if(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->pLMN_Identity.buf != NULLP)
- {
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+ array[idx]->pLMN_Identity.buf != NULLP)
+ {
if(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->iE_Extensions!= NULLP)
+ array[idx]->iE_Extensions!= NULLP)
{
if(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->iE_Extensions->list.array != NULLP)
+ array[idx]->iE_Extensions->list.array != NULLP)
{
- if(idy2==extensionCnt)
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array !=NULLP)
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+ array[idx]->iE_Extensions->list.array[idx])
{
- if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]!=NULLP)
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]->sNSSAI.sST.buf!=NULLP)
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]->sNSSAI.sD != NULLP)
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]->sNSSAI.sD->buf!=NULLP)
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array !=NULLP)
+ {
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx]!=NULLP)
+ {
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx]->sNSSAI.sST.buf!=NULLP)
+ {
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx]->sNSSAI.sD != NULLP)
+ {
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx]->sNSSAI.sD->buf!=NULLP)
{
if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD
!=NULLP)
fDD->uL_NRFreqInfo.freqBandListNr.list.array!=NULLP)
{
if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
- fDD->uL_NRFreqInfo.freqBandListNr.list.array[0]!=NULLP)
+ fDD->uL_NRFreqInfo.freqBandListNr.list.array[idx]!=NULLP)
{
if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
fDD->dL_NRFreqInfo.freqBandListNr.list.array !=NULLP)
{
if(modifyItem->served_Cell_Information.nR_Mode_Info.\
choice.fDD->dL_NRFreqInfo.freqBandListNr.list.\
- array[0]!= NULLP)
+ array[idx]!= NULLP)
{
if(modifyItem->served_Cell_Information.\
measurementTimingConfiguration.buf !=NULLP)
{
- if(duCfgUpdate->protocolIEs.list.array[2]->value.\
+ idx=2;
+ if(duCfgUpdate->protocolIEs.list.array[idx]->value.\
choice.GNB_DU_ID.buf!=NULLP)
{
DU_FREE(duCfgUpdate->protocolIEs.list.\
- array[2]->value.choice.GNB_DU_ID.buf,\
- duCfgUpdate->protocolIEs.list.array[2]->\
+ array[idx]->value.choice.GNB_DU_ID.buf,\
+ duCfgUpdate->protocolIEs.list.array[idx]->\
value.choice.GNB_DU_ID.size);
}
+ idx=0;
DU_FREE(modifyItem->served_Cell_Information.\
measurementTimingConfiguration.\
buf,modifyItem->served_Cell_Information.\
}
DU_FREE(modifyItem->served_Cell_Information.\
nR_Mode_Info.choice.fDD->dL_NRFreqInfo.freqBandListNr.\
- list.array[0],sizeof(FreqBandNrItem_t));
+ list.array[idx],sizeof(FreqBandNrItem_t));
}
DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info\
.choice.fDD->dL_NRFreqInfo.freqBandListNr.list.array,\
}
DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.\
choice.fDD->uL_NRFreqInfo.freqBandListNr.list.\
- array[0],sizeof(FreqBandNrItem_t));
+ array[idx],sizeof(FreqBandNrItem_t));
}
- DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
- fDD->uL_NRFreqInfo.freqBandListNr.list.\
- array,modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
- fDD->uL_NRFreqInfo.freqBandListNr.list.size);
- }
- DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
- fDD,sizeof(FDD_Info_t));
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]->sNSSAI.sD->buf,modifyItem->served_Cell_Information.\
- servedPLMNs.list.array[0]->iE_Extensions->list.array[0]->\
- extensionValue.choice.SliceSupportList.list.array[0]->sNSSAI.sD->size);
-
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]->sNSSAI.sD,sizeof(OCTET_STRING_t));
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0]->sNSSAI.sST.buf,modifyItem->served_Cell_Information.servedPLMNs.\
- list.array[0]->iE_Extensions->list.array[0]->extensionValue.choice.\
- SliceSupportList.list.array[0]->sNSSAI.sST.size);
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array[0],sizeof(SliceSupportItem_t));
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
- list.array,\
- modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
- iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.list.size);
- }
- for(i=0;i<extensionCnt;i++)
- {
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->iE_Extensions->list.array[i],\
- sizeof(ServedPLMNs_ItemExtIEs_t ));
- }
+ DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.\
+ choice.\
+ fDD->uL_NRFreqInfo.freqBandListNr.list.\
+ array,modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
+ fDD->uL_NRFreqInfo.freqBandListNr.list.size);
+ }
+ DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
+ fDD,sizeof(FDD_Info_t));
+ }
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
+ array[idx]->iE_Extensions->list.array[idx]->extensionValue.choice.\
+ SliceSupportList.\
+ list.array[idx]->sNSSAI.sD->buf,modifyItem->served_Cell_Information.\
+ servedPLMNs.list.array[idx]->iE_Extensions->list.array[idx]->\
+ extensionValue.choice.SliceSupportList.list.array[idx]->\
+ sNSSAI.sD->size);
+
+ }
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
+ array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx]->sNSSAI.sD,sizeof(OCTET_STRING_t));
+ }
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx]->sNSSAI.sST.buf,modifyItem->served_Cell_Information.\
+ servedPLMNs.\
+ list.array[idx]->iE_Extensions->list.array[idx]->extensionValue.choice.\
+ SliceSupportList.list.array[idx]->sNSSAI.sST.size);
+ }
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array[idx],sizeof(SliceSupportItem_t));
+ }
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.\
+ list.array,\
+ modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->\
+ iE_Extensions->list.array[idx]->extensionValue.choice.SliceSupportList.list.size);
+ }
}
- else
+ for(i=0;i<modifyItem->served_Cell_Information.servedPLMNs.list.\
+ array[idx]->iE_Extensions->list.count;i++)
{
- for(i=0;i<idy2;i++)
- {
DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->iE_Extensions->list.array[i],\
- sizeof(ServedPLMNs_ItemExtIEs_t));
- }
+ array[idx]->iE_Extensions->list.array[i],\
+ sizeof(ServedPLMNs_ItemExtIEs_t ));
}
DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->iE_Extensions->list.array,modifyItem->served_Cell_Information.servedPLMNs.
- list.array[0]->iE_Extensions->list.size);
+ array[idx]->iE_Extensions->list.array,modifyItem->served_Cell_Information.servedPLMNs.
+ list.array[idx]->iE_Extensions->list.size);
}
DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
+ array[idx]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
}
DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[0]->pLMN_Identity.buf,
- modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->pLMN_Identity.size);
- }
- for(i=0;i<idy1;i++)
- {
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[i],\
- sizeof(ServedPLMNs_Item_t));
- }
- }
- else
- {
- for(i=0;i<idy1;i++)
- {
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[i],\
- sizeof(ServedPLMNs_Item_t));
- }
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
- modifyItem->served_Cell_Information.servedPLMNs.list.size);
- }
- DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
+ array[idx]->pLMN_Identity.buf,
+ modifyItem->served_Cell_Information.servedPLMNs.list.array[idx]->pLMN_Identity.size);
+ }
+ }
+ for(i=0;i<modifyItem->served_Cell_Information.servedPLMNs.list.count;i++)
+ {
+ if(modifyItem->served_Cell_Information.servedPLMNs.list.array[i]
+ != NULLP)
+ {
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[i],\
+ sizeof(ServedPLMNs_Item_t));
+ }
+ }
+ DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
+ modifyItem->served_Cell_Information.servedPLMNs.list.size);
+ }
+ DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.size);
}
DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.size);
}
- DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
+ DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
modifyItem->oldNRCGI.nRCellIdentity.size);
- }
- DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,\
- modifyItem->oldNRCGI.pLMN_Identity.size);
- }
- for(int iy=0; iy<modifyCnt ;iy++)
- {
- DU_FREE(cellsToModify->list.array[iy],\
- sizeof(Served_Cells_To_Modify_ItemIEs_t));
- }
- }
- else
- {
- for(int iy=0; iy<idy ;iy++)
+ }
+ DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,\
+ modifyItem->oldNRCGI.pLMN_Identity.size);
+ }
+ }
+ for(i=0; i<cellsToModify->list.count ;i++)
{
- DU_FREE(cellsToModify->list.array[iy],\
- sizeof(Served_Cells_To_Modify_ItemIEs_t));
- }
- }
- DU_FREE(cellsToModify->list.array,cellsToModify->list.size);
+ if(cellsToModify->list.array[i] != NULLP)
+ {
+ DU_FREE(cellsToModify->list.array[i],\
+ sizeof(Served_Cells_To_Modify_ItemIEs_t));
+ }
+ }
+ DU_FREE(cellsToModify->list.array,cellsToModify->list.size);
+ }
}
- for(i=0;i<elementCnt;i++)
+ for(i=0;i<duCfgUpdate->protocolIEs.list.count;i++)
{
- DU_FREE(duCfgUpdate->protocolIEs.list.array[i],\
- sizeof(GNBDUConfigurationUpdateIEs_t));
+ if(duCfgUpdate->protocolIEs.list.array[i] !=NULLP)
+ {
+ DU_FREE(duCfgUpdate->protocolIEs.list.array[i],\
+ sizeof(GNBDUConfigurationUpdateIEs_t));
+ }
}
- }
- else
- {
- for(i=0;i<idx;i++)
- {
- DU_FREE(duCfgUpdate->protocolIEs.list.array[i],\
- sizeof(GNBDUConfigurationUpdateIEs_t));
- }
- }
- DU_FREE(duCfgUpdate->protocolIEs.list.array,duCfgUpdate->protocolIEs.list.size);
- }
- DU_FREE(f1apDuCfg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
- }
+ DU_FREE(duCfgUpdate->protocolIEs.list.array,duCfgUpdate->protocolIEs.list.size);
+ }
+ DU_FREE(f1apDuCfg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
+ }
DU_FREE(f1apDuCfg, (Size)sizeof(F1AP_PDU_t));
}
- if(checkvar==true)
- return ROK;
- else
- return RFAILED;
-}/* End of BuildAndSendDUConfigUpdate */
+}
+ /*******************************************************************
+ *
+ * @brief free the ULRRCMessageTransfer
+ *
+ * @details
+ *
+ * Function : FreeULRRCMessageTransfer
+ *
+ * Functionality: Deallocating the memory of variable allocated in
+ * FreeULRRCMessageTransfer
+ *
+ * @params[in]
+ *
+ * @return ROK - void
+ *
+ ******************************************************************/
+void FreeULRRCMessageTransfer( F1AP_PDU_t *f1apMsg)
+{
+ uint8_t idx1;
+ ULRRCMessageTransfer_t *ulRRCMsg;
+ if(f1apMsg != NULLP)
+ {
+ if(f1apMsg->choice.initiatingMessage != NULLP)
+ {
+ ulRRCMsg = &f1apMsg->choice.initiatingMessage->value.choice.ULRRCMessageTransfer;
+ if(ulRRCMsg->protocolIEs.list.array != NULLP)
+ {
+ for(idx1=0;idx1<ulRRCMsg->protocolIEs.list.count;idx1++)
+ {
+ if(ulRRCMsg->protocolIEs.list.array[idx1] != NULLP)
+ {
+ DU_FREE(ulRRCMsg->protocolIEs.list.array[idx1],sizeof(ULRRCMessageTransferIEs_t));
+ }
+ }
+ DU_FREE(ulRRCMsg->protocolIEs.list.array,ulRRCMsg->protocolIEs.list.size );
+ }
+ DU_FREE(f1apMsg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
+ }
+ DU_FREE(f1apMsg,sizeof(F1AP_PDU_t));
+ }
+}
/*******************************************************************
*
* @brief Builds and sends the ULRRCMessageTransfer
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildAndSendULRRCMessageTransfer()
+uint8_t BuildAndSendULRRCMessageTransfer()
{
- U8 elementCnt;
- U8 idx1;
- U8 idx;
+ uint8_t elementCnt;
+ uint8_t idx1;
+ uint8_t idx;
F1AP_PDU_t *f1apMsg = NULL;
ULRRCMessageTransfer_t *ulRRCMsg;
asn_enc_rval_t encRetVal; /* Encoder return value */
- bool checkvar=false;
+ uint8_t ret =RFAILED;
while(1)
{
DU_LOG("\n F1AP : Building UL RRC Message Transfer Message\n");
xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg);
/* Encode the F1SetupRequest type as APER */
- cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+ cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\
encBuf);
DU_LOG("\n F1AP : Sending UL RRC Message Transfer Failed");
break;
}
- checkvar=true;
+ ret = ROK;
break;
}
+ FreeULRRCMessageTransfer(f1apMsg);
- if(f1apMsg != NULLP)
- {
- if(f1apMsg->choice.initiatingMessage != NULLP)
- {
- if(ulRRCMsg->protocolIEs.list.array != NULLP)
- {
- for(idx1=0;idx1<idx;idx1++)
- {
- if(ulRRCMsg->protocolIEs.list.array[idx1] != NULLP)
- {
- DU_FREE(ulRRCMsg->protocolIEs.list.array[idx1],sizeof(ULRRCMessageTransferIEs_t));
- }
- }
- DU_FREE(ulRRCMsg->protocolIEs.list.array,ulRRCMsg->protocolIEs.list.size );
- }
- DU_FREE(f1apMsg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
- }
- DU_FREE(f1apMsg,sizeof(F1AP_PDU_t));
- }
-
- if(checkvar==true)
- return ROK;
- else
- return RFAILED;
+ return ret;
}/* End of BuildAndSendULRRCMessageTransfer*/
/*******************************************************************
/* encode cellGrpCfg into duToCuRrcContainer */
xer_fprint(stdout, &asn_DEF_CellGroupConfigRrc, &cellGrpCfg);
- cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+ cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
encRetVal = aper_encode(&asn_DEF_CellGroupConfigRrc, 0, &cellGrpCfg, PrepFinalEncBuf, encBuf);
/* Encode results */
uint8_t BuildAndSendInitialRrcMsgTransfer(uint32_t gnbDuUeF1apId, uint16_t crnti,
uint8_t *rrcContainer)
{
- S16 ret;
- U8 elementCnt;
- U8 ieId;
- U8 idx;
- U8 idx1;
+ uint8_t ret;
+ uint8_t elementCnt;
+ uint8_t ieId;
+ uint8_t idx;
+ uint8_t idx1;
F1AP_PDU_t *f1apMsg = NULLP;
InitialULRRCMessageTransfer_t *initULRRCMsg=NULLP;
asn_enc_rval_t encRetVal;
xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg);
/* Encode the F1SetupRequest type as APER */
- cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+ cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf, encBuf);
/* Encode results */
}
DU_FREE(f1apMsg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
}
- DU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t));
+ DU_FREE(f1apMsg, sizeof(F1AP_PDU_t));
}
if(checkvar==true)
return ROK;
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildSplCellList(SCell_ToBeSetup_List_t *spCellLst)
+uint8_t BuildSplCellList(SCell_ToBeSetup_List_t *spCellLst)
{
- U8 cellCnt;
- U8 idx;
- S16 ret;
+ uint8_t cellCnt;
+ uint8_t idx;
+ uint8_t ret;
cellCnt = 1;
spCellLst->list.count = cellCnt;
spCellLst->list.size = cellCnt * sizeof(SCell_ToBeSetup_ItemIEs_t *);
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildSRBSetup(SRBs_ToBeSetup_List_t *srbSet)
+uint8_t BuildSRBSetup(SRBs_ToBeSetup_List_t *srbSet)
{
- U8 idx;
- U8 srbCnt;
+ uint8_t idx;
+ uint8_t srbCnt;
srbCnt = 1;
srbSet->list.count = srbCnt;
srbSet->list.size = srbCnt*sizeof(SRBs_ToBeSetup_ItemIEs_t *);
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildQOSInfo(QoSFlowLevelQoSParameters_t *drbQos)
+uint8_t BuildQOSInfo(QoSFlowLevelQoSParameters_t *drbQos)
{
/* NonDynamic5QIDescriptor */
drbQos->qoS_Characteristics.present = QoS_Characteristics_PR_non_Dynamic_5QI;
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildSNSSAI(SNSSAI_t *snssai)
+uint8_t BuildSNSSAI(SNSSAI_t *snssai)
{
/*SNSSAI*/
/*ssT*/
- snssai->sST.size = sizeof(U8);
+ snssai->sST.size = sizeof(uint8_t);
DU_ALLOC(snssai->sST.buf,snssai->sST.size);
if(snssai->sST.buf == NULLP)
{
{
return RFAILED;
}
- snssai->sD->size = 3*sizeof(U8);
+ snssai->sD->size = 3*sizeof(uint8_t);
DU_ALLOC(snssai->sD->buf,snssai->sD->size);
if(snssai->sD->buf == NULLP)
{
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildFlowsMap(Flows_Mapped_To_DRB_List_t *flowMap)
+uint8_t BuildFlowsMap(Flows_Mapped_To_DRB_List_t *flowMap)
{
- S16 ret;
- U8 idx;
- U8 flowCnt;
+ uint8_t ret;
+ uint8_t idx;
+ uint8_t flowCnt;
flowCnt = 1;
flowMap->list.count = flowCnt;
flowMap->list.size = flowCnt * sizeof(Flows_Mapped_To_DRB_Item_t *);
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo)
+uint8_t BuildULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo)
{
- U8 idx;
- U8 ulCnt;
+ uint8_t idx;
+ uint8_t ulCnt;
ulCnt = 1;
ulInfo->list.count = ulCnt;
ulInfo->list.size = ulCnt * sizeof(ULUPTNLInformation_ToBeSetup_Item_t *);
return RFAILED;
}
ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\
- transportLayerAddress.size = 4*sizeof(U8);
+ transportLayerAddress.size = 4*sizeof(uint8_t);
DU_ALLOC(ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\
transportLayerAddress.buf,ulInfo->list.array[idx]->\
uLUPTNLInformation.choice.gTPTunnel->transportLayerAddress.size);
transportLayerAddress.bits_unused = 0;
/*GTP TEID*/
ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->gTP_TEID.size\
- = 4 * sizeof(U8);
+ = 4 * sizeof(uint8_t);
DU_ALLOC(ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\
gTP_TEID.buf,ulInfo->list.array[idx]->uLUPTNLInformation.choice.\
gTPTunnel->gTP_TEID.size);
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildDRBSetup(DRBs_ToBeSetup_List_t *drbSet)
+uint8_t BuildDRBSetup(DRBs_ToBeSetup_List_t *drbSet)
{
- S16 BuildQOSInforet;
- S16 BuildSNSSAIret;
- S16 BuildFlowsMapret;
- U8 idx;
- U8 drbCnt;
+ uint8_t BuildQOSInforet;
+ uint8_t BuildSNSSAIret;
+ uint8_t BuildFlowsMapret;
+ uint8_t idx;
+ uint8_t drbCnt;
DRBs_ToBeSetup_Item_t *drbSetItem;
drbCnt = 1;
drbSet->list.count = drbCnt;
* *****************************************************************/
void FreeSplCellList(SCell_ToBeSetup_List_t *spCellLst)
{
- U8 cellidx;
+ uint8_t cellidx;
if(spCellLst->list.array != NULLP)
{
for(cellidx=0; cellidx<spCellLst->list.count; cellidx++)
* ******************************************************************/
void FreeSRBSetup(SRBs_ToBeSetup_List_t *srbSet)
{
- U8 srbidx;
+ uint8_t srbidx;
if(srbSet->list.array != NULLP)
{
for(srbidx=0; srbidx<srbSet->list.count; srbidx++)
* ****************************************************************/
void FreeULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo)
{
- U8 ulidx=0;
+ uint8_t ulidx=0;
if(ulInfo->list.array != NULLP)
{
for(ulidx=0; ulidx<ulInfo->list.count; ulidx++)
void FreeDRBSetup(DRBs_ToBeSetup_List_t *drbSet)
{
DRBs_ToBeSetup_Item_t *drbSetItem;
- U8 flowidx;
- U8 drbidx;
+ uint8_t flowidx;
+ uint8_t drbidx;
if(drbSet->list.array == NULLP)
{
for(drbidx=0; drbidx<drbSet->list.count; drbidx++)
DU_FREE(drbSet->list.array,drbSet->list.size);
}
}
+/*******************************************************************
+ *
+ * @brief Free the UE Setup Request
+ *
+ * @details
+ *
+ * Function : FreeUESetReq
+ *
+ * Functionality: Deallocate the memory of BuildUESetReq
+ *
+ * @params[in] F1AP_PDU_t *f1apMsg
+ *
+ * @return void
+ *
+ *
+ * ****************************************************************/
+ void FreeUESetReq(F1AP_PDU_t *f1apMsg)
+{
+ uint8_t idx=2;
+ uint8_t ieId;
+ UEContextSetupRequest_t *ueSetReq;
+
+ if(f1apMsg != NULLP)
+ {
+ if(f1apMsg->choice.initiatingMessage != NULLP)
+ {
+ ueSetReq = &f1apMsg->choice.initiatingMessage->value.choice.UEContextSetupRequest;
+ if(ueSetReq->protocolIEs.list.array != NULLP)
+ {
+ if(ueSetReq->protocolIEs.list.array[idx])
+ {
+ if(Nrcgiret==ROK )
+ {
+ idx=6;
+ if(ueSetReq->protocolIEs.list.array[idx])
+ {
+ if(SplCellListret==ROK)
+ {
+ idx++;
+ if(ueSetReq->protocolIEs.list.array[idx])
+ {
+ if(SRBSetupret == ROK)
+ {
+ idx=8;
+ FreeDRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.DRBs_ToBeSetup_List);
+ }
+ idx--;
+ FreeSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SRBs_ToBeSetup_List);
+ }
+ }
+ idx--;
+ FreeSplCellList(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SCell_ToBeSetup_List);
+ }
+ }
+ idx=2;
+ FreeNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI);
+ }
+ for(ieId=0; ieId<ueSetReq->protocolIEs.list.count; ieId++)
+ {
+ if(ueSetReq->protocolIEs.list.array[ieId] != NULLP)
+ {
+ DU_FREE(ueSetReq->protocolIEs.list.array[ieId],sizeof(UEContextSetupRequestIEs_t));
+ }
+ }
+ DU_FREE(ueSetReq->protocolIEs.list.array,ueSetReq->protocolIEs.list.size);
+ }
+ DU_FREE(f1apMsg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
+ }
+ DU_FREE(f1apMsg, sizeof(F1AP_PDU_t));
+ }
+ }
+
/*******************************************************************
*
* @brief Builds and sends the UE Setup Request
* RFAILED - failure
*
* ****************************************************************/
-S16 BuildAndSendUESetReq()
+uint8_t BuildAndSendUESetReq()
{
- S16 ret;
- U8 elementCnt;
- S16 BuildNrcgiret;
- S16 BuildSplCellListret;
- S16 BuildSRBSetupret;
- U8 idx;
- U8 idx1;
- U8 ieId;
+
+ uint8_t elementCnt;
+ uint8_t idx;
+ uint8_t idx1;
F1AP_PDU_t *f1apMsg = NULL;
UEContextSetupRequest_t *ueSetReq;
asn_enc_rval_t encRetVal; /* Encoder return value */
- bool checkvar=false;
+ uint8_t ret= RFAILED;
+ uint8_t ret1;
while(1)
{
DU_LOG("\n F1AP : Building UE Context Setup Request\n");
ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject;
ueSetReq->protocolIEs.list.array[idx]->value.present = \
UEContextSetupRequestIEs__value_PR_NRCGI;
- BuildNrcgiret = BuildNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI);
- if(BuildNrcgiret != ROK)
+ Nrcgiret = BuildNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI);
+ if(Nrcgiret != ROK)
{
break;
}
ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore;
ueSetReq->protocolIEs.list.array[idx]->value.present = \
UEContextSetupRequestIEs__value_PR_SCell_ToBeSetup_List;
- BuildSplCellListret = BuildSplCellList(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SCell_ToBeSetup_List);
- if(BuildSplCellListret != ROK)
+ SplCellListret = BuildSplCellList(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SCell_ToBeSetup_List);
+ if(SplCellListret != ROK)
{
break;
}
ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject;
ueSetReq->protocolIEs.list.array[idx]->value.present = \
UEContextSetupRequestIEs__value_PR_SRBs_ToBeSetup_List;
- BuildSRBSetupret = BuildSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SRBs_ToBeSetup_List);
- if(BuildSRBSetupret != ROK)
+ SRBSetupret = BuildSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SRBs_ToBeSetup_List);
+ if(SRBSetupret != ROK)
{
break;
}
ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject;
ueSetReq->protocolIEs.list.array[idx]->value.present = \
UEContextSetupRequestIEs__value_PR_DRBs_ToBeSetup_List;
- ret = BuildDRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.DRBs_ToBeSetup_List);
- if(ret != ROK)
+ ret1 = BuildDRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.DRBs_ToBeSetup_List);
+ if(ret1 != ROK)
{
break;
}
xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg);
/* Encode the F1SetupRequest type as APER */
- cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+ cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN);
encBufSize = 0;
encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\
encBuf);
DU_LOG("\n F1AP : Sending UE Context Setup Request Failed");
break;
}
- checkvar=true;
+ ret = ROK;
break;
}
- if(f1apMsg != NULLP)
- {
- if(f1apMsg->choice.initiatingMessage != NULLP)
- {
- if(ueSetReq->protocolIEs.list.array != NULLP)
- {
- if(idx1==elementCnt)
- {
- if(BuildNrcgiret==ROK)
- {
- if(BuildSplCellListret==ROK)
- {
- if(BuildSRBSetupret == ROK)
- {
- FreeDRBSetup(&ueSetReq->protocolIEs.list.array[idx--]->value.choice.DRBs_ToBeSetup_List);
- }
- FreeSRBSetup(&ueSetReq->protocolIEs.list.array[idx--]->value.choice.SRBs_ToBeSetup_List);
- }
- FreeSplCellList(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SCell_ToBeSetup_List);
- }
- idx=2;
- FreeNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI);
- for(ieId=0; ieId<idx1; ieId++)
- {
- DU_FREE(ueSetReq->protocolIEs.list.array[ieId],sizeof(UEContextSetupRequestIEs_t));
- }
- }
- else
- {
- for(ieId=0; ieId<idx; ieId++)
- {
- if(ueSetReq->protocolIEs.list.array[ieId] != NULLP)
- {
- DU_FREE(ueSetReq->protocolIEs.list.array[ieId],sizeof(UEContextSetupRequestIEs_t));
- }
- }
- }
- DU_FREE(ueSetReq->protocolIEs.list.array,ueSetReq->protocolIEs.list.size);
- }
- DU_FREE(f1apMsg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
- }
- DU_FREE(f1apMsg, sizeof(F1AP_PDU_t));
- }
- if(checkvar==true)
- return ROK;
- else
- return RFAILED;
+ FreeUESetReq(f1apMsg);
+
+ return ret;
}/* End of BuildAndSendUESetReq*/
/*******************************************************************