cleanup of BuildAndSendDUConfigUpdate in F1AP 34/3734/4
authorBalaji Shankaran <balaji.shankaran@radisys.com>
Mon, 18 May 2020 18:33:17 +0000 (00:03 +0530)
committerBalaji Shankaran <balaji.shankaran@radisys.com>
Fri, 22 May 2020 10:48:40 +0000 (16:18 +0530)
Change-Id: I45051bc0137f1f111f3e07ae8504117ec1cf2c98
Signed-off-by: Balaji Shankaran <balaji.shankaran@radisys.com>
src/du_app/du_f1ap_msg_hdl.c

index 878a6dd..9401d47 100644 (file)
@@ -1121,1415 +1121,685 @@ S16 BuildAndSendF1SetupReq()
  * ****************************************************************/
 S16 BuildAndSendDUConfigUpdate()
 {
-   U8    idx,idy;
-   U8    elementCnt,modifyCnt,servPlmnCnt,extensionCnt;
+   U8 idx;
+       U8 idy;
+       U8 idx1;
+       U8 idy1;
+       U8 idy2;
+   U8 elementCnt;
+       U8 modifyCnt;
+       U8 servPlmnCnt;
+       U8 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;
-   DU_LOG("\nF1AP : Building DU config update\n");   
-
-   /* Allocate the memory for F1DuCfg */
-   DU_ALLOC(f1apDuCfg, (Size)sizeof(F1AP_PDU_t));
-   if(f1apDuCfg == NULLP)
-   {
-          DU_LOG("\nF1AP : Memory allocation for F1AP-PDU failed");
-          return RFAILED;
-   }
-   f1apDuCfg->present = F1AP_PDU_PR_initiatingMessage;
-   DU_ALLOC(f1apDuCfg->choice.initiatingMessage, sizeof(InitiatingMessage_t));
-   if(f1apDuCfg->choice.initiatingMessage == NULLP)
-   {
-      DU_LOG("\nF1AP : Memory allocation for F1AP-PDU failed");  
-      DU_FREE(f1apDuCfg, (Size)sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   
-   f1apDuCfg->choice.initiatingMessage->procedureCode = \
-                                    ProcedureCode_id_gNBDUConfigurationUpdate;
-   f1apDuCfg->choice.initiatingMessage->criticality = Criticality_reject;
-   f1apDuCfg->choice.initiatingMessage->value.present = \
-                         InitiatingMessage__value_PR_GNBDUConfigurationUpdate;
-   duCfgUpdate = &f1apDuCfg->choice.initiatingMessage->value.\
-                 choice.GNBDUConfigurationUpdate;
-
-   elementCnt = 3;
-   duCfgUpdate->protocolIEs.list.count = elementCnt;
-   duCfgUpdate->protocolIEs.list.size = \
-                         elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *);
-
-   /* Initialize the F1Setup members */
-   DU_ALLOC(duCfgUpdate->protocolIEs.list.array,\
-         elementCnt*sizeof(GNBDUConfigurationUpdateIEs_t *));
-   if(duCfgUpdate->protocolIEs.list.array == NULLP)
-   {
-      DU_LOG("F1AP : Memory allocation for F1RequestIEs failed");
-      DU_FREE(f1apDuCfg->choice.initiatingMessage, sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-
-   for(idx=0;idx<elementCnt;idx++)
-   {
-      DU_ALLOC(duCfgUpdate->protocolIEs.list.array[idx], \
-            sizeof(GNBDUConfigurationUpdateIEs_t));
-      if(duCfgUpdate->protocolIEs.list.array[idx] == NULLP)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-               elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-         DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-               (Size)sizeof(InitiatingMessage_t));
-         DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-         return RFAILED;
-      }
-   }
-
-   /*TransactionID*/
-   idx = 0;
-   duCfgUpdate->protocolIEs.list.array[idx]->id = \
-                                                ProtocolIE_ID_id_TransactionID;
-   duCfgUpdate->protocolIEs.list.array[idx]->criticality = Criticality_reject;
-   duCfgUpdate->protocolIEs.list.array[idx]->value.present = \
-                           GNBDUConfigurationUpdateIEs__value_PR_TransactionID;
-   duCfgUpdate->protocolIEs.list.array[idx]->value.choice.TransactionID = \
-                                                                      TRANS_ID;
-#if 1 
-   /*Served Cell to Modify */
-   idx++;
-   duCfgUpdate->protocolIEs.list.array[idx]->id = \
-                                  ProtocolIE_ID_id_Served_Cells_To_Modify_List;
-   duCfgUpdate->protocolIEs.list.array[idx]->criticality = Criticality_reject;
-   duCfgUpdate->protocolIEs.list.array[idx]->value.present = \
-              GNBDUConfigurationUpdateIEs__value_PR_Served_Cells_To_Modify_List;
-   cellsToModify = &duCfgUpdate->protocolIEs.list.array[1]->value.choice.\
-                   Served_Cells_To_Modify_List;
-   modifyCnt = 1;
-   cellsToModify->list.count = modifyCnt;
-   cellsToModify->list.size = \
-                      modifyCnt*sizeof(Served_Cells_To_Modify_ItemIEs_t *);
-   DU_ALLOC(cellsToModify->list.array,modifyCnt*\
-         sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-   if(cellsToModify->list.array == NULLP)
-   {
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-         DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-               elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-         DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-               (Size)sizeof(InitiatingMessage_t));
-         DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-         return RFAILED;
-      
-   }
-   for(idy=0; idy<modifyCnt ;idy++)
-   {
-      DU_ALLOC(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      if(cellsToModify->list.array[idy] == NULLP)
-      {
-         DU_FREE(cellsToModify->list.array,modifyCnt*\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-         for(idy=0;idy<elementCnt;idy++)
-         {
-            DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-                  sizeof(GNBDUConfigurationUpdateIEs_t));
-         }
-         DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-               elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-         DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-               (Size)sizeof(InitiatingMessage_t));
-         DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-         return RFAILED;
-      }
-   }
-   cellsToModify->list.array[0]->id = \
-                                  ProtocolIE_ID_id_Served_Cells_To_Modify_Item;
-   cellsToModify->list.array[0]->criticality = Criticality_reject;
-   cellsToModify->list.array[0]->value.present = \
-           Served_Cells_To_Modify_ItemIEs__value_PR_Served_Cells_To_Modify_Item;
-   modifyItem=&cellsToModify->list.array[0]->value.choice.\
-              Served_Cells_To_Modify_Item;
-
-   /*pLMN_Identity*/
-   modifyItem->oldNRCGI.pLMN_Identity.size = 3;
-   DU_ALLOC(modifyItem->oldNRCGI.pLMN_Identity.buf, 3*sizeof(uint8_t));
-   if(modifyItem->oldNRCGI.pLMN_Identity.buf == NULLP)
-   {
-      for(idy=0; idy<modifyCnt ;idy++)
-      {
-         DU_FREE(cellsToModify->list.array[idy],\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t));
-         DU_FREE(cellsToModify->list.array,modifyCnt*\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-         for(idy=0;idy<elementCnt;idy++)
-         {
-            DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-                  sizeof(GNBDUConfigurationUpdateIEs_t));
-         }
-         DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-               elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-         DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-               (Size)sizeof(InitiatingMessage_t));
-         DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-         return RFAILED;
-      }
-   }
-   buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
-         &modifyItem->oldNRCGI.pLMN_Identity);
-   /*nRCellIdentity*/
-   modifyItem->oldNRCGI.nRCellIdentity.size = 5;
-   DU_ALLOC(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-         modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-   if(modifyItem->oldNRCGI.nRCellIdentity.buf == NULLP)
-   {
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   for (int tmp = 0 ; tmp < modifyItem->oldNRCGI.nRCellIdentity.size-1 ; tmp++)
-   {
-      modifyItem->oldNRCGI.nRCellIdentity.buf[tmp] = 0;
-   }
-   modifyItem->oldNRCGI.nRCellIdentity.buf[4] = 16;
-   modifyItem->oldNRCGI.nRCellIdentity.bits_unused = 4;
-   /*pLMN_Identity*/
-   /*nRCGI*/
-   modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.size = 3;
-   DU_ALLOC(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-         3*sizeof(U8));
-   if(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf == NULLP)
-   {
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   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,\
-         5*sizeof(uint8_t));
-   if(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   for (int tmp = 0 ; tmp < modifyItem->served_Cell_Information.\
-         nRCGI.nRCellIdentity.size-1 ; tmp++)
-   {
-      modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf[tmp] = 0;
-   }
-   modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf[4] = 16; 
-   modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.bits_unused = 4;
-
-   /*nRPCI*/
-   modifyItem->served_Cell_Information.nRPCI = \
-                           duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrPci;
-
-   /*servedPLMNs*/
-   servPlmnCnt = 1;
-   modifyItem->served_Cell_Information.servedPLMNs.list.count = servPlmnCnt;
-   modifyItem->served_Cell_Information.servedPLMNs.list.size = \
-                                servPlmnCnt*sizeof(ServedPLMNs_Item_t *);
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-         servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.array == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   for(idy=0;idy<servPlmnCnt;idy++)
-   {
-      DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy] == NULLP)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-         DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-               5*sizeof(uint8_t));
-         DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-               3*sizeof(U8));
-         DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-               modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-         DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-         DU_FREE(cellsToModify->list.array[idy],\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t));
-         DU_FREE(cellsToModify->list.array,modifyCnt*\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-         for(idy=0;idy<elementCnt;idy++)
-         {
-            DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-                  sizeof(GNBDUConfigurationUpdateIEs_t));
-         }
-         DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-               elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-         DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-               (Size)sizeof(InitiatingMessage_t));
-         DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-         return RFAILED;
-      }
-   }
-   modifyItem->served_Cell_Information.servedPLMNs.list.\
-      array[0]->pLMN_Identity.size = 3;
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
-         array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.\
-         array[0]->pLMN_Identity.buf == NULLP)
-   {
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   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(ProtocolExtensionContainer_4624P3_t));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.\
-         array[0]->iE_Extensions == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   extensionCnt=1;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.count = extensionCnt;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.size = extensionCnt * \
-      sizeof(ServedPLMNs_ItemExtIEs_t *);
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
-         array[0]->iE_Extensions->list.array,extensionCnt*\
-         sizeof(ServedPLMNs_ItemExtIEs_t *));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.\
-         array[0]->iE_Extensions->list.array == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   for(idy=0;idy<extensionCnt;idy++)
-   {
-      DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array[idy],\
-            sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      if(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array[idy] == NULLP)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array,extensionCnt*\
-               sizeof(ServedPLMNs_ItemExtIEs_t *));
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-         for(idy=0;idy<servPlmnCnt;idy++)
-         {
-            DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-                  servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-         }
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-         DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-               5*sizeof(uint8_t));
-         DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-               3*sizeof(U8));
-         DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-               modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-         DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-         DU_FREE(cellsToModify->list.array[idy],\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t));
-         DU_FREE(cellsToModify->list.array,modifyCnt*\
-               sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-         for(idy=0;idy<elementCnt;idy++)
-         {
-            DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-                  sizeof(GNBDUConfigurationUpdateIEs_t));
-         }
-         DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-               elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-         DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-               (Size)sizeof(InitiatingMessage_t));
-         DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-         return RFAILED;
-      }
-   }
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->id = ProtocolIE_ID_id_TAISliceSupportList;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->criticality = Criticality_ignore;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.present = \
-      ServedPLMNs_ItemExtIEs__extensionValue_PR_SliceSupportList;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.count = 1;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.size = sizeof(SliceSupportItem_t *);
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array,sizeof( SliceSupportItem_t *));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array == NULLP)
-   {
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0],sizeof( SliceSupportItem_t));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0] == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-            iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-            list.array,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.array[0]->sNSSAI.sST.size = sizeof(uint8_t);
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0]->sNSSAI.sST.buf,sizeof(uint8_t));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0]->sNSSAI.sST.buf == NULLP)
-   {
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue. choice.SliceSupportList.\
-      list.array[0]->sNSSAI.sST.buf[0] = 3;
-   DU_ALLOC(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));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0]->sNSSAI.sD == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-            iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-            list.array[0]->sNSSAI.sST.buf,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.array[0]->sNSSAI.sD->size = 3*sizeof(uint8_t);
-   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0]->sNSSAI.sD->buf,3*sizeof(uint8_t));
-   if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-         iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-         list.array[0]->sNSSAI.sD->buf == NULLP)
-   {
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.array[0]->sNSSAI.sD->buf[0] = 3;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.array[0]->sNSSAI.sD->buf[1] = 6;
-   modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-      iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-      list.array[0]->sNSSAI.sD->buf[2] = 9;
+   bool checkvar=false;
+   U8 i;
 
-   /*nR Mode Info with FDD*/
-   modifyItem->served_Cell_Information.nR_Mode_Info.present = \
-                                                         NR_Mode_Info_PR_fDD;
-   DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD,\
-         sizeof(FDD_Info_t));
-   if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
-            iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
-            list.array[0]->sNSSAI.sD->buf,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      uL_NRFreqInfo.nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.\
-      f1Mode.mode.fdd.ulNrFreqInfo.nrArfcn;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      uL_NRFreqInfo.freqBandListNr.list.count = 1;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      uL_NRFreqInfo.freqBandListNr.list.size = \
-      sizeof(FreqBandNrItem_t *);
-   DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-         fDD->uL_NRFreqInfo.freqBandListNr.list.\
-         array,sizeof(FreqBandNrItem_t *));
-   if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-         fDD->uL_NRFreqInfo.freqBandListNr.list.array == NULLP)
-   {
-      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,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,\
-            sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-         uL_NRFreqInfo.freqBandListNr.list.\
-         array[0],sizeof(FreqBandNrItem_t));
-   if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-         uL_NRFreqInfo.freqBandListNr.list.\
-         array[0] == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-            fDD->uL_NRFreqInfo.freqBandListNr.list.\
-            array,sizeof(FreqBandNrItem_t *));
-      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,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,\
-            sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\
-      freqBandListNr.list.array[0]->freqBandIndicatorNr = \
-      duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.ulNrFreqInfo.\
-      freqBand[0].nrFreqBand;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\
-      freqBandListNr.list.array[0]->supportedSULBandList.list.count=0;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
-      nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.\
-      dlNrFreqInfo.nrArfcn;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
-      freqBandListNr.list.count = 1;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
-      freqBandListNr.list.size = sizeof(FreqBandNrItem_t *);
-   DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-         dL_NRFreqInfo.freqBandListNr.list.array,\
-         sizeof(FreqBandNrItem_t *));
-   if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+       while(1)
+       {
+           DU_LOG("\nF1AP : Building DU config update\n");
+                /* Allocate the memory for F1DuCfg */
+           DU_ALLOC(f1apDuCfg, sizeof(F1AP_PDU_t));
+                if(f1apDuCfg == NULLP)
+                {
+                  DU_LOG("\nF1AP : Memory allocation for F1AP-PDU failed");
+                  break;
+                }
+               
+                f1apDuCfg->present = F1AP_PDU_PR_initiatingMessage;
+       DU_ALLOC(f1apDuCfg->choice.initiatingMessage,sizeof(InitiatingMessage_t));
+       if(f1apDuCfg->choice.initiatingMessage == NULLP)
+                {
+                   DU_LOG("\nF1AP : Memory allocation for F1AP-PDU failed");
+                        break;
+                }
+               
+                f1apDuCfg->choice.initiatingMessage->procedureCode = \
+                                ProcedureCode_id_gNBDUConfigurationUpdate;
+                f1apDuCfg->choice.initiatingMessage->criticality = Criticality_reject;
+                f1apDuCfg->choice.initiatingMessage->value.present = \
+                                 InitiatingMessage__value_PR_GNBDUConfigurationUpdate;
+           duCfgUpdate = &f1apDuCfg->choice.initiatingMessage->value.\
+                                   choice.GNBDUConfigurationUpdate;
+                elementCnt = 3;
+                duCfgUpdate->protocolIEs.list.count = elementCnt;
+                duCfgUpdate->protocolIEs.list.size = \
+                                elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t*);
+     
+          /* Initialize the F1Setup members */
+                DU_ALLOC(duCfgUpdate->protocolIEs.list.array,duCfgUpdate->protocolIEs.list.size);
+                if(duCfgUpdate->protocolIEs.list.array == NULLP)
+                {
+                  DU_LOG("F1AP : Memory allocation for F1RequestIEs failed");
+                       break;
+                }
+                for(idx=0;idx<elementCnt;idx++)
+                {
+                   DU_ALLOC(duCfgUpdate->protocolIEs.list.array[idx],sizeof(GNBDUConfigurationUpdateIEs_t));
+                         if(duCfgUpdate->protocolIEs.list.array[idx] == NULLP)
+                         {
+                                 break;
+                         }
+                }
+               
+                /*TransactionID*/
+                idx1 = 0;
+                duCfgUpdate->protocolIEs.list.array[idx1]->id=ProtocolIE_ID_id_TransactionID;
+                duCfgUpdate->protocolIEs.list.array[idx1]->criticality= Criticality_reject;
+                duCfgUpdate->protocolIEs.list.array[idx1]->value.present = \
+                                            GNBDUConfigurationUpdateIEs__value_PR_TransactionID;
+                duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.TransactionID = \
+                       TRANS_ID;
+
+       /*Served Cell to Modify */
+                idx1++;
+       duCfgUpdate->protocolIEs.list.array[idx1]->id = \
+                                           ProtocolIE_ID_id_Served_Cells_To_Modify_List;
+       duCfgUpdate->protocolIEs.list.array[idx1]->criticality =Criticality_reject;
+       duCfgUpdate->protocolIEs.list.array[idx1]->value.present = \
+                                                 GNBDUConfigurationUpdateIEs__value_PR_Served_Cells_To_Modify_List;
+           cellsToModify = &duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.\
+                            Served_Cells_To_Modify_List;
+       modifyCnt = 1;
+                cellsToModify->list.count = modifyCnt;
+                cellsToModify->list.size = \
+                                modifyCnt*sizeof(Served_Cells_To_Modify_ItemIEs_t *);
+                DU_ALLOC(cellsToModify->list.array,cellsToModify->list.size);
+                if(cellsToModify->list.array == NULLP)
+                {
+              break;
+                }
+                for(idy=0; idy<modifyCnt ;idy++)
+                {
+                   DU_ALLOC(cellsToModify->list.array[idy],sizeof(\
+                        Served_Cells_To_Modify_ItemIEs_t));
+                        if(cellsToModify->list.array[idy] == NULLP)
+                        {
+                                break;
+                        }
+                }
+           cellsToModify->list.array[0]->id = \
+                                  ProtocolIE_ID_id_Served_Cells_To_Modify_Item;
+                cellsToModify->list.array[0]->criticality = Criticality_reject;
+           cellsToModify->list.array[0]->value.present =\
+                      Served_Cells_To_Modify_ItemIEs__value_PR_Served_Cells_To_Modify_Item;
+           modifyItem=&cellsToModify->list.array[0]->value.choice.\
+                  Served_Cells_To_Modify_Item;
+
+       /*pLMN_Identity*/
+                modifyItem->oldNRCGI.pLMN_Identity.size = 3*sizeof(uint8_t);
+                DU_ALLOC(modifyItem->oldNRCGI.pLMN_Identity.buf,modifyItem->oldNRCGI.pLMN_Identity.size);
+                if(modifyItem->oldNRCGI.pLMN_Identity.buf == NULLP)
+                { 
+                   break;
+                }
+       buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
+                             &modifyItem->oldNRCGI.pLMN_Identity);
+        
+           /*nRCellIdentity*/
+                modifyItem->oldNRCGI.nRCellIdentity.size = 5*sizeof(uint8_t);
+                DU_ALLOC(modifyItem->oldNRCGI.nRCellIdentity.buf,\
+                    modifyItem->oldNRCGI.nRCellIdentity.size);
+                if(modifyItem->oldNRCGI.nRCellIdentity.buf == NULLP)
+                {
+          break;
+                }
+       for (int tmp = 0;tmp < modifyItem->oldNRCGI.nRCellIdentity.size-1;tmp++)
+                {
+           modifyItem->oldNRCGI.nRCellIdentity.buf[tmp] = 0;
+                }
+                modifyItem->oldNRCGI.nRCellIdentity.buf[4] = 16;
+                modifyItem->oldNRCGI.nRCellIdentity.bits_unused = 4;
+                /*pLMN_Identity*/
+                /*nRCGI*/
+                modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.size =3*sizeof(uint8_t);
+       DU_ALLOC(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
+                    modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.size);
+                if(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf == NULLP)
+       {
+                        break;
+                }
+       buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
+                    &modifyItem->served_Cell_Information.nRCGI.pLMN_Identity);
+                modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.size =5*sizeof(uint8_t);
+                DU_ALLOC(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
+                   modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.size);
+                if(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf == NULLP)
+                {
+                       break;
+                } 
+       for (int tmp = 0 ; tmp < modifyItem->served_Cell_Information.\
+                    nRCGI.nRCellIdentity.size-1 ; tmp++)
+           {
+                   modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf[tmp] = 0;
+                }
+           modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf[4] = 16;
+       modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.bits_unused =4;
+       /*nRPCI*/
+           modifyItem->served_Cell_Information.nRPCI = \
+                              duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrPci;
+       /*servedPLMNs*/
+           servPlmnCnt = 1;
+           modifyItem->served_Cell_Information.servedPLMNs.list.count = servPlmnCnt;
+       modifyItem->served_Cell_Information.servedPLMNs.list.size = \
+                     servPlmnCnt*sizeof(ServedPLMNs_Item_t *);
+                DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
+                      modifyItem->served_Cell_Information.servedPLMNs.list.size);
+           if(modifyItem->served_Cell_Information.servedPLMNs.list.array == NULLP)
+                {
+                       break;
+                }
+       for(idy1=0;idy1<servPlmnCnt;idy1++)
+                {
+                    DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy1],\
+                          sizeof(ServedPLMNs_Item_t));
+                               if(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy1]== NULLP)
+                               {
+                                        break;
+                               }
+                }
+                modifyItem->served_Cell_Information.servedPLMNs.list.\
+                    array[0]->pLMN_Identity.size = 3*sizeof(uint8_t);
+                DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                          array[0]->pLMN_Identity.buf,modifyItem->served_Cell_Information.servedPLMNs.list.\
+                                         array[0]->pLMN_Identity.size);
+                if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                        array[0]->pLMN_Identity.buf == NULLP)
+                {
+                        break;
+                }
+       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(ProtocolExtensionContainer_4624P3_t));
+                if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                      array[0]->iE_Extensions == NULLP)
+                {
+                        break;
+                }
+       extensionCnt=1;
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                      iE_Extensions->list.count = extensionCnt;
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                    iE_Extensions->list.size = extensionCnt *sizeof(ServedPLMNs_ItemExtIEs_t *);
+                DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                     array[0]->iE_Extensions->list.array,modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                                iE_Extensions->list.size);
+                if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                       array[0]->iE_Extensions->list.array == NULLP)
+                {
+                  break;
+                }
+       for(idy2=0;idy2<extensionCnt;idy2++)
+                {
+                   DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                          array[0]->iE_Extensions->list.array[idy2],\
+                               sizeof(ServedPLMNs_ItemExtIEs_t));
+                        if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                                  array[0]->iE_Extensions->list.array[idy2] == NULLP)
+                        {
+                                 break;
+                        }
+                }
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->id =ProtocolIE_ID_id_TAISliceSupportList;
+       modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+             iE_Extensions->list.array[0]->criticality = Criticality_ignore;
+           modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+          iE_Extensions->list.array[0]->extensionValue.present = \
+                        ServedPLMNs_ItemExtIEs__extensionValue_PR_SliceSupportList;
+           modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.count = 1;
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                        list.size = sizeof(SliceSupportItem_t *);
+                DU_ALLOC(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);
+           if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                         list.array == NULLP)
+                {
+                       break;
+                }
+
+                DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.array[0],sizeof( SliceSupportItem_t));
+                if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                         list.array[0] == NULLP)
+                {
+                  break;
+                }
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.array[0]->sNSSAI.sST.size = sizeof(uint8_t);
+                DU_ALLOC(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);
+           if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.array[0]->sNSSAI.sST.buf == NULLP)
+                {
+                        break;
+                }
+       modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                        list.array[0]->sNSSAI.sST.buf[0] = 3;
+           DU_ALLOC(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));
+                if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.array[0]->sNSSAI.sD == NULLP)
+           {
+                        break;
+                }
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.array[0]->sNSSAI.sD->size = 3*sizeof(uint8_t);
+       DU_ALLOC(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);
+       if(modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                  iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                       list.array[0]->sNSSAI.sD->buf == NULLP)
+                {
+                        break;
+                }
+       modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                 iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                 list.array[0]->sNSSAI.sD->buf[0] = 3;
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                        list.array[0]->sNSSAI.sD->buf[1] = 6;
+                modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->\
+                   iE_Extensions->list.array[0]->extensionValue.choice.SliceSupportList.\
+                        list.array[0]->sNSSAI.sD->buf[2] = 9;
+               
+                /*nR Mode Info with FDD*/
+       modifyItem->served_Cell_Information.nR_Mode_Info.present = \
+                                            NR_Mode_Info_PR_fDD;
+                DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD,\
+                                   sizeof(FDD_Info_t));
+                if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD == NULLP)
+                {
+                        break;
+                }
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+                    uL_NRFreqInfo.nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.\
+                          f1Mode.mode.fdd.ulNrFreqInfo.nrArfcn;
+                modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+                    uL_NRFreqInfo.freqBandListNr.list.count = 1;
+                modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+                    uL_NRFreqInfo.freqBandListNr.list.size = sizeof(FreqBandNrItem_t*);
+                DU_ALLOC(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);
+       if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
+                           fDD->uL_NRFreqInfo.freqBandListNr.list.array == NULLP)
+                {
+                        break;
+                }
+                DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+                      uL_NRFreqInfo.freqBandListNr.list.array[0],sizeof(FreqBandNrItem_t));
+                if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->
+                     uL_NRFreqInfo.freqBandListNr.list.array[0] == NULLP)
+                {
+          break;
+                }
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\
+         freqBandListNr.list.array[0]->freqBandIndicatorNr = \
+         duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.ulNrFreqInfo.\
+         freqBand[0].nrFreqBand;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->uL_NRFreqInfo.\
+          freqBandListNr.list.array[0]->supportedSULBandList.list.count=0;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
+          nRARFCN = duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.\
+          dlNrFreqInfo.nrArfcn;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
+          freqBandListNr.list.count = 1;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
+          freqBandListNr.list.size = sizeof(FreqBandNrItem_t *);
+       DU_ALLOC(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);
+       if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
          dL_NRFreqInfo.freqBandListNr.list.array == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            uL_NRFreqInfo.freqBandListNr.list.\
-            array[0],sizeof(FreqBandNrItem_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-            fDD->uL_NRFreqInfo.freqBandListNr.list.\
-            array,sizeof(FreqBandNrItem_t *));
-      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,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,\
-            sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+       {
+                       break;
+       }
+           DU_ALLOC(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
          dL_NRFreqInfo.freqBandListNr.list.array[0],\
          sizeof(FreqBandNrItem_t));
-   if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+       if(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
          dL_NRFreqInfo.freqBandListNr.list.array[0] == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            dL_NRFreqInfo.freqBandListNr.list.array,\
-            sizeof(FreqBandNrItem_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            uL_NRFreqInfo.freqBandListNr.list.\
-            array[0],sizeof(FreqBandNrItem_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-            fDD->uL_NRFreqInfo.freqBandListNr.list.\
-            array,sizeof(FreqBandNrItem_t *));
-      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,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,\
-            sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
-      freqBandListNr.list.array[0]->freqBandIndicatorNr = \
-      duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.dlNrFreqInfo.\
-      freqBand[0].nrFreqBand;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
-      freqBandListNr.list.array[0]->supportedSULBandList.list.count=0;
-
-   /*Transmission Bandwidth*/
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      uL_Transmission_Bandwidth.nRSCS = duCfgParam.srvdCellLst[0].duCellInfo.\
-      f1Mode.mode.fdd.ulTxBw.nrScs;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      uL_Transmission_Bandwidth.nRNRB = duCfgParam.srvdCellLst[0].duCellInfo.\
-      f1Mode.mode.fdd.ulTxBw.nrb;
-
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      dL_Transmission_Bandwidth.nRSCS = duCfgParam.srvdCellLst[0].duCellInfo.\
-      f1Mode.mode.fdd.dlTxBw.nrScs;
-   modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-      dL_Transmission_Bandwidth.nRNRB = duCfgParam.srvdCellLst[0].duCellInfo.\
-      f1Mode.mode.fdd.dlTxBw.nrb;
-   
-   /*Measurement timing Config*/
-   modifyItem->served_Cell_Information.measurementTimingConfiguration.size = \
+       {
+                    break;
+       }
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
+        freqBandListNr.list.array[0]->freqBandIndicatorNr = \
+        duCfgParam.srvdCellLst[0].duCellInfo.f1Mode.mode.fdd.dlNrFreqInfo.\
+        freqBand[0].nrFreqBand;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->dL_NRFreqInfo.\
+        freqBandListNr.list.array[0]->supportedSULBandList.list.count=0;
+
+       /*Transmission Bandwidth*/
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+        uL_Transmission_Bandwidth.nRSCS = duCfgParam.srvdCellLst[0].duCellInfo.\
+        f1Mode.mode.fdd.ulTxBw.nrScs;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+        uL_Transmission_Bandwidth.nRNRB = duCfgParam.srvdCellLst[0].duCellInfo.\
+        f1Mode.mode.fdd.ulTxBw.nrb;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+        dL_Transmission_Bandwidth.nRSCS = duCfgParam.srvdCellLst[0].duCellInfo.\
+        f1Mode.mode.fdd.dlTxBw.nrScs;
+       modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
+        dL_Transmission_Bandwidth.nRNRB = duCfgParam.srvdCellLst[0].duCellInfo.\
+        f1Mode.mode.fdd.dlTxBw.nrb;
+       /*Measurement timing Config*/
+       modifyItem->served_Cell_Information.measurementTimingConfiguration.size = \
                                                               sizeof(uint8_t);
-   DU_ALLOC(modifyItem->served_Cell_Information.measurementTimingConfiguration.\
-         buf,sizeof(uint8_t));
-   if(modifyItem->served_Cell_Information.measurementTimingConfiguration.buf == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            dL_NRFreqInfo.freqBandListNr.list.array[0],\
-            sizeof(FreqBandNrItem_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            dL_NRFreqInfo.freqBandListNr.list.array,\
-            sizeof(FreqBandNrItem_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            uL_NRFreqInfo.freqBandListNr.list.\
-            array[0],sizeof(FreqBandNrItem_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-            fDD->uL_NRFreqInfo.freqBandListNr.list.\
-            array,sizeof(FreqBandNrItem_t *));
-      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,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,\
-            sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   modifyItem->served_Cell_Information.measurementTimingConfiguration.\
-      buf[0] = duCfgParam.srvdCellLst[0].duCellInfo.measTimeCfg;
-
+       DU_ALLOC(modifyItem->served_Cell_Information.measurementTimingConfiguration.\
+         buf,modifyItem->served_Cell_Information.measurementTimingConfiguration.size);
+       if(modifyItem->served_Cell_Information.measurementTimingConfiguration.buf == NULLP)
+       {
+                       break;
+       }
+       modifyItem->served_Cell_Information.measurementTimingConfiguration.\
+          buf[0] = duCfgParam.srvdCellLst[0].duCellInfo.measTimeCfg;
    
-   // NOTE :GNB DU SYS INFO:MIB AND SIB1 INFORMATION TO BE BUILT AND FILLED HERE
-   /*GNB DU ID */
-   duCfgUpdate->protocolIEs.list.array[2]->id = ProtocolIE_ID_id_gNB_DU_ID;
-   duCfgUpdate->protocolIEs.list.array[2]->criticality = Criticality_reject;
-   duCfgUpdate->protocolIEs.list.array[2]->value.present = \
+       // NOTE :GNB DU SYS INFO:MIB AND SIB1 INFORMATION TO BE BUILT AND FILLED HERE
+       /*GNB DU ID */
+       idx1++;
+       duCfgUpdate->protocolIEs.list.array[idx1]->id = ProtocolIE_ID_id_gNB_DU_ID;
+       duCfgUpdate->protocolIEs.list.array[idx1]->criticality = Criticality_reject;
+       duCfgUpdate->protocolIEs.list.array[idx1]->value.present = \
                              GNBDUConfigurationUpdateIEs__value_PR_GNB_DU_ID;
-   duCfgUpdate->protocolIEs.list.array[2]->value.choice.GNB_DU_ID.size = \
+       duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.size = \
                                                              sizeof(uint8_t);
-   DU_ALLOC(duCfgUpdate->protocolIEs.list.array[2]->value.choice.GNB_DU_ID.buf,\
-         sizeof(uint8_t));
-   if(duCfgUpdate->protocolIEs.list.array[2]->value.choice.GNB_DU_ID.buf == NULLP)
-   {
-      DU_FREE(modifyItem->served_Cell_Information.measurementTimingConfiguration.\
-            buf,sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            dL_NRFreqInfo.freqBandListNr.list.array[0],\
-            sizeof(FreqBandNrItem_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            dL_NRFreqInfo.freqBandListNr.list.array,\
-            sizeof(FreqBandNrItem_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.fDD->\
-            uL_NRFreqInfo.freqBandListNr.list.\
-            array[0],sizeof(FreqBandNrItem_t));
-      DU_FREE(modifyItem->served_Cell_Information.nR_Mode_Info.choice.\
-            fDD->uL_NRFreqInfo.freqBandListNr.list.\
-            array,sizeof(FreqBandNrItem_t *));
-      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,3*sizeof(uint8_t));
-      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,sizeof(uint8_t));
-      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,sizeof( SliceSupportItem_t *));
-      for(idy=0;idy<extensionCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-               array[0]->iE_Extensions->list.array[idy],\
-               sizeof(ServedPLMNs_ItemExtIEs_t)); 
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions->list.array,extensionCnt*\
-            sizeof(ServedPLMNs_ItemExtIEs_t *));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->iE_Extensions,\
-            sizeof(ProtocolExtensionContainer_4624P3_t));
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
-            array[0]->pLMN_Identity.buf,3*sizeof(uint8_t));
-      for(idy=0;idy<servPlmnCnt;idy++)
-      {
-         DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array[idy],\
-               servPlmnCnt*sizeof(ServedPLMNs_Item_t));
-      }
-      DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.array,\
-            servPlmnCnt*sizeof(ServedPLMNs_Item_t *));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.nRCellIdentity.buf,\
-            5*sizeof(uint8_t));
-      DU_FREE(modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf,\
-            3*sizeof(U8));
-      DU_FREE(modifyItem->oldNRCGI.nRCellIdentity.buf,\
-            modifyItem->oldNRCGI.nRCellIdentity.size*sizeof(uint8_t));
-      DU_FREE(modifyItem->oldNRCGI.pLMN_Identity.buf,3*sizeof(uint8_t));
-      DU_FREE(cellsToModify->list.array[idy],\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t));
-      DU_FREE(cellsToModify->list.array,modifyCnt*\
-            sizeof(Served_Cells_To_Modify_ItemIEs_t *));
-      for(idy=0;idy<elementCnt;idy++)
-      {
-         DU_FREE(duCfgUpdate->protocolIEs.list.array[idy], \
-               sizeof(GNBDUConfigurationUpdateIEs_t));
-      }
-      DU_FREE(duCfgUpdate->protocolIEs.list.array,\
-            elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-      DU_FREE(f1apDuCfg->choice.initiatingMessage,\
-            (Size)sizeof(InitiatingMessage_t));
-      DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-      return RFAILED;
-   }
-   duCfgUpdate->protocolIEs.list.array[2]->value.choice.GNB_DU_ID.buf[0] = \
+       DU_ALLOC(duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.buf,\
+          duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.size);
+       if(duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.buf == NULLP)
+       {
+                        break;
+       }
+       duCfgUpdate->protocolIEs.list.array[idx1]->value.choice.GNB_DU_ID.buf[0] = \
                                                               duCfgParam.duId;
 
-
-
-#endif
-   xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apDuCfg);
+       xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apDuCfg);
    
-   /* Encode the DU Config Update type as APER */
-   cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
-   encBufSize = 0;
-   encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apDuCfg, PrepFinalEncBuf, encBuf);
+       /* Encode the DU Config Update type as APER */
+       cmMemset((U8 *)encBuf, 0, ENC_BUF_MAX_LEN);
+       encBufSize = 0;
+       encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apDuCfg, PrepFinalEncBuf, encBuf);
 
-   /* Clean up */
-   for(idx=0;idx<elementCnt;idx++)
-   {
-      DU_FREE(duCfgUpdate->protocolIEs.list.array[idx], sizeof(GNBDUConfigurationUpdateIEs_t));
-   }
-   DU_FREE(duCfgUpdate->protocolIEs.list.array, elementCnt * sizeof(GNBDUConfigurationUpdateIEs_t *));
-   DU_FREE(f1apDuCfg->choice.initiatingMessage, (Size)sizeof(InitiatingMessage_t));
-   DU_FREE(f1apDuCfg, sizeof(F1AP_PDU_t));
-
-   /* Checking encode results */
-   if(encRetVal.encoded == ENCODE_FAIL) 
-   {
-      DU_LOG("F1AP : Could not encode DUConfigUpdate structure (at %s)\n",encRetVal.failed_type ? encRetVal.failed_type->name : "unknown");
-      return RFAILED;
-   } 
-   else 
-   {
-      DU_LOG("\nF1AP : Created APER encoded buffer for DUConfigUpdate\n");
-      for(int i=0; i< encBufSize; i++)
-      {
-         printf("%x",encBuf[i]);
-      }
-   }
-
-   /* Sending msg */
-   if(SendF1APMsg(DU_APP_MEM_REGION, DU_POOL) != ROK)
-   {
-      DU_LOG("\nF1AP : Sending GND-DU Config Update failed");
-      return RFAILED;
-   }
-   return ROK;
+       /* Checking encode results */
+       if(encRetVal.encoded == ENCODE_FAIL) 
+       {
+            DU_LOG("F1AP : Could not encode DUConfigUpdate structure (at %s)\n",encRetVal.failed_type ? encRetVal.failed_type->name : "unknown");
+                               break;
+                } 
+       else 
+       {
+           DU_LOG("\nF1AP : Created APER encoded buffer for DUConfigUpdate\n");
+           for(i=0; i< encBufSize; i++)
+          {
+              printf("%x",encBuf[i]);
+          }
+       } 
+       /* Sending msg */
+       if(SendF1APMsg(DU_APP_MEM_REGION, DU_POOL) != ROK)
+       {
+          DU_LOG("\nF1AP : Sending GND-DU Config Update failed");
+                        break;
+       }
+                checkvar=true;
+                break;
+       }
+   if(f1apDuCfg != NULLP)
+       {
+           if(f1apDuCfg->choice.initiatingMessage != NULLP)
+                {
+                    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(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(idy1==servPlmnCnt)
+                                                                                                                                 {
+                                                                                                                                     if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                                                                                                                                           array[0]->pLMN_Identity.buf != NULLP)
+                                                      {
+                                                           if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                                                                                                                                                           array[0]->iE_Extensions!= NULLP)
+                                                                                                                                                                {
+                                                                                                                                                                    if(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                                                                 array[0]->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[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.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[0]!=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)
+                                                                                                                                                                                                                                                                                        {
+                                                                                                                                                                                                                                                                                           if(modifyItem->served_Cell_Information.\
+                                                                                                                                                                                                                                                                                                measurementTimingConfiguration.buf !=NULLP)
+                                                                                                                                                                                                                                                                                                {
+                                                                                                                                                                                                                                                                                                  if(duCfgUpdate->protocolIEs.list.array[2]->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]->\
+                                                                                                                                                                                                                                                                                                                value.choice.GNB_DU_ID.size);
+                                                                                                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                                                                                                  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[0],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[0],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 ));
+                                                                                                                                                                                               }
+                                                                                                                                                                                       }
+                                                                                                                                                                                       else
+                                                                                                                                                                                       {
+                                                                                                                                                                                           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));
+                                                                                                                                                                                                }
+                                                                                                                                                                                       }
+                                                                                                                                                                             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);
+                                                                                                                                                                         }
+                                                                                                                                                                    DU_FREE(modifyItem->served_Cell_Information.servedPLMNs.list.\
+                                                                                                                                                                           array[0]->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,\
+                                                                                                                         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(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(cellsToModify->list.array[iy],\
+                                                                          sizeof(Served_Cells_To_Modify_ItemIEs_t));
+                                                                 }     
+                                                         }
+                                                    DU_FREE(cellsToModify->list.array,cellsToModify->list.size);
+                                                }
+                                           for(i=0;i<elementCnt;i++)
+                                                {
+                                              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(f1apDuCfg, (Size)sizeof(F1AP_PDU_t));
+       }
+   if(checkvar==true)
+      return ROK;
+       else 
+          return RFAILED;
 }/* End of BuildAndSendDUConfigUpdate */
 
 /*******************************************************************