X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fdu_app%2Fdu_e2ap_mgr.c;fp=src%2Fdu_app%2Fdu_e2ap_mgr.c;h=99b36230da2e8d85038d987a08e5441242684d3b;hb=61f1d2eec53a339d27c720eee5ded1869ec72fbb;hp=dad3428b9a5b93015fdad196e25da103b25417eb;hpb=a0b19d81aa8c12107f409b1d06a5e900614697c2;p=o-du%2Fl2.git diff --git a/src/du_app/du_e2ap_mgr.c b/src/du_app/du_e2ap_mgr.c index dad3428b9..99b36230d 100644 --- a/src/du_app/du_e2ap_mgr.c +++ b/src/du_app/du_e2ap_mgr.c @@ -690,7 +690,7 @@ uint8_t procStatsRspForSubsModReq(MacStatsRsp *statsRsp, RanFunction *ranFuncDb, /* Step - 4 */ pendingSubsModRsp->addActionCompleted =true; - if(duProcPendingSubsModRsp(pendingSubsModRsp) != ROK) + if(duProcPendingSubsModRsp(ricSubscriptionInfo, pendingSubsModRsp) != ROK) { DU_LOG("\nERROR --> E2AP : failed in function %s at line %d",__func__,__LINE__); return RFAILED; @@ -1848,7 +1848,7 @@ uint8_t e2ProcActionDeleteRsp(MacStatsDeleteRsp *statsDeleteRsp) /* [Step-4] */ pendingSubsModRsp->removeActionCompleted = true; - if(duProcPendingSubsModRsp(pendingSubsModRsp) != ROK) + if(duProcPendingSubsModRsp(ricSubscriptionInfo, pendingSubsModRsp) != ROK) { DU_LOG("\nERROR --> E2AP : failed to process subscription modification rsp"); return RFAILED; @@ -1869,23 +1869,76 @@ uint8_t e2ProcActionDeleteRsp(MacStatsDeleteRsp *statsDeleteRsp) * If processing of add, mod and remove action completes * then send the ric sub modification rsp * - * @params[in] Pending Subs modification rsp + * @params[in] + * Ric subscription info + * Pending Subs modification rsp * * @return ROK - success * RFAILED - failure * * ****************************************************************/ -uint8_t duProcPendingSubsModRsp( PendingSubsModRspInfo *pendingSubsModRsp) +uint8_t duProcPendingSubsModRsp(RicSubscription *ricSubscriptionInfo, PendingSubsModRspInfo *pendingSubsModRsp) { - if(pendingSubsModRsp->addActionCompleted && pendingSubsModRsp->removeActionCompleted && pendingSubsModRsp->modActionCompleted) + uint8_t ret = RFAILED; + uint32_t reportingPeriod = 0; + + while(true) { -#if 0 - BuildAndSendRicSubsModRsp(pendingSubsModRsp); -#endif - memset(pendingSubsModRsp, 0, sizeof(PendingSubsModRspInfo)); - DU_LOG("\nProcessing of RIC subscription modification completed"); + if(pendingSubsModRsp->addActionCompleted && pendingSubsModRsp->removeActionCompleted && pendingSubsModRsp->modActionCompleted) + { + switch(ricSubscriptionInfo->eventTriggerDefinition.formatType) + { + case 1: + { + reportingPeriod = ricSubscriptionInfo->eventTriggerDefinition.choice.format1.reportingPeriod; + storeReportStartTime(&ricSubscriptionInfo->eventTriggerDefinition.choice.format1.startTime); + break; + } + default: + { + DU_LOG("\nERROR --> E2AP : Invalid event trigger format of RIC subscription"); + break; + } + } + if(reportingPeriod == 0) + { + DU_LOG("\nERROR --> E2AP : failed in function %s at line %d",__func__,__LINE__); + break; + } + + if(duChkTmr((PTR)ricSubscriptionInfo, EVENT_RIC_SUBSCRIPTION_REPORTING_TMR) != true) + { + duStartTmr((PTR)ricSubscriptionInfo, EVENT_RIC_SUBSCRIPTION_REPORTING_TMR, reportingPeriod); + } + else + { + DU_LOG("\nERROR --> E2AP : RIC Subscription reporting timer already running for RIC Subscription"); + break; + } + + if(BuildAndSendRicSubscriptionModificationResponse(pendingSubsModRsp) != ROK) + { + DU_LOG("\nERROR --> E2AP : failed in function %s at line %d",__func__,__LINE__); + break; + } + + memset(pendingSubsModRsp, 0, sizeof(PendingSubsModRspInfo)); + DU_LOG("\nProcessing of RIC subscription modification completed"); + ret = ROK; + break; + } + else + { + ret = ROK; + break; + } } - return ROK; + + if(ret == RFAILED) + { + memset(pendingSubsModRsp, 0, sizeof(PendingSubsModRspInfo)); + } + return ret; } /******************************************************************* * @@ -2003,7 +2056,7 @@ uint8_t e2ProcStatsModificationRsp(MacStatsModificationRsp *statsModificationRsp /* [Step-5] */ pendingSubsModRsp->modActionCompleted = true; - if(duProcPendingSubsModRsp(pendingSubsModRsp) != ROK) + if(duProcPendingSubsModRsp(ricSubscriptionInfo, pendingSubsModRsp) != ROK) { DU_LOG("\nERROR --> E2AP : failed to process subscription modification rsp"); return RFAILED;