remove/replaced PRIVATE and EXTERN keywords
[o-du/l2.git] / src / du_app / du_cell_mgr.c
index 1af02ed..4e22d32 100644 (file)
 ################################################################################
 *******************************************************************************/
 
-/* This file contains message handling functionality for DU APP */
+/* This file contains message handling functionality for DU cell management */
+#include "common_def.h"
+#include "lrg.h"
+#include "legtp.h"
+#include "lrg.x"
+#include "lkw.x"
+#include "rgr.h"
+#include "rgr.x"
+#include "E2AP-PDU.h"
+#include<ProtocolIE-Field.h>
+#include "F1AP-PDU.h"
+#include "du_e2ap_msg_hdl.h"
+#include "du_app_mac_inf.h"
+#include "du_app_rlc_inf.h"
+#include "du_cfg.h"
+#include "du_mgr.h"
+#include "odu_common_codec.h"
 #include "du_cell_mgr.h"
+#include "du_f1ap_msg_hdl.h"
 
-extern DuCfgParams duCfgParam;
-
-extern S16 duBuildAndSendMacCellCfg();
+DuCfgParams duCfgParam;
+uint8_t duBuildAndSendMacCellCfg();
 
 /*******************************************************************
  *
@@ -39,22 +55,22 @@ extern S16 duBuildAndSendMacCellCfg();
  *         RFAILED - failure
  *
  * ****************************************************************/
-S16 procCellsToBeActivated(Cells_to_be_Activated_List_t cellsToActivate)
+uint8_t procCellsToBeActivated(Cells_to_be_Activated_List_t cellsToActivate)
 {
-   U16 idx = 0;
-   S16 ret = ROK;
+   uint16_t idx = 0;
+   uint8_t ret = ROK;
 
    for(idx=0; idx<cellsToActivate.list.count; idx++)
    {
-      U16 nci = 0;
-      U16 pci = 0;
+      uint16_t nci = 0;
+      uint16_t pci = 0;
       DuCellCb *cellCb = NULLP;
 
       Cells_to_be_Activated_List_Item_t cell = cellsToActivate.list.array[idx]->\
           value.choice.Cells_to_be_Activated_List_Item;
 
       bitStringToInt(&cell.nRCGI.nRCellIdentity, &nci);
-      if(nci <= 0 || nci > DU_MAX_CELLS)
+      if(nci <= 0 || nci > MAX_NUM_CELL)
       {
          DU_LOG("\nDU APP : Invalid NCI %d", nci);
          return RFAILED;
@@ -76,14 +92,18 @@ S16 procCellsToBeActivated(Cells_to_be_Activated_List_t cellsToActivate)
       cellCb->cellInfo.nrPci = pci;
 
       /* Now remove this cell from configured list and move to active list */
-      duCb.cfgCellLst[nci-1] = NULLP;
+      duCb.cfgCellLst[nci-1] = NULL;
       duCb.actvCellLst[nci-1] = cellCb;
-
+      duCb.numActvCells++;
       /* Build and send Mac Cell Cfg for the number of active cells */
-      ret = duBuildAndSendMacCellCfg();
+      ret = duBuildAndSendMacCellCfg(cellCb->cellId);
       if(ret != ROK)
       {
          DU_LOG("\nDU APP : macCellCfg build and send failed");
+        /* Move cellCb back to cfgCellList */
+        duCb.cfgCellLst[nci-1] = duCb.actvCellLst[nci-1];
+        duCb.actvCellLst[nci-1] = NULLP;
+        duCb.numActvCells--;
          return RFAILED;
       }
    }
@@ -101,19 +121,19 @@ S16 procCellsToBeActivated(Cells_to_be_Activated_List_t cellsToActivate)
 *    Functionality: Processes F1 Setup Response sent by CU
 *
 * @params[in] F1AP_PDU_t ASN decoded F1AP message
-* @return ROK     - success
+* @return ROK     - success 
 *         RFAILED - failure
 *
 * ****************************************************************/
-S16 procF1SetupRsp(F1AP_PDU_t *f1apMsg)
+uint8_t procF1SetupRsp(F1AP_PDU_t *f1apMsg)
 {
-   S16 ret = ROK;
+   uint8_t ret = ROK;
 
    F1SetupResponse_t *f1SetRspMsg;
    F1SetupRsp    f1SetRspDb;
    GNB_CU_Name_t *cuName;
    RRC_Version_t *rrc_Ver;
-   U16 idx;
+   uint16_t idx;
 
    DU_LOG("\nDU_APP : F1 Setup Response received"); 
        printf("\nDU_APP : F1 Setup Response received");
@@ -161,11 +181,9 @@ S16 procF1SetupRsp(F1AP_PDU_t *f1apMsg)
  
    /* TODO :Check the deallocation */
 #if 0
-   SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1SetupRsp->protocolIEs.list.array),\
-         (Size)elementCnt * sizeof(F1SetupResponseIEs_t *));
-   SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&(f1apMsg->choice.successfulOutcome),\
-         (Size)sizeof(SuccessfulOutcome_t));
-   SPutSBuf(DU_APP_MEM_REGION, DU_POOL,(Data *)&f1apMsg,(Size)sizeof(F1AP_PDU_t));
+   DU_FREE(f1SetupRsp->protocolIEs.list.array,(Size)elementCnt * sizeof(F1SetupResponseIEs_t *));
+   DU_FREE(f1apMsg->choice.successfulOutcome,(Size)sizeof(SuccessfulOutcome_t));
+   DU_FREE(f1apMsg,(Size)sizeof(F1AP_PDU_t));
 #endif
  
    return ret;