/* This file contains F1AP message handler functions */
+#include "du_mgr.h"
#include "du_mgr_main.h"
-#include "du_cfg.h"
#include "du_cell_mgr.h"
#include "du_f1ap_msg_hdl.h"
+#include "GNB-DU-System-Information.h"
-char encBuf[ENC_BUF_MAX_LEN];
-
+extern char encBuf[ENC_BUF_MAX_LEN];
extern DuCfgParams duCfgParam;
-
-/*******************************************************************
- *
- * @brief Writes the encoded chunks into a buffer
- *
- * @details
- *
- * Function : PrepFinalEncBuf
- *
- * Functionality:Fills the encoded buffer
- *
- * @params[in] void *buffer,initial encoded data
- * @params[in] size_t size,size of buffer
- * @params[in] void *encodedBuf,final buffer
- * @return ROK - success
- * RFAILED - failure
- *
- * ****************************************************************/
-static int PrepFinalEncBuf(const void *buffer, size_t size, void *encodedBuf)
-{
- memcpy(encodedBuf + encBufSize, buffer, size);
- encBufSize += size;
- return 0;
-} /* PrepFinalEncBuf */
-
+S16 sctpSend(Buffer *mBuf, U8 itfType);
/*******************************************************************
*
* @brief Builds Uplink Info for NR
duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.ulNrFreqInfo.\
freqBand[0].nrFreqBand;
ulnrfreq->freqBandListNr.list.array[idx]->supportedSULBandList.list.count = SUL_BAND_COUNT;
- RETVALUE(ROK);
+ return ROK;
}
/*******************************************************************
*
* ****************************************************************/
S16 BuildDLNRInfo(NRFreqInfo_t *dlnrfreq)
{
- U8 idx;
+ U8 idx=0;
dlnrfreq->nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.\
fdd.dlNrFreqInfo.nrArfcn;
dlnrfreq->freqBandListNr.list.count = 1;
DU_FREE(dlnrfreq->freqBandListNr.list.array,sizeof(struct FreqBandNrItem *));
RETVALUE(RFAILED);
}
- dlnrfreq->freqBandListNr.list.array[idx]->freqBandIndicatorNr = \
- duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.dlNrFreqInfo.\
- freqBand[0].nrFreqBand;
- dlnrfreq->freqBandListNr.list.array[idx]->supportedSULBandList.list.count = SUL_BAND_COUNT;
- RETVALUE(ROK);
+ dlnrfreq->freqBandListNr.list.array[idx]->freqBandIndicatorNr = \
+ duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.dlNrFreqInfo.\
+ freqBand[0].nrFreqBand;
+ dlnrfreq->freqBandListNr.list.array[idx]->supportedSULBandList.list.count = SUL_BAND_COUNT;
+ return ROK;
}
-/*******************************************************************
- *
- * @brief Builds PLMN ID
- *
- * @details
- *
- * Function : BuildPlmn
- *
- * Functionality: Building the PLMN ID
- *
- * @params[in] PLMNID plmn
- * @return ROK - success
- * RFAILED - failure
- *
- * ****************************************************************/
-S16 BuildPlmn(PlmnId plmn, OCTET_STRING_t *plmnid)
-{
- U8 mncCnt;
- plmnid->size = 3;
- DU_ALLOC(plmnid->buf, plmnid->size * sizeof(U8));
- if(plmnid->buf == NULLP)
- {
- RETVALUE(RFAILED);
- }
- mncCnt = 2;
- plmnid->buf[0] = ((plmn.mcc[1] << 4) | (plmn.mcc[0]));
- if(mncCnt == 2)
- {
- plmnid->buf[1] = ((0xf0) | (plmn.mcc[2]));
- plmnid->buf[2] = ((plmn.mnc[1] << 4) | (plmn.mnc[0]));
- }
- else
- {
- plmnid->buf[1] = ((plmn.mnc[0] << 4) | (plmn.mcc[2]));
- plmnid->buf[2] = ((plmn.mnc[2] << 4) | (plmn.mnc[1]));
- }
- RETVALUE(ROK);
-}
-/*******************************************************************
- *
- * @brief Builds NRCell ID
- *
- * @details
- *
- * Function : BuildNrCellId
- *
- * Functionality: Building the NR Cell ID
- *
- * @params[in] BIT_STRING_t *nrcell
- * @return ROK - success
- * RFAILED - failure
- *
- * ****************************************************************/
-
-S16 BuildNrCellId(BIT_STRING_t *nrcell)
-{
- U8 tmp;
- nrcell->size = 5;
- DU_ALLOC(nrcell->buf, nrcell->size * sizeof(U8));
- if(nrcell->buf == NULLP)
- {
- RETVALUE(RFAILED);
- }
-
- for (tmp = 0 ; tmp < nrcell->size-1; tmp++)
- {
- nrcell->buf[tmp] = 0;
- }
- nrcell->buf[4] = 16;//change this
- nrcell->bits_unused = 4;
- RETVALUE(ROK);
-}
/*******************************************************************
*
* @brief Builds Nrcgi
S16 BuildNrcgi(NRCGI_t *nrcgi)
{
S16 ret;
- GNB_DU_Served_Cells_Item_t *srvCellItem;
- ret = BuildPlmn(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
+ U8 unused = 4;
+ U8 byteSize = 5;
+ U8 val = 16;
+
+ /* Allocate Buffer Memory */
+ nrcgi->pLMN_Identity.size = PLMN_SIZE * sizeof(U8);
+ DU_ALLOC(nrcgi->pLMN_Identity.buf, nrcgi->pLMN_Identity.size);
+ ret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
&nrcgi->pLMN_Identity); // Building PLMN function
if(ret != ROK)
{
- RETVALUE(RFAILED);
+ return ret;
}
/*nrCellIdentity*/
- ret = BuildNrCellId(&nrcgi->nRCellIdentity);
- if(ret != ROK)
+ //ret = BuildNrCellId(&nrcgi->nRCellIdentity);
+ nrcgi->nRCellIdentity.size = byteSize * sizeof(U8);
+ DU_ALLOC(nrcgi->nRCellIdentity.buf, nrcgi->nRCellIdentity.size);
+ if(nrcgi->nRCellIdentity.buf == NULLP)
{
- DU_FREE(srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
- srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.size * sizeof(U8));
- RETVALUE(RFAILED);
+ return RFAILED;
}
+ ret = fillBitString(&nrcgi->nRCellIdentity, unused, byteSize, val);
- RETVALUE(ROK);
+ if(ret != ROK)
+ {
+ DU_FREE(nrcgi->nRCellIdentity.buf, nrcgi->nRCellIdentity.size);
+ return ret;
+ }
+ return ROK;
}
/*******************************************************************
*
servcell->fiveGS_TAC->buf[0] = 0;
servcell->fiveGS_TAC->buf[1] = 0;
servcell->fiveGS_TAC->buf[2] = duCfgParam.srvdCellLst[0].duCellInfo.tac;
- RETVALUE(ROK);
+ return ROK;
}
/*******************************************************************
*
S16 BuildNrMode(NR_Mode_Info_t *mode)
{
S16 ret;
- GNB_DU_Served_Cells_Item_t *srvCellItem;
/* FDD Mode */
mode->present = NR_Mode_Info_PR_fDD;
if(mode->present == NR_Mode_Info_PR_fDD)
{
DU_FREE(mode->choice.fDD,\
sizeof(FDD_Info_t));
- DU_FREE(srvCellItem->served_Cell_Information.\
- nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\
+ DU_FREE(mode->choice.fDD->uL_NRFreqInfo.\
freqBandListNr.list.array,sizeof(struct FreqBandNrItem *));
- DU_FREE(srvCellItem->served_Cell_Information.\
- nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\
+ DU_FREE(mode->choice.fDD->uL_NRFreqInfo.\
freqBandListNr.list.array[0],sizeof(struct FreqBandNrItem));
RETVALUE(RFAILED);
}
mode->choice.fDD->dL_Transmission_Bandwidth.nRNRB = \
duCfgParam.srvdCellLst[0].duCellInfo.\
f1Mode.mode.fdd.dlTxBw.nrb;
- RETVALUE(ROK);
+ return ROK;
}
/*******************************************************************
*
{
U8 idx;
U8 plmnidx;
- U8 extensionCnt;
+ U8 extensionCnt=1;
U8 extensionId;
U8 sliceId;
U8 sdId;
{
RETVALUE(RFAILED);
}
- extensionCnt=1;
(*ieExtend)->list.count = extensionCnt;
(*ieExtend)->list.size = \
extensionCnt * sizeof(struct ServedPLMNs_ItemExtIEs *);
sdId++;
(*ieExtend)->list.array[idx]->extensionValue.choice.SliceSupportList.\
list.array[sliceId]->sNSSAI.sD->buf[sdId] = 9;
- RETVALUE(ROK);
+ return ROK;
}
/*******************************************************************
*
S16 ret;
U8 plmnidx;
U8 servPlmnid;
- U8 servPlmnCnt;
- GNB_DU_Served_Cells_Item_t *srvCellItem;
- servPlmnCnt = 1;
+ U8 servPlmnCnt=1;
srvplmn->list.count = servPlmnCnt;
srvplmn->list.size = \
servPlmnCnt*sizeof(struct ServedPLMNs_Item *);
RETVALUE(RFAILED);
}
}
- ret = BuildPlmn(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
+ /* Allocate Memory to Buffer */
+ srvplmn->list.array[0]->pLMN_Identity.size = PLMN_SIZE * sizeof(U8);
+ DU_ALLOC(srvplmn->list.array[0]->pLMN_Identity.buf, srvplmn->list.array[0]->pLMN_Identity.size);
+ ret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
&srvplmn->list.array[0]->pLMN_Identity);
if(ret!= ROK)
{
{
DU_FREE(srvplmn->list.\
array[0]->pLMN_Identity.buf,(Size)\
- srvCellItem->served_Cell_Information.nRCGI.pLMN_Identity.size * sizeof(U8));
+ srvplmn->list.array[0]->pLMN_Identity.size * sizeof(U8));
for(plmnidx=0; plmnidx<servPlmnCnt; plmnidx++)
{
DU_FREE(srvplmn->list.array[plmnidx],\
sizeof(struct ServedPLMNs_Item *));
RETVALUE(RFAILED);
}
-RETVALUE(ROK);
+ return ROK;
}
/*******************************************************************
*
U8 idx;
U8 plmnidx;
U8 plmnId;
- U8 plmnCnt;
- U8 servPlmnCnt;
- U8 extensionCnt;
+ U8 plmnCnt=1;
+ U8 servPlmnCnt=1;
+ U8 extensionCnt=1;
U8 sliceId;
U8 servId;
U8 ieId;
GNB_DU_Served_Cells_Item_t *srvCellItem;
- plmnCnt = 1;
duServedCell->list.size = plmnCnt * sizeof(GNB_DU_Served_Cells_ItemIEs_t *);
duServedCell->list.count = plmnCnt;
DU_ALLOC(duServedCell->list.array, plmnCnt * sizeof(GNB_DU_Served_Cells_ItemIEs_t *));
RETVALUE(RFAILED);
}
srvCellItem->served_Cell_Information.measurementTimingConfiguration.buf[0] = \
- duCfgParam.srvdCellLst[0].duCellInfo.measTimeCfg;
- RETVALUE(ROK);
+ duCfgParam.srvdCellLst[0].duCellInfo.measTimeCfg;
+
+ /* GNB DU System Information */
+ DU_ALLOC(srvCellItem->gNB_DU_System_Information,
+ sizeof(GNB_DU_System_Information_t));
+ if(!srvCellItem->gNB_DU_System_Information)
+ {
+ DU_LOG("\nF1AP: Memory allocation failure for GNB_DU_System_Information");
+ return RFAILED;
+ }
+ /* MIB */
+ srvCellItem->gNB_DU_System_Information->mIB_message.size =\
+ strlen(( char *)duCfgParam.srvdCellLst[0].duSysInfo.mibMsg);
+ DU_ALLOC(srvCellItem->gNB_DU_System_Information->mIB_message.buf,
+ srvCellItem->gNB_DU_System_Information->mIB_message.size);
+ if(!srvCellItem->gNB_DU_System_Information->mIB_message.buf)
+ {
+ DU_LOG("\nF1AP: Memory allocation failure for mIB message");
+ return RFAILED;
+ }
+ strcpy((char *)srvCellItem->gNB_DU_System_Information->mIB_message.buf,
+ (char *)duCfgParam.srvdCellLst[0].duSysInfo.mibMsg);
+
+ /* SIB1 */
+ srvCellItem->gNB_DU_System_Information->sIB1_message.size =\
+ duCfgParam.srvdCellLst[0].duSysInfo.sib1Len;
+ DU_ALLOC(srvCellItem->gNB_DU_System_Information->sIB1_message.buf,
+ srvCellItem->gNB_DU_System_Information->sIB1_message.size);
+ if(!srvCellItem->gNB_DU_System_Information->sIB1_message.buf)
+ {
+ DU_LOG("\nF1AP: Memory allocation failure for SIB1 message");
+ return RFAILED;
+ }
+ for(int x=0; x<srvCellItem->gNB_DU_System_Information->sIB1_message.size; x++)
+ {
+ srvCellItem->gNB_DU_System_Information->sIB1_message.buf[x]=\
+ duCfgParam.srvdCellLst[0].duSysInfo.sib1Msg[x];
+ }
+ /* Free memory */
+ DU_FREE(duCfgParam.srvdCellLst[0].duSysInfo.sib1Msg,
+ srvCellItem->gNB_DU_System_Information->sIB1_message.size);
+ DU_FREE(duCfgParam.srvdCellLst[0].duSysInfo.mibMsg,
+ strlen((char *)duCfgParam.srvdCellLst[0].duSysInfo.mibMsg));
+ return ROK;
}
/*******************************************************************
*
rrcLatest++;
rrcVer->iE_Extensions->list.array[rrcExt]->extensionValue.choice.\
Latest_RRC_Version_Enhanced.buf[rrcLatest] = 0;
- RETVALUE(ROK);
+ return ROK;
}
/*******************************************************************
*
{
SPrntMsg(mBuf, 0,0);
- if(sctpSend(mBuf) != ROK)
+ if(sctpSend(mBuf, F1_INTERFACE) != ROK)
{
DU_LOG("\nF1AP : SCTP Send failed");
SPutMsg(mBuf);
DU_LOG("\nF1AP : Failed to allocate memory");
RETVALUE(RFAILED);
}
-
- RETVALUE(ROK);
+ return ROK;
} /* SendF1APMsg */
U8 servId;
U8 sliceId;
U8 elementCnt;
- U8 plmnCnt;
- U8 servPlmnCnt;
- U8 extensionCnt;
+ U8 plmnCnt=1;
+ U8 servPlmnCnt=1;
+ U8 extensionCnt=1;
F1AP_PDU_t *f1apMsg = NULL;
F1SetupRequest_t *f1SetupReq;
GNB_DU_Served_Cells_List_t *duServedCell;
GNB_DU_Served_Cells_Item_t *srvCellItem;
RRC_Version_t *rrcVer;
asn_enc_rval_t encRetVal; /* Encoder return value */
-
DU_LOG("\nF1AP : Building F1 Setup Request\n");
DU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t));
f1SetupReq = &f1apMsg->choice.initiatingMessage->value.choice.F1SetupRequest;
- elementCnt = (duCfgParam.duName[0] != NULL) ? 5 : 4;
+ elementCnt = (duCfgParam.duName != NULL) ? 5 : 4;
f1SetupReq->protocolIEs.list.count = elementCnt;
f1SetupReq->protocolIEs.list.size = elementCnt * sizeof(F1SetupRequestIEs_t *);
duCfgParam.duId;
/*DU Name*/
- if(duCfgParam.duName[0] != NULL)
+ if(duCfgParam.duName != NULL)
{
idx++;
f1SetupReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_gNB_DU_Name ;
duServedCell = &f1SetupReq->protocolIEs.list.\
array[idx]->value.choice.GNB_DU_Served_Cells_List;
ret = BuildServedCellList(duServedCell);
-
+ srvCellItem = &duServedCell->list.array[idx]->value. \
+ choice.GNB_DU_Served_Cells_Item;
if(ret != ROK)
{
DU_FREE(f1SetupReq->protocolIEs.list.array[--idx]->value.\
encBuf);
/* Clean up */
#if 0
+ DU_FREE(srvCellItem->gNB_DU_System_Information->sIB1_message.buf,
+ srvCellItem->gNB_DU_System_Information->sIB1_message.size);
+ DU_FREE(srvCellItem->gNB_DU_System_Information->mIB_message.buf,
+ srvCellItem->gNB_DU_System_Information->mIB_message.size);
DU_FREE(srvCellItem->served_Cell_Information.\
measurementTimingConfiguration.buf,sizeof(U8));
DU_FREE(srvCellItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
plmnCnt*sizeof(GNB_DU_Served_Cells_ItemIEs_t *));
#endif
- if(duCfgParam.duName[0] != NULL)
+ if(duCfgParam.duName != NULL)
{
DU_FREE(f1SetupReq->protocolIEs.list.array[idx]->value.choice.\
GNB_DU_Name.buf, sizeof(duCfgParam.duName));
DU_LOG("\nF1AP : Sending F1 Setup request failed");
RETVALUE(RFAILED);
}
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildAndSendF1SetupReq */
-/*******************************************************************
- *
- * @brief Builds the PLMN Id
- *
- * @details
- *
- * Function : plmnBuild
- *
- * Functionality: Builds the PLMN Id
- *
- * @params[in] PlmnId plmn
- * @params[in] OCTET_STRING_t *octe
- *
- * @return ROK - success
- * RFAILED - failure
- *
- * ****************************************************************/
-void plmnBuild(PlmnId plmn, OCTET_STRING_t *octe)
-{
- U8 mncCnt;
- mncCnt = 2;
- octe->buf[0] = ((plmn.mcc[1] << 4) | (plmn.mcc[0]));
- if(mncCnt == 2)
- {
- octe->buf[1] = ((0xf0) | (plmn.mcc[2]));
- octe->buf[2] = ((plmn.mnc[1] << 4) | (plmn.mnc[0]));
- }
- else
- {
- octe->buf[1] = ((plmn.mnc[0] << 4) | (plmn.mcc[2]));
- octe->buf[2] = ((plmn.mnc[2] << 4) | (plmn.mnc[1]));
- }
-}
-
/*******************************************************************
*
* @brief Builds and sends the DUConfigUpdate
/*pLMN_Identity*/
modifyItem->oldNRCGI.pLMN_Identity.size = 3;
- DU_ALLOC(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
+ DU_ALLOC(modifyItem->oldNRCGI.pLMN_Identity.buf, 3*sizeof(uint8_t));
if(modifyItem->oldNRCGI.pLMN_Identity.buf == NULLP)
{
for(idy=0; idy<modifyCnt ;idy++)
RETVALUE(RFAILED);
}
}
- plmnBuild(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
+ buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
&modifyItem->oldNRCGI.pLMN_Identity);
/*nRCellIdentity*/
modifyItem->oldNRCGI.nRCellIdentity.size = 5;
DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
RETVALUE(RFAILED);
}
- plmnBuild(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
+ buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
&modifyItem->served_Cell_Information.nRCGI.pLMN_Identity);
modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.size = 5;
DU_ALLOC(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
RETVALUE(RFAILED);
}
- plmnBuild(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.plmn[0],\
+ buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.plmn[0],\
&modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->pLMN_Identity);
DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
array[0]->iE_Extensions,sizeof(struct ProtocolExtensionContainer_4624P3));
DU_LOG("\nF1AP : Sending GND-DU Config Update failed");
RETVALUE(RFAILED);
}
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildAndSendDUConfigUpdate */
/*******************************************************************
* ****************************************************************/
S16 BuildAndSendULRRCMessageTransfer()
{
- S16 ret;
U8 elementCnt;
U8 ieId;
U8 idx;
DU_LOG("\n F1AP : Sending UL RRC Message Transfer Failed");
RETVALUE(RFAILED);
}
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildAndSendULRRCMessageTransfer*/
/*******************************************************************
DU_FREE(initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.\
nRCellIdentity.buf,initULRRCMsg->protocolIEs.list.array[idx]->\
value.choice.NRCGI.nRCellIdentity.size);
- DU_FREE(initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.\
+ DU_FREE(initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.\
pLMN_Identity.buf,initULRRCMsg->protocolIEs.list.array[idx]->\
value.choice.NRCGI.pLMN_Identity.size);
for(idx=0; idx<elementCnt; idx++)
DU_LOG("\n F1AP : Sending Initial UL RRC Message Transfer Failed");
RETVALUE(RFAILED);
}
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildAndSendRRCSetupReq*/
/*******************************************************************
idx = 0;
spCellLst->list.array[idx]->id = ProtocolIE_ID_id_SCell_ToBeSetup_Item;
spCellLst->list.array[idx]->criticality = Criticality_ignore;
- spCellLst->list.array[idx]->value.present = \
+ spCellLst->list.array[idx]->value.present =\
SCell_ToBeSetup_ItemIEs__value_PR_SCell_ToBeSetup_Item;
/* Special Cell ID -NRCGI */
ret = BuildNrcgi(&spCellLst->list.array[idx]->value.choice.SCell_ToBeSetup_Item.sCell_ID);
}
/*Special Cell Index*/
spCellLst->list.array[idx]->value.choice.SCell_ToBeSetup_Item.sCellIndex = 1;
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildSplCellList*/
/*******************************************************************
srbSet->list.array[idx]->value.present = \
SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item;
srbSet->list.array[idx]->value.choice.SRBs_ToBeSetup_Item.sRBID = 2;
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildSRBSetup*/
/*******************************************************************
Pre_emptionVulnerability_not_pre_emptable;
/* TO DO: GBR_QoSFlowInformation */
- RETVALUE(ROK);
+ return ROK;
}/*End of BuildQOSInfo*/
/*******************************************************************
snssai->sD->buf[0] = 3;
snssai->sD->buf[1] = 6;
snssai->sD->buf[2] = 9;
-
- RETVALUE(ROK);
+ return ROK;
}/*End of BuildSNSSAI*/
/*******************************************************************
DU_FREE(flowMap->list.array,flowMap->list.size);
RETVALUE(RFAILED);
}
- RETVALUE(ROK);
+ return ROK;
}/*End of BuildFlowsMap*/
/*******************************************************************
* ****************************************************************/
S16 BuildULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo)
{
- S16 ret;
U8 idx;
U8 ulidx;
U8 ulCnt;
ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\
gTP_TEID.buf[3] = 1;
- RETVALUE(ROK);
+ return ROK;
}/*End of BuildULTnlInfo*/
/*******************************************************************
RETVALUE(RFAILED);
}
drbSetItem->uLConfiguration->uLUEConfiguration = ULUEConfiguration_no_data;
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildDRBSetup*/
/*******************************************************************
U8 ulCnt;
F1AP_PDU_t *f1apMsg = NULL;
UEContextSetupRequest_t *ueSetReq;
- SCell_ToBeSetup_List_t *spCellLst;
asn_enc_rval_t encRetVal; /* Encoder return value */
DU_LOG("\n F1AP : Building UE Context Setup Request\n");
BuildNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI);
if(ret != ROK)
{
- //idx =2
+ idx =2;
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\
nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\
choice.NRCGI.nRCellIdentity.size));
ret = BuildSplCellList(&ueSetReq->protocolIEs.\
list.array[idx]->value.choice.SCell_ToBeSetup_List);
if(ret != ROK)
- { //idx=6
+ { idx=6;
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.buf,\
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\
array[idx]->value.choice.SCell_ToBeSetup_List.list.size);
- //idx =2
+ idx =2;
idx=idx-4;
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\
nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\
ret = BuildSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.\
choice.SRBs_ToBeSetup_List);
if(ret != ROK)
- {//idx =7
+ {
+ idx =7;
for(srbId=0; srbId<srbCnt; srbId++)
{
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SRBs_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\
array[idx]->value.choice.SRBs_ToBeSetup_List.list.size);
- //idx=6
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ idx=6;
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.buf,\
- ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.size);
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.buf,\
- ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.size);
for(spId=0; spId<cellCnt; spId++)
{
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[spId],sizeof(struct
SCell_ToBeSetup_ItemIEs));
}
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\
- array[--idx]->value.choice.SCell_ToBeSetup_List.list.size);
- //idx=2
- idx=idx-4;
+ array[idx]->value.choice.SCell_ToBeSetup_List.list.size);
+ idx=2;
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\
nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\
choice.NRCGI.nRCellIdentity.size));
ret = BuildDRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.\
choice.DRBs_ToBeSetup_List);
if(ret != ROK)
- { //idx=8
+ { idx=8;
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
DRBs_ToBeSetup_List.list.array[0]->value.choice.\
DRBs_ToBeSetup_Item.uLConfiguration,\
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
DRBs_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\
array[idx]->value.choice.DRBs_ToBeSetup_List.list.size);
- //idx=7
+ idx=7;
for(srbId=0; srbId<srbCnt; srbId++)
{
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SRBs_ToBeSetup_List.list.array[srbId],\
sizeof(struct SRBs_ToBeSetup_ItemIEs));
}
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SRBs_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\
- array[--idx]->value.choice.SRBs_ToBeSetup_List.list.size);
- //idx=6
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ array[idx]->value.choice.SRBs_ToBeSetup_List.list.size);
+ idx=6;
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.buf,\
- ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.nRCellIdentity.size);
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.buf,\
- ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[0]->value.choice.\
SCell_ToBeSetup_Item.sCell_ID.pLMN_Identity.size);
for(spId=0; spId<cellCnt; spId++)
{
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array[spId],sizeof(struct
SCell_ToBeSetup_ItemIEs));
}
- DU_FREE(ueSetReq->protocolIEs.list.array[--idx]->value.choice.\
+ DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.\
SCell_ToBeSetup_List.list.array,ueSetReq->protocolIEs.list.\
- array[--idx]->value.choice.SCell_ToBeSetup_List.list.size);
- //idx =2
- idx = idx-4;
+ array[idx]->value.choice.SCell_ToBeSetup_List.list.size);
+ idx =2;
DU_FREE(ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI.\
nRCellIdentity.buf,sizeof(ueSetReq->protocolIEs.list.array[idx]->value.\
choice.NRCGI.nRCellIdentity.size));
DU_LOG("\n F1AP : Sending UE Context Setup Request Failed");
RETVALUE(RFAILED);
}
-
- RETVALUE(ROK);
+ return ROK;
}/* End of BuildAndSendUESetReq*/
/*******************************************************************
S16 procGNBDUCfgUpdAck(F1AP_PDU_t *f1apMsg)
{
- F1GnbDuCfgUpdAck duCfgUpdAckDb;
- GNBDUConfigurationUpdateAcknowledge_t *gnbDuCfgUpdAckMsg;
DU_LOG("\nF1AP : GNB-DU config update acknowledgment received");
- /* Store the received info in local database */
- gnbDuCfgUpdAckMsg = &f1apMsg->choice.successfulOutcome->value.choice.GNBDUConfigurationUpdateAcknowledge;
- duCfgUpdAckDb.transId = gnbDuCfgUpdAckMsg->protocolIEs.list.array[0]->value.choice.TransactionID;
/* TODO :Check the deallocation */
#if 0
(Size)sizeof(SuccessfulOutcome_t));
SPutSBuf(DU_APP_MEM_REGION,DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t));
#endif
-
- RETVALUE(ROK);
+ return ROK;
}
/**********************************************************************