[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-529] RIC Indication
[o-du/l2.git] / src / du_app / du_tmr.c
index 3d89d98..1ea0d77 100644 (file)
@@ -47,13 +47,40 @@ bool duChkTmr(PTR cb, int16_t tmrEvnt)
    {
       case EVENT_E2_SETUP_TMR:
       {
-         if(((E2apDb *)cb)->e2TimersInfo.e2Timers.e2SetupTimer.tmrEvnt == EVENT_E2_SETUP_TMR)
+         if(((CmTimer *)cb)->tmrEvnt == EVENT_E2_SETUP_TMR)
          {
              DU_LOG("\nERROR  -->  DU_APP : duChkTmr: Invalid tmr Evnt [%d]", tmrEvnt);
              return TRUE;
          }
+         break;
+      }
+      case EVENT_RIC_SERVICE_UPDATE_TMR:
+      {
+         if(((RicServiceUpdateTimer*)cb)->timer.tmrEvnt == EVENT_RIC_SERVICE_UPDATE_TMR)
+         {
+            DU_LOG("\nERROR  -->  DU_APP : duChkTmr: Timer already running for event [%d]", tmrEvnt);
+            return TRUE;
+         }
+         break;
+      }      
+      case EVENT_E2_NODE_CONFIG_UPDATE_TMR:
+      {
+         if(((E2NodeConfigUpdateTimer *)cb)->timer.tmrEvnt == EVENT_E2_NODE_CONFIG_UPDATE_TMR)
+         {
+             DU_LOG("\nERROR  -->  DU_APP : duChkTmr: Invalid tmr Evnt [%d]", tmrEvnt);
+             return TRUE;
+         }
+         break;
+      }
+      case EVENT_RIC_SUBSCRIPTION_REPORTING_TMR:
+      {
+         if(((RicSubscription *)cb)->ricSubsReportTimer.tmrEvnt == EVENT_RIC_SUBSCRIPTION_REPORTING_TMR)
+         {
+             DU_LOG("\nERROR  -->  DU_APP : duChkTmr: Timer already running for event [%d]", tmrEvnt);
+             return TRUE;
+         }
+         break;
       }
-      
       default:
       {
          DU_LOG("\nERROR  -->  DU_APP : duChkTmr: Invalid tmr Evnt [%d]", tmrEvnt);
@@ -73,9 +100,8 @@ bool duChkTmr(PTR cb, int16_t tmrEvnt)
  * @return  Void
 */
 
-void duStartTmr(PTR cb, int16_t tmrEvnt, uint8_t timerValue)
+void duStartTmr(PTR cb, int16_t tmrEvnt, uint32_t timerValue)
 {
-   E2apDb *e2apDb;
    CmTmrArg arg;
    arg.wait = 0;
    
@@ -83,16 +109,48 @@ void duStartTmr(PTR cb, int16_t tmrEvnt, uint8_t timerValue)
    {
       case EVENT_E2_SETUP_TMR:
       {
-         e2apDb = ((E2apDb *)cb);
+         CmTimer *e2SetupTimer = NULLP;
+         e2SetupTimer = ((CmTimer *)cb);
          TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
 
-         arg.timers = &e2apDb->e2TimersInfo.e2Timers.e2SetupTimer;
+         arg.timers = e2SetupTimer;
          arg.max = MAX_E2_SETUP_TMR;
          break;
       }
+      case EVENT_RIC_SERVICE_UPDATE_TMR:
+      {
+         RicServiceUpdateTimer *ricServiceUpdateTimer = NULLP;
+         ricServiceUpdateTimer= ((RicServiceUpdateTimer*)cb);
+         TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
+
+         arg.timers = &ricServiceUpdateTimer->timer;
+         arg.max = MAX_RIC_SERVICE_UPDATE_TMR;
+         break;
+      }
+      case EVENT_E2_NODE_CONFIG_UPDATE_TMR:
+      {
+         E2NodeConfigUpdateTimer *cfgUpdateTimer;
+         cfgUpdateTimer = ((E2NodeConfigUpdateTimer*)cb);
+         TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
+
+         arg.timers = &cfgUpdateTimer->timer;
+         arg.max = MAX_E2_NODE_CONFIG_UPDATE_TMR;
+         break;
+      }
+      case EVENT_RIC_SUBSCRIPTION_REPORTING_TMR:
+      {
+         RicSubscription *ricSubscription = NULLP;
+         ricSubscription = ((RicSubscription*)cb);
+         TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
+
+         arg.timers = &ricSubscription->ricSubsReportTimer;
+         arg.max = MAX_RIC_SUBSCRIPTION_REPORTING_TMR;
+         break;
+      }
       default:
       {
          DU_LOG("\nERROR  -->  DU : duStartTmr: Invalid tmr Evnt [%d]", tmrEvnt);
+         return;
       }
    }
 
@@ -132,6 +190,30 @@ void duTmrExpiry(PTR cb,int16_t tmrEvnt)
          BuildAndSendE2SetupReq();
          break;
       }
+      case EVENT_RIC_SERVICE_UPDATE_TMR:
+      {
+         RicServiceUpdateTimer *ricServiceUpdateTimer;
+         
+         ricServiceUpdateTimer= ((RicServiceUpdateTimer*)cb);
+         BuildAndSendRicServiceUpdate(ricServiceUpdateTimer->ricService);
+         break;
+      }
+      case EVENT_E2_NODE_CONFIG_UPDATE_TMR:
+      {
+         E2NodeConfigUpdateTimer *cfgUpdateTimer;
+         
+         cfgUpdateTimer = ((E2NodeConfigUpdateTimer*)cb);
+         BuildAndSendE2NodeConfigUpdate(&cfgUpdateTimer->configList);
+         break;
+      }
+      case EVENT_RIC_SUBSCRIPTION_REPORTING_TMR:
+      {
+         RicSubscription *ricSubscription = NULLP;
+
+         ricSubscription = ((RicSubscription *)cb);
+         E2apHdlRicSubsReportTmrExp(ricSubscription);
+         break;
+      }
       default:
       {
          DU_LOG("\nERROR  -->  DU : duStartTmr: Invalid tmr Evnt [%d]", tmrEvnt);