- duCfgUpdate = &f1apDuCfg->choice.initiatingMessage->\
- value.choice.GNBDUConfigurationUpdate;
- if(duCfgUpdate->protocolIEs.list.array != 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.servedPLMNs.list.array\
- != NULLP)
- {
- if(!modifyItem->served_Cell_Information.servedPLMNs.list.array[idx])
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[idx]->pLMN_Identity.buf != NULLP)
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[idx]->iE_Extensions!= NULLP)
- {
- if(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[idx]->iE_Extensions->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[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)
- {
- if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
- fDD->uL_NRFreqInfo.freqBandListNr.list.array!=NULLP)
- {
- if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
- 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[idx]!= NULLP)
- {
- if(modifyItem->served_Cell_Information.\
- measurementTimingConfiguration.buf !=NULLP)
- {
- idx=2;
- if(duCfgUpdate->protocolIEs.list.array[idx]->value.\
- choice.GNB_DU_ID.buf!=NULLP)
- {
- DU_FREE(duCfgUpdate->protocolIEs.list.\
- 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.\
- measurementTimingConfiguration.size);
- }
- DU_FREE(modifyItem->served_Cell_Information.\
- nR_Mode_Info.choice.fDD->dL_NRFreqInfo.freqBandListNr.\
- list.array[idx],sizeof(FreqBandNrItem_t));
- }
- DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info\
- .choice.fDD->dL_NRFreqInfo.freqBandListNr.list.array,\
- modifyItem->served_Cell_Information.nR_Mode_Info.\
- choice.fDD->dL_NRFreqInfo.freqBandListNr.list.size);
- }
- DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.\
- choice.fDD->uL_NRFreqInfo.freqBandListNr.list.\
- 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[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);
- }
- }
- for(i=0;i<modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[idx]->iE_Extensions->list.count;i++)
- {
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- array[idx]->iE_Extensions->list.array[i],\
- sizeof(ServedPLMNs_ItemExtIEs_t ));
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- 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[idx]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
- }
- DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
- 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,\
- modifyItem->oldNRCGI.nRCellIdentity.size);
- }
- DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,\
- modifyItem->oldNRCGI.pLMN_Identity.size);
- }
- }
- for(i=0; i<cellsToModify->list.count ;i++)
- {
- 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<duCfgUpdate->protocolIEs.list.count;i++)
- {
- if(duCfgUpdate->protocolIEs.list.array[i] !=NULLP)
- {
- 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));
+ duCfgUpdate = &f1apDuCfg->choice.initiatingMessage->\
+ value.choice.GNBDUConfigurationUpdate;
+ if(duCfgUpdate->protocolIEs.list.array != NULLP)
+ {
+ for(ieIdx=0; ieIdx<duCfgUpdate->protocolIEs.list.count; ieIdx++)
+ {
+ if(duCfgUpdate->protocolIEs.list.array[ieIdx] != NULLP)
+ {
+ switch(duCfgUpdate->protocolIEs.list.array[ieIdx]->id)
+ {
+ case ProtocolIE_ID_id_Served_Cells_To_Modify_List:
+ {
+ cellsToModify = &duCfgUpdate->protocolIEs.list.array[ieIdx]->\
+ value.choice.Served_Cells_To_Modify_List;
+ if(cellsToModify->list.array != NULLP)
+ {
+ for(cellModifyIdx=0; cellModifyIdx<cellsToModify->list.count ;cellModifyIdx++)
+ {
+ if(cellsToModify->list.array[cellModifyIdx] != NULLP)
+ {
+ freeCellsToModifyItem(&cellsToModify->list.array[cellModifyIdx]->value.choice.\
+ Served_Cells_To_Modify_Item);
+ DU_FREE(cellsToModify->list.array[cellModifyIdx],\
+ sizeof(Served_Cells_To_Modify_ItemIEs_t));
+ }
+ }
+ DU_FREE(cellsToModify->list.array,cellsToModify->list.size);
+ }
+ break;
+ }
+ case ProtocolIE_ID_id_Served_Cells_To_Delete_List:
+ {
+ cellsToDelete = &duCfgUpdate->protocolIEs.list.array[ieIdx]->\
+ value.choice.Served_Cells_To_Delete_List;
+ if(cellsToDelete->list.array != NULLP)
+ {
+ for(cellDeleteIdx=0; cellDeleteIdx<cellsToDelete->list.count ;cellDeleteIdx++)
+ {
+ if(cellsToDelete->list.array[cellDeleteIdx] != NULLP)
+ {
+ deleteItemIe = ((Served_Cells_To_Delete_ItemIEs_t*)\
+ cellsToDelete->list.array[cellDeleteIdx]);
+ deleteItem=&deleteItemIe->value.choice.Served_Cells_To_Delete_Item;
+ DU_FREE(deleteItem->oldNRCGI.pLMN_Identity.buf,\
+ deleteItem->oldNRCGI.pLMN_Identity.size);
+ DU_FREE(deleteItem->oldNRCGI.nRCellIdentity.buf,\
+ deleteItem->oldNRCGI.nRCellIdentity.size);
+ DU_FREE(cellsToDelete->list.array[cellDeleteIdx],\
+ sizeof(Served_Cells_To_Delete_ItemIEs_t));
+ }
+ }
+ DU_FREE(cellsToDelete->list.array,cellsToDelete->list.size);
+ }
+
+ break;
+ }
+ case ProtocolIE_ID_id_gNB_DU_ID:
+ {
+ DU_FREE(duCfgUpdate->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_ID.buf,\
+ duCfgUpdate->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_ID.size);
+ break;
+ }
+ }
+ DU_FREE(duCfgUpdate->protocolIEs.list.array[ieIdx],\
+ sizeof(GNBDUConfigurationUpdateIEs_t));
+ }
+ }
+ DU_FREE(duCfgUpdate->protocolIEs.list.array,duCfgUpdate->protocolIEs.list.size);
+ }
+ DU_FREE(f1apDuCfg->choice.initiatingMessage,sizeof(InitiatingMessage_t));