correction in F1AP message based on wireshark logs
[o-du/l2.git] / src / du_app / du_f1ap_msg_hdl.c
index c16921b..03a8874 100644 (file)
@@ -44,6 +44,7 @@
 #include "RLC-BearerConfig.h"
 #include "PhysicalCellGroupConfig.h"
 #include "SpCellConfig.h"
+#include "TDD-UL-DL-ConfigDedicated.h"
 #include "ServingCellConfig.h"
 #include "ControlResourceSet.h"
 #include "SearchSpace.h"
@@ -195,7 +196,7 @@ uint8_t BuildNrcgi(NRCGI_t *nrcgi)
       return RFAILED;
    }
    ret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
-        &nrcgi->pLMN_Identity); // Building PLMN function
+        nrcgi->pLMN_Identity.buf); // Building PLMN function
    if(ret != ROK)
    {
       return RFAILED;
@@ -451,7 +452,7 @@ uint8_t  BuildServedPlmn(ServedPLMNs_List_t *srvplmn)
    srvplmn->list.array[0]->pLMN_Identity.size = PLMN_SIZE * sizeof(uint8_t);
    DU_ALLOC(srvplmn->list.array[0]->pLMN_Identity.buf, srvplmn->list.array[0]->pLMN_Identity.size);
    buildPlmnIdret = buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
-        &srvplmn->list.array[0]->pLMN_Identity);
+        srvplmn->list.array[0]->pLMN_Identity.buf);
    if(buildPlmnIdret!= ROK)
    {
       return RFAILED;
@@ -1314,7 +1315,7 @@ uint8_t BuildAndSendDUConfigUpdate()
         break;
       }
       buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
-           &modifyItem->oldNRCGI.pLMN_Identity);
+           modifyItem->oldNRCGI.pLMN_Identity.buf);
 
       /*nRCellIdentity*/
       modifyItem->oldNRCGI.nRCellIdentity.size = 5*sizeof(uint8_t);
@@ -1340,7 +1341,7 @@ uint8_t BuildAndSendDUConfigUpdate()
         break;
       }
       buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.nrCgi.plmn,\
-           &modifyItem->served_Cell_Information.nRCGI.pLMN_Identity);
+           modifyItem->served_Cell_Information.nRCGI.pLMN_Identity.buf);
       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);
@@ -1389,7 +1390,7 @@ uint8_t BuildAndSendDUConfigUpdate()
         break;
       }
       buildPlmnId(duCfgParam.srvdCellLst[0].duCellInfo.cellInfo.plmn[0],\
-           &modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->pLMN_Identity);
+           modifyItem->served_Cell_Information.servedPLMNs.list.array[0]->pLMN_Identity.buf);
       DU_ALLOC(modifyItem->served_Cell_Information.servedPLMNs.list.\
            array[0]->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P3_t));
       if(modifyItem->served_Cell_Information.servedPLMNs.list.\
@@ -3959,6 +3960,12 @@ uint8_t BuildCsiMeasCfg(struct ServingCellConfig__csi_MeasConfig *csiMeasCfg)
 uint8_t BuildSpCellCfgDed(ServingCellConfig_t *srvCellCfg)
 {
    srvCellCfg->tdd_UL_DL_ConfigurationDedicated = NULLP;
+   DU_ALLOC(srvCellCfg->tdd_UL_DL_ConfigurationDedicated, sizeof(TDD_UL_DL_ConfigDedicated_t));
+   if(!srvCellCfg->tdd_UL_DL_ConfigurationDedicated)
+   {
+      DU_LOG("\nF1AP : Memory allocation failure in BuildSpCellCfgDed");
+      return RFAILED;
+   }
 
    srvCellCfg->initialDownlinkBWP = NULLP;
    DU_ALLOC(srvCellCfg->initialDownlinkBWP, sizeof(BWP_DownlinkDedicated_t));
@@ -4826,44 +4833,48 @@ uint8_t FreeMemDuToCuRrcCont(CellGroupConfigRrc_t *cellGrpCfg)
            if(spCellCfg->spCellConfigDedicated)
            {
               srvCellCfg = spCellCfg->spCellConfigDedicated;
-              if(srvCellCfg->initialDownlinkBWP)
+              if(srvCellCfg->tdd_UL_DL_ConfigurationDedicated)
               {
-                 dlBwp = srvCellCfg->initialDownlinkBWP;
-                 if(srvCellCfg->firstActiveDownlinkBWP_Id)
-                 {
-                    if(srvCellCfg->defaultDownlinkBWP_Id)
+                 if(srvCellCfg->initialDownlinkBWP)
+                 {
+                    dlBwp = srvCellCfg->initialDownlinkBWP;
+                    if(srvCellCfg->firstActiveDownlinkBWP_Id)
                     {
-                       if(srvCellCfg->uplinkConfig)
-                       {
-                          if(srvCellCfg->pdsch_ServingCellConfig)
+                       if(srvCellCfg->defaultDownlinkBWP_Id)
+                       {
+                          if(srvCellCfg->uplinkConfig)
                           {
-                             pdschCfg= srvCellCfg->pdsch_ServingCellConfig;
-                             if(pdschCfg->choice.setup)
+                             if(srvCellCfg->pdsch_ServingCellConfig)
                              {
-                                DU_FREE(pdschCfg->choice.setup->nrofHARQ_ProcessesForPDSCH,sizeof(long));
-                                DU_FREE(pdschCfg->choice.setup, sizeof( struct PDSCH_ServingCellConfig));
-                             }
-                             DU_FREE(srvCellCfg->pdsch_ServingCellConfig, sizeof(struct
+                                pdschCfg= srvCellCfg->pdsch_ServingCellConfig;
+                                if(pdschCfg->choice.setup)
+                                {
+                                   DU_FREE(pdschCfg->choice.setup->nrofHARQ_ProcessesForPDSCH,sizeof(long));
+                                   DU_FREE(pdschCfg->choice.setup, sizeof( struct PDSCH_ServingCellConfig));
+                                }
+                                DU_FREE(srvCellCfg->pdsch_ServingCellConfig, sizeof(struct
                                       ServingCellConfig__pdsch_ServingCellConfig));
+                             }  
+                             FreeinitialUplinkBWP(srvCellCfg->uplinkConfig);
+                             DU_FREE(srvCellCfg->uplinkConfig, sizeof(UplinkConfig_t));        
                           }
-                          FreeinitialUplinkBWP(srvCellCfg->uplinkConfig);
-                          DU_FREE(srvCellCfg->uplinkConfig, sizeof(UplinkConfig_t));   
-                       }
-                       DU_FREE(srvCellCfg->defaultDownlinkBWP_Id, sizeof(long));
+                          DU_FREE(srvCellCfg->defaultDownlinkBWP_Id, sizeof(long));
+                       }
+                       DU_FREE(srvCellCfg->firstActiveDownlinkBWP_Id, sizeof(long));
                     }
-                    DU_FREE(srvCellCfg->firstActiveDownlinkBWP_Id, sizeof(long));
-                 }
-                 if(dlBwp->pdcch_Config)
-                 {
-                    if(dlBwp->pdsch_Config)
+                    if(dlBwp->pdcch_Config)
                     {
-                       FreeBWPDlDedPdschCfg(dlBwp);
-                       DU_FREE(dlBwp->pdsch_Config, sizeof(struct BWP_DownlinkDedicated__pdsch_Config));
-                    }
-                    FreeBWPDlDedPdcchCfg(dlBwp);
-                    DU_FREE(dlBwp->pdcch_Config, sizeof(struct BWP_DownlinkDedicated__pdcch_Config));
-                 }
-                 DU_FREE(srvCellCfg->initialDownlinkBWP, sizeof(BWP_DownlinkDedicated_t));
+                       if(dlBwp->pdsch_Config)
+                       {
+                          FreeBWPDlDedPdschCfg(dlBwp);
+                          DU_FREE(dlBwp->pdsch_Config, sizeof(struct BWP_DownlinkDedicated__pdsch_Config));
+                       }
+                       FreeBWPDlDedPdcchCfg(dlBwp);
+                       DU_FREE(dlBwp->pdcch_Config, sizeof(struct BWP_DownlinkDedicated__pdcch_Config));
+                   }
+                   DU_FREE(srvCellCfg->initialDownlinkBWP, sizeof(BWP_DownlinkDedicated_t));
+                 }
+                 DU_FREE(srvCellCfg->tdd_UL_DL_ConfigurationDedicated, sizeof(TDD_UL_DL_ConfigDedicated_t));
               }
               DU_FREE(spCellCfg->spCellConfigDedicated, sizeof(ServingCellConfig_t));
            }