HandleControlFailure added as part of this commit
[ric-app/rc.git] / control / rcControl.go
index 5bf5994..32209db 100644 (file)
@@ -357,8 +357,30 @@ func HandleControlResponse(params *xapp.RMRParams) (err error) {
 \r
 func HandleControlFailure(params *xapp.RMRParams) (err error) {\r
 \r
+       var e2ap *E2ap\r
+\r
        xapp.Logger.Debug("The SubId in RIC_CONTROL_FAILURE is %d", params.SubId)\r
        log.Printf("The SubId in RIC_CONTROL_FAILURE is %d", params.SubId)\r
 \r
+       controlAck, err := e2ap.GetControlFailureMsg(params.Payload)\r
+       if err != nil {\r
+                xapp.Logger.Debug("Failed to decode RIC Control message: %v", err)\r
+                log.Println("Failed to decode RIC Control Ack: %v", err)\r
+                return\r
+        }\r
+        log.Println("E2ap RIC  Control Ack message decoded \n")\r
+        xapp.Logger.Debug("E2ap RIC Control Ack message decoded \n")\r
+\r
+        gControlData.eventRicControlReqExpiredMu.Lock()\r
+        _, ok := gControlData.eventRicControlReqExpiredMap[int(controlAck.InstanceId)]\r
+        if !ok {\r
+                gControlData.eventRicControlReqExpiredMu.Unlock()\r
+                xapp.Logger.Debug("RIC_CONTROL_REQ has been deleted!")\r
+                log.Printf("RIC_CONTROL_REQ has been deleted!")\r
+                return nil\r
+        } else {\r
+                gControlData.eventRicControlReqExpiredMap[int(controlAck.InstanceId)] = true\r
+                gControlData.eventRicControlReqExpiredMu.Unlock()\r
+        }\r
        return nil\r
 }\r