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*/
/*******************************************************************
struct TAG_Config__tag_ToAddModList *tagList;
uint8_t idx, elementCnt;
+ tagConfig->tag_ToReleaseList = NULLP;
tagConfig->tag_ToAddModList = NULLP;
DU_ALLOC(tagConfig->tag_ToAddModList, sizeof(struct TAG_Config__tag_ToAddModList));
if(!tagConfig->tag_ToAddModList)
elementCnt = 1; //ODU_VALUE_ONE;
tagList = tagConfig->tag_ToAddModList;
tagList->list.count = elementCnt;
- tagList->list.size = elementCnt * sizeof(struct TAG);
+ tagList->list.size = elementCnt * sizeof(struct TAG *);
tagList->list.array = NULLP;
DU_ALLOC(tagList->list.array, tagList->list.size);
{
bsrConfig->periodicBSR_Timer = PERIODIC_BSR_TMR;
bsrConfig->retxBSR_Timer = RETX_BSR_TMR;
+ bsrConfig->logicalChannelSR_DelayTimer = NULLP;
return ROK;
}
elementCnt = 1; //ODU_VALUE_ONE;
schReqList = schedulingRequestConfig->schedulingRequestToAddModList;
schReqList->list.count = elementCnt;
- schReqList->list.size = elementCnt * sizeof(SchedulingRequestId_t);
+ schReqList->list.size = elementCnt * sizeof(struct SchedulingRequestToAddMod *);
schReqList->list.array = NULLP;
DU_ALLOC(schReqList->list.array, schReqList->list.size);
for(idx=0;idx<schReqList->list.count; idx++)
{
schReqList->list.array[idx] = NULLP;
- DU_ALLOC(schReqList->list.array[idx], sizeof(SchedulingRequestId_t));
+ DU_ALLOC(schReqList->list.array[idx], sizeof(struct SchedulingRequestToAddMod));
if(!schReqList->list.array[idx])
{
DU_LOG("\nF1AP : Memory allocation failure in BuildSchedulingReqConfig");
return RFAILED;
}
*(schReqList->list.array[idx]->sr_ProhibitTimer) = SR_PROHIBIT_TMR;
-
schReqList->list.array[idx]->sr_TransMax = SR_TRANS_MAX;
+ schedulingRequestConfig->schedulingRequestToReleaseList = NULLP;
return ROK;
}
rlcConfig->choice.am->ul_AM_RLC.maxRetxThreshold = MAX_RETX_THRESHOLD;
/* DL */
- rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength = NULLP;
+ rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength = NULLP;
DU_ALLOC(rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength, sizeof(SN_FieldLengthAM_t));
if(!rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength)
{
*(rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength) = SN_FIELD_LEN;
rlcConfig->choice.am->dl_AM_RLC.t_Reassembly = T_REASSEMBLY;
rlcConfig->choice.am->dl_AM_RLC.t_StatusProhibit = T_STATUS_PROHIBHIT;
-
+
return ROK;
}
macLcConfig->ul_SpecificParameters->priority = MAC_LC_PRIORITY;
macLcConfig->ul_SpecificParameters->prioritisedBitRate = PRIORTISIED_BIT_RATE;
macLcConfig->ul_SpecificParameters->bucketSizeDuration = BUCKET_SIZE_DURATION;
+ macLcConfig->ul_SpecificParameters->allowedServingCells = NULLP;
+ macLcConfig->ul_SpecificParameters->allowedSCS_List = NULLP;
+ macLcConfig->ul_SpecificParameters->maxPUSCH_Duration = NULLP;
+ macLcConfig->ul_SpecificParameters->configuredGrantType1Allowed = NULLP;
macLcConfig->ul_SpecificParameters->logicalChannelGroup = NULLP;
DU_ALLOC(macLcConfig->ul_SpecificParameters->logicalChannelGroup, sizeof(long));
macLcConfig->ul_SpecificParameters->logicalChannelSR_Mask = false;
macLcConfig->ul_SpecificParameters->logicalChannelSR_DelayTimerApplied = false;
+ macLcConfig->ul_SpecificParameters->bitRateQueryProhibitTimer = NULLP;
return ROK;
}
elementCnt = 1;
rlcBearerList->list.count = elementCnt;
- rlcBearerList->list.size = elementCnt * sizeof(struct RLC_BearerConfig);
+ rlcBearerList->list.size = elementCnt * sizeof(struct RLC_BearerConfig *);
rlcBearerList->list.array = NULLP;
DU_ALLOC(rlcBearerList->list.array, rlcBearerList->list.size);
rlcBearerList->list.array[idx]->servedRadioBearer->present = RLC_BearerConfig__servedRadioBearer_PR_srb_Identity;
rlcBearerList->list.array[idx]->servedRadioBearer->choice.srb_Identity = SRB_ID_1;
+ rlcBearerList->list.array[idx]->reestablishRLC = NULLP;
rlcBearerList->list.array[idx]->rlc_Config = NULLP;
DU_ALLOC(rlcBearerList->list.array[idx]->rlc_Config, sizeof(struct RLC_Config));
if(!rlcBearerList->list.array[idx]->rlc_Config)
* ****************************************************************/
uint8_t BuildSpCellCfgDed(ServingCellConfig_t *srvCellCfg)
{
-
+#if 0
srvCellCfg->initialDownlinkBWP = NULLP;
DU_ALLOC(srvCellCfg->initialDownlinkBWP, sizeof(BWP_DownlinkDedicated_t));
if(!srvCellCfg->initialDownlinkBWP)
DU_LOG("\nF1AP : BuildInitialDlBWP failed");
return RFAILED;
}
-
+#endif
srvCellCfg->firstActiveDownlinkBWP_Id = NULLP;
DU_ALLOC(srvCellCfg->firstActiveDownlinkBWP_Id, sizeof(long));
if(!srvCellCfg->firstActiveDownlinkBWP_Id)
return RFAILED;
}
*(srvCellCfg->defaultDownlinkBWP_Id) = ACTIVE_DL_BWP_ID;
-
+#if 0
srvCellCfg->uplinkConfig = NULLP;
DU_ALLOC(srvCellCfg->uplinkConfig, sizeof(UplinkConfig_t));
if(!srvCellCfg->uplinkConfig)
DU_LOG("\nF1AP : BuildCsiMeasCfg failed");
return RFAILED;
}
-
+#endif
srvCellCfg->tag_Id = TAG_ID;
return ROK;
DU_LOG("\nF1AP : Memory allocation failure in BuildSpCellCfg");
return RFAILED;
}
-
if(BuildSpCellCfgDed(spCellCfg->spCellConfigDedicated) != ROK)
{
DU_LOG("\nF1AP : BuildSpCellCfgDed failed");
return RFAILED;
}
-
return ROK;
}
/*******************************************************************
* ****************************************************************/
uint8_t BuildPhyCellGrpCfg(PhysicalCellGroupConfig_t *phyCellGrpCfg)
{
+ phyCellGrpCfg->harq_ACK_SpatialBundlingPUCCH = NULLP;
+ phyCellGrpCfg->harq_ACK_SpatialBundlingPUSCH = NULLP;
+
phyCellGrpCfg->p_NR_FR1 = NULLP;
DU_ALLOC(phyCellGrpCfg->p_NR_FR1, sizeof(long));
if(!phyCellGrpCfg->p_NR_FR1)
}
*(phyCellGrpCfg->p_NR_FR1) = P_NR_FR1;
phyCellGrpCfg->pdsch_HARQ_ACK_Codebook = PDSCH_HARQ_ACK_CODEBOOK;
+ phyCellGrpCfg->tpc_SRS_RNTI = NULLP;
+ phyCellGrpCfg->tpc_PUCCH_RNTI = NULLP;
+ phyCellGrpCfg->tpc_PUSCH_RNTI = NULLP;
+ phyCellGrpCfg->sp_CSI_RNTI = NULLP;
+ phyCellGrpCfg->cs_RNTI = NULLP;
+ phyCellGrpCfg->ext1 = NULLP;
+ phyCellGrpCfg->ext2 = NULLP;
return ROK;
}
* ****************************************************************/
uint8_t BuildMacCellGrpCfg(MAC_CellGroupConfig_t *macCellGrpCfg)
{
-
+ macCellGrpCfg->drx_Config = NULLP;
macCellGrpCfg->schedulingRequestConfig = NULLP;
DU_ALLOC(macCellGrpCfg->schedulingRequestConfig, sizeof(struct SchedulingRequestConfig));
if(!macCellGrpCfg->schedulingRequestConfig)
}
macCellGrpCfg->skipUplinkTxDynamic = false;
+ macCellGrpCfg->ext1 = NULLP;
return ROK;
}
{
rlcConfig = rlcBearerList->list.array[idx]->rlc_Config;
macLcConfig = rlcBearerList->list.array[idx]->mac_LogicalChannelConfig;
- DU_FREE(rlcConfig->choice.am->ul_AM_RLC.sn_FieldLength, sizeof(SN_FieldLengthAM_t));
- DU_FREE(rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength, sizeof(SN_FieldLengthAM_t));
- DU_FREE(rlcConfig->choice.am, sizeof(struct RLC_Config__am));
- DU_FREE(rlcConfig, sizeof(struct RLC_Config));
+ if(rlcConfig)
+ {
+ if(rlcConfig->choice.am)
+ {
+ DU_FREE(rlcConfig->choice.am->ul_AM_RLC.sn_FieldLength, sizeof(SN_FieldLengthAM_t));
+ DU_FREE(rlcConfig->choice.am->dl_AM_RLC.sn_FieldLength, sizeof(SN_FieldLengthAM_t));
+ DU_FREE(rlcConfig->choice.am, sizeof(struct RLC_Config__am));
+ }
+ DU_FREE(rlcConfig, sizeof(struct RLC_Config));
+ }
DU_FREE(rlcBearerList->list.array[idx]->servedRadioBearer, sizeof(struct RLC_BearerConfig__servedRadioBearer));
- DU_FREE(macLcConfig->ul_SpecificParameters->schedulingRequestID, sizeof(SchedulingRequestId_t));
- DU_FREE(macLcConfig->ul_SpecificParameters->logicalChannelGroup, sizeof(long));
- DU_FREE(macLcConfig->ul_SpecificParameters, sizeof(struct LogicalChannelConfig__ul_SpecificParameters));
- DU_FREE(rlcBearerList->list.array[idx]->mac_LogicalChannelConfig, sizeof(struct LogicalChannelConfig));
+ if(macLcConfig)
+ {
+ if(macLcConfig->ul_SpecificParameters)
+ {
+ DU_FREE(macLcConfig->ul_SpecificParameters->schedulingRequestID, sizeof(SchedulingRequestId_t));
+ DU_FREE(macLcConfig->ul_SpecificParameters->logicalChannelGroup, sizeof(long));
+ DU_FREE(macLcConfig->ul_SpecificParameters, sizeof(struct LogicalChannelConfig__ul_SpecificParameters));
+ }
+ DU_FREE(rlcBearerList->list.array[idx]->mac_LogicalChannelConfig, sizeof(struct LogicalChannelConfig));
+ }
DU_FREE(rlcBearerList->list.array[idx], sizeof(struct RLC_BearerConfig));
}
DU_FREE(rlcBearerList->list.array, rlcBearerList->list.size);
schedulingRequestConfig = macCellGrpCfg->schedulingRequestConfig;
schReqList = schedulingRequestConfig->schedulingRequestToAddModList;
- for(idx=0;idx<schReqList->list.count; idx++)
+ if(schedulingRequestConfig)
+ {
+ if(schReqList)
+ {
+ if(schReqList->list.array)
+ {
+ for(idx=0;idx<schReqList->list.count; idx++)
+ {
+ if(schReqList->list.array[idx])
+ {
+ DU_FREE(schReqList->list.array[idx]->sr_ProhibitTimer, sizeof(long));
+ DU_FREE(schReqList->list.array[idx], sizeof(struct SchedulingRequestToAddMod));
+ }
+ }
+ DU_FREE(schReqList->list.array, schReqList->list.size);
+ }
+ DU_FREE(schedulingRequestConfig->schedulingRequestToAddModList,\
+ sizeof(struct SchedulingRequestConfig__schedulingRequestToAddModList)); }
+ DU_FREE(macCellGrpCfg->schedulingRequestConfig, sizeof(struct SchedulingRequestConfig));
+ }
+
+ if(macCellGrpCfg->bsr_Config)
{
- DU_FREE(schReqList->list.array[idx]->sr_ProhibitTimer, sizeof(long));
- DU_FREE(schReqList->list.array[idx], sizeof(SchedulingRequestId_t));
+ DU_FREE(macCellGrpCfg->bsr_Config, sizeof(struct BSR_Config));
}
- DU_FREE(schReqList->list.array, schReqList->list.size);
- DU_FREE(schedulingRequestConfig->schedulingRequestToAddModList,\
- sizeof(struct SchedulingRequestConfig__schedulingRequestToAddModList));
- DU_FREE(macCellGrpCfg->schedulingRequestConfig, sizeof(struct SchedulingRequestConfig));
-
- DU_FREE(macCellGrpCfg->bsr_Config, sizeof(struct BSR_Config));
tagConfig = macCellGrpCfg->tag_Config;
tagList = tagConfig->tag_ToAddModList;
- for(idx=0; idx<tagList->list.count; idx++)
+ if(tagConfig)
{
- DU_FREE(tagList->list.array[idx], sizeof(struct TAG));
- }
- DU_FREE(tagList->list.array, tagList->list.size);
- DU_FREE(tagConfig->tag_ToAddModList, sizeof(struct TAG_Config__tag_ToAddModList));
+ if(tagList)
+ {
+ if(tagList->list.array)
+ {
+ for(idx=0; idx<tagList->list.count; idx++)
+ {
+ DU_FREE(tagList->list.array[idx], sizeof(struct TAG));
+ }
+ DU_FREE(tagList->list.array, tagList->list.size);
+ }
+ DU_FREE(tagConfig->tag_ToAddModList, sizeof(struct TAG_Config__tag_ToAddModList));
+ }
DU_FREE(tagConfig, sizeof(struct TAG_Config));
+ }
phrConfig = macCellGrpCfg->phr_Config;
- DU_FREE(phrConfig->choice.setup, sizeof(struct PHR_Config));
- DU_FREE(phrConfig, sizeof(struct MAC_CellGroupConfig__phr_Config));
+ if(phrConfig)
+ {
+ DU_FREE(phrConfig->choice.setup, sizeof(struct PHR_Config));
+ DU_FREE(phrConfig, sizeof(struct MAC_CellGroupConfig__phr_Config));
+ }
DU_FREE(macCellGrpCfg, sizeof(MAC_CellGroupConfig_t));
}
{
DU_FREE(phyCellGrpCfg->p_NR_FR1, sizeof(long));
DU_FREE(phyCellGrpCfg, sizeof(PhysicalCellGroupConfig_t));
-
}
spCellCfg = cellGrpCfg->spCellConfig;
if(spCellCfg)
{
DU_FREE(spCellCfg->servCellIndex, sizeof(long));
- DU_FREE(spCellCfg->rlmInSyncOutOfSyncThreshold, sizeof(long));
+ DU_FREE(spCellCfg->rlmInSyncOutOfSyncThreshold, sizeof(long));
srvCellCfg = spCellCfg->spCellConfigDedicated;
-
- DU_FREE(srvCellCfg->initialDownlinkBWP, sizeof(BWP_DownlinkDedicated_t));
-
- DU_FREE(srvCellCfg->firstActiveDownlinkBWP_Id, sizeof(long));
- DU_FREE(srvCellCfg->defaultDownlinkBWP_Id, sizeof(long));
-
-
- DU_FREE(srvCellCfg->uplinkConfig, sizeof(UplinkConfig_t));
-
-
- DU_FREE(srvCellCfg->pdsch_ServingCellConfig, sizeof(struct ServingCellConfig__pdsch_ServingCellConfig));
-
-
- DU_FREE(srvCellCfg->csi_MeasConfig, sizeof(struct ServingCellConfig__csi_MeasConfig));
-
- DU_FREE(spCellCfg->spCellConfigDedicated, sizeof(ServingCellConfig_t));
+ if(srvCellCfg)
+ {
+ DU_FREE(srvCellCfg->initialDownlinkBWP, sizeof(BWP_DownlinkDedicated_t));
+ DU_FREE(srvCellCfg->firstActiveDownlinkBWP_Id, sizeof(long));
+ DU_FREE(srvCellCfg->defaultDownlinkBWP_Id, sizeof(long));
+ DU_FREE(srvCellCfg->uplinkConfig, sizeof(UplinkConfig_t));
+ DU_FREE(srvCellCfg->pdsch_ServingCellConfig, sizeof(struct ServingCellConfig__pdsch_ServingCellConfig));
+ DU_FREE(srvCellCfg->csi_MeasConfig, sizeof(struct ServingCellConfig__csi_MeasConfig));
+ DU_FREE(spCellCfg->spCellConfigDedicated, sizeof(ServingCellConfig_t));
+ }
DU_FREE(spCellCfg, sizeof(SpCellConfig_t));
}
-
return ROK;
}
/*******************************************************************
{
CellGroupConfigRrc_t cellGrpCfg;
asn_enc_rval_t encRetVal;
-
+ uint8_t ret = RFAILED;
while(1)
{
- duToCuRrcContainer = NULLP;
cellGrpCfg.cellGroupId = CELL_GRP_ID;
cellGrpCfg.rlc_BearerToAddModList = NULLP;
break;
}
- cellGrpCfg.rlc_BearerToReleaseList = NULLP;
+ cellGrpCfg.rlc_BearerToReleaseList = NULLP;
cellGrpCfg.mac_CellGroupConfig = NULLP;
DU_ALLOC(cellGrpCfg.mac_CellGroupConfig, sizeof(MAC_CellGroupConfig_t));
if(!cellGrpCfg.mac_CellGroupConfig)
break;
}
+ cellGrpCfg.sCellToAddModList = NULLP;
+ cellGrpCfg.sCellToReleaseList = NULLP;
+ cellGrpCfg.ext1 = NULLP;
+
/* 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 */
}
}
- memcpy(duToCuRrcContainer, encBuf, encBufSize);
+ duToCuRrcContainer->size = encBufSize;
+ DU_ALLOC(duToCuRrcContainer->buf, duToCuRrcContainer->size);
+ if(!duToCuRrcContainer->buf)
+ {
+ DU_LOG("\nF1AP : Memory allocation failed in BuildDuToCuRrcContainer");
+ break;
+ }
+ memcpy(duToCuRrcContainer->buf, encBuf, duToCuRrcContainer->size);
+ ret = ROK;
break;
}
- FreeMemDuToCuRrcCont(&cellGrpCfg);
- return ROK;
+ FreeMemDuToCuRrcCont(&cellGrpCfg);
+ return ret;
}
/*******************************************************************
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;
InitiatingMessage__value_PR_InitialULRRCMessageTransfer;
initULRRCMsg =\
&f1apMsg->choice.initiatingMessage->value.choice.InitialULRRCMessageTransfer;
- elementCnt = 3;
+ elementCnt = 5;
initULRRCMsg->protocolIEs.list.count = elementCnt;
initULRRCMsg->protocolIEs.list.size = \
elementCnt * sizeof(InitialULRRCMessageTransferIEs_t *);
initULRRCMsg->protocolIEs.list.array[idx1]->value.present =\
InitialULRRCMessageTransferIEs__value_PR_DUtoCURRCContainer;
- BuildDuToCuRrcContainer(&initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.DUtoCURRCContainer);
+ ret = BuildDuToCuRrcContainer(&initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.DUtoCURRCContainer);
+ if(ret != 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);
/* Encode results */
if(encRetVal.encoded == ENCODE_FAIL)
{
DU_LOG( "\n F1AP : Could not encode Initial UL RRC Message Transfer\
- structure (at %s)\n",encRetVal.failed_type ? encRetVal.failed_type->name : "unknown");
+ structure (at %s)\n",encRetVal.failed_type ? \
+ encRetVal.failed_type->name : "unknown");
break;
}
else
DU_FREE(initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.RRCContainer.buf,
initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.RRCContainer.size)
}
+
+ idx1 = 4;
+ if(initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.DUtoCURRCContainer.buf)
+ {
+ DU_FREE(initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.DUtoCURRCContainer.buf,
+ initULRRCMsg->protocolIEs.list.array[idx1]->value.choice.DUtoCURRCContainer.size);
+ }
for(ieId=0; ieId<elementCnt; ieId++)
{
DU_FREE(initULRRCMsg->protocolIEs.list.array[ieId],sizeof(InitialULRRCMessageTransferIEs_t));
}
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*/
/*******************************************************************