<JIRA ID: ODUHIGH-396 : scaling of DRBs to MAX>
[o-du/l2.git] / src / du_app / du_cell_mgr.c
index 6c4b888..b81ddca 100644 (file)
@@ -34,7 +34,7 @@
 #ifdef O1_ENABLE
 
 #include "AlarmInterface.h"
-#include "ConfigInterface.h"
+#include "CmInterface.h"
 
 #endif
 
@@ -173,7 +173,27 @@ uint8_t duGetCellCb(uint16_t cellId, DuCellCb **cellCb)
  * ****************************************************************/
 uint8_t duHandleCellUpInd(Pst *pst, OduCellId *cellId)
 {
-   DuCellCb *cellCb = NULLP;
+   DuCellCb *cellCb = NULLP; 
+
+#ifndef O1_ENABLE
+
+   /*Note: Static Configuration, when O1 is not configuring the RRM policy*/
+   RrmPolicy *rrmPolicy;
+   DU_ALLOC(rrmPolicy, sizeof(RrmPolicy));
+   rrmPolicy->rsrcType = RSRC_PRB;
+   rrmPolicy->numMemberList = 1;
+   DU_ALLOC(rrmPolicy->memberList, sizeof(PolicyMemberList *));
+   DU_ALLOC(rrmPolicy->memberList[0], sizeof(PolicyMemberList));
+   
+   memset(&rrmPolicy->memberList[0]->plmn, 0, sizeof(Plmn)); 
+   rrmPolicy->memberList[0]->snssai.sst = 1;
+   rrmPolicy->memberList[0]->snssai.sd[0] = 2;
+   rrmPolicy->memberList[0]->snssai.sd[1] = 3;
+   rrmPolicy->memberList[0]->snssai.sd[2] = 4;
+   rrmPolicy->policyMinRatio = 30;
+   rrmPolicy->policyMaxRatio = 90;
+   rrmPolicy->policyDedicatedRatio = 10;
+#endif
 
    if(cellId->cellId <=0 || cellId->cellId > MAX_NUM_CELL)
    {
@@ -191,10 +211,15 @@ uint8_t duHandleCellUpInd(Pst *pst, OduCellId *cellId)
       gCellStatus = CELL_UP;
 
 #ifdef O1_ENABLE
+      if(duCfgParam.tempSliceCfg.rrmPolicy)
+         BuildAndSendSliceConfigReq(duCfgParam.tempSliceCfg.rrmPolicy, duCfgParam.tempSliceCfg.totalRrmPolicy, duCfgParam.tempSliceCfg.totalSliceCount);
       DU_LOG("\nINFO   -->  DU APP : Raise cell UP alarm for cell id=%d", cellId->cellId);
       raiseCellAlrm(CELL_UP_ALARM_ID, cellId->cellId);
       setCellOpState(cellId->cellId, ENABLED, ACTIVE);
+#else
+      BuildAndSendSliceConfigReq(&rrmPolicy,1, rrmPolicy->numMemberList);
 #endif
+
    }
 
    if((pst->selector == ODU_SELECTOR_LWLC) || (pst->selector == ODU_SELECTOR_TC))
@@ -222,6 +247,7 @@ uint8_t DuProcMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *deleteRsp)
 {
    uint8_t ret = ROK;
    uint16_t cellIdx=0;
+   
    if(deleteRsp)
    {
       if(deleteRsp->result == SUCCESSFUL_RSP)
@@ -242,6 +268,7 @@ uint8_t DuProcMacCellDeleteRsp(Pst *pst, MacCellDeleteRsp *deleteRsp)
             duCb.numActvCells--;
             duCb.numCfgCells--;
             DU_FREE(duCb.actvCellLst[cellIdx], sizeof(DuCellCb));
+
          }
          else
          {
@@ -354,13 +381,6 @@ uint8_t duSendCellDeletReq(uint16_t cellId)
       return RFAILED;  
    }
 
-   if(duCb.actvCellLst[cellIdx]->numActvUes)
-   {
-      DU_LOG("\nERROR  -->  DU APP : duSendCellDeletReq(): Active UEs still present in cellId[%d].\
-      Failed to delete cell", cellId);
-      return RFAILED;
-   }
-
    if(duBuildAndSendMacCellStop(cellId) == RFAILED)
    {
       DU_LOG("\nERROR  -->  DU APP : duSendCellDeletReq(): Failed to build and send cell stop request to MAC for\