[Epic-ID: ODUHIGH-516][Task-ID: 526] Handling of RIC Service Acknowledge and Failure
[o-du/l2.git] / src / du_app / du_tmr.c
index d635836..838dd35 100644 (file)
@@ -47,13 +47,21 @@ bool duChkTmr(PTR cb, int16_t tmrEvnt)
    {
       case EVENT_E2_SETUP_TMR:
       {
-         if(((E2apDb *)cb)->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;
          }
       }
-      
+      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;
+      }      
       default:
       {
          DU_LOG("\nERROR  -->  DU_APP : duChkTmr: Invalid tmr Evnt [%d]", tmrEvnt);
@@ -75,7 +83,6 @@ bool duChkTmr(PTR cb, int16_t tmrEvnt)
 
 void duStartTmr(PTR cb, int16_t tmrEvnt, uint8_t timerValue)
 {
-   E2apDb *e2apDb;
    CmTmrArg arg;
    arg.wait = 0;
    
@@ -83,13 +90,24 @@ void duStartTmr(PTR cb, int16_t tmrEvnt, uint8_t timerValue)
    {
       case EVENT_E2_SETUP_TMR:
       {
-         e2apDb = ((E2apDb *)cb);
-         DU_TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
+         CmTimer *e2SetupTimer;
+         e2SetupTimer = ((CmTimer *)cb);
+         TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
 
-         arg.timers = &e2apDb->e2Timers.e2SetupTimer;
+         arg.timers = e2SetupTimer;
          arg.max = MAX_E2_SETUP_TMR;
          break;
       }
+      case EVENT_RIC_SERVICE_UPDATE_TMR:
+      {
+         RicServiceUpdateTimer *ricServiceUpdateTimer;
+         ricServiceUpdateTimer= ((RicServiceUpdateTimer*)cb);
+         TMR_CALCUATE_WAIT(arg.wait, timerValue, duCb.duTimersInfo.tmrRes);
+
+         arg.timers = &ricServiceUpdateTimer->timer;
+         arg.max = MAX_RIC_SERVICE_UPDATE_TMR;
+         break;
+      }
       default:
       {
          DU_LOG("\nERROR  -->  DU : duStartTmr: Invalid tmr Evnt [%d]", tmrEvnt);
@@ -132,6 +150,14 @@ void duTmrExpiry(PTR cb,int16_t tmrEvnt)
          BuildAndSendE2SetupReq();
          break;
       }
+      case EVENT_RIC_SERVICE_UPDATE_TMR:
+      {
+         RicServiceUpdateTimer *ricServiceUpdateTimer;
+         
+         ricServiceUpdateTimer= ((RicServiceUpdateTimer*)cb);
+         BuildAndSendRicServiceUpdate(ricServiceUpdateTimer->ricService);
+         break;
+      }
       default:
       {
          DU_LOG("\nERROR  -->  DU : duStartTmr: Invalid tmr Evnt [%d]", tmrEvnt);