-func (c *Control) handleSubscriptionRequestTimer(subId uint16) {
- xapp.Logger.Info("Subscription Request timer expired. SubId: %v",subId)
-/*
- transaction, err := c.tracker.completeTransaction(subId, CREATE)
+func (c *Control) handleSubscriptionRequestTimer(strId string, nbrId int, tryCount uint64) {
+ subId := uint16(nbrId)
+ xapp.Logger.Info("handleSubTimer: SubReq timer expired. subId: %v, tryCount: %v", subId, tryCount)
+
+ subs := c.registry.GetSubscription(subId)
+ if subs == nil {
+ xapp.Logger.Error("SubFail: Unknown payloadSeqNum. Dropping this msg. SubId: %v", subId)
+ return
+ }
+
+ transaction := subs.GetTransaction()
+ if transaction == nil {
+ xapp.Logger.Error("SubFail: Unknown transaction. Dropping this msg. SubId: %v", subId)
+ return
+ }
+
+ responseReceived := transaction.CheckResponseReceived()
+
+ if responseReceived == true {
+ // Subscription Response or Failure already received
+ return
+ }
+
+ if tryCount < maxSubReqTryCount {
+ xapp.Logger.Info("handleSubTimer: Resending SubReq to E2T: Mtype: %v, SubId: %v, Xid %s, Meid %v", transaction.OrigParams.Mtype, transaction.OrigParams.SubId, transaction.OrigParams.Xid, transaction.OrigParams.Meid)
+
+ transaction.RetryTransaction()
+
+ err := c.rmrSend(transaction.OrigParams)
+ if err != nil {
+ xapp.Logger.Error("handleSubTimer: Failed to send request to E2T %v, SubId: %v, Xid: %s", err, transaction.OrigParams.SubId, transaction.OrigParams.Xid)
+ }
+
+ tryCount++
+ c.timerMap.StartTimer("RIC_SUB_REQ", int(subId), subReqTime, tryCount, c.handleSubscriptionRequestTimer)
+ return
+ }
+
+ var subDelReqPayload []byte
+ subDelReqPayload, err := c.e2ap.PackSubscriptionDeleteRequest(transaction.OrigParams.Payload, subId)