-// Used by submgr
-func (c *E2ap) PackSubscriptionDeleteResponseFromSubDelReq(payload []byte, newSubscriptionid uint16) (newPayload []byte, err error) {
-
- subDelReq, err := c.UnpackSubscriptionDeleteRequest(payload)
- if err != nil {
- return make([]byte, 0), fmt.Errorf("PackSubDelRespFromSubDelReq: SubDelReq unpack failed: %s", err.Error())
- }
-
- subDelResp := &e2ap.E2APSubscriptionDeleteResponse{}
- subDelResp.RequestId.Id = subDelReq.RequestId.Id
- subDelResp.RequestId.Seq = uint32(newSubscriptionid)
- subDelResp.FunctionId = subDelReq.FunctionId
-
- packedData, err := c.PackSubscriptionDeleteResponse(subDelResp)
- if err != nil {
- return make([]byte, 0), fmt.Errorf("PackSubDelRespFromSubDelReq: SubDelResp pack failed: %s", err.Error())
- }
- return packedData.Buf, nil
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+func (c *E2ap) FillSubscriptionReqMsgs(params interface{}, subreqList *e2ap.SubscriptionRequestList, restSubscription *RESTSubscription) error {
+ xapp.Logger.Info("FillSubscriptionReqMsgs")
+
+ p := params.(*models.SubscriptionParams)
+
+ for _, subscriptionDetail := range p.SubscriptionDetails {
+ subReqMsg := e2ap.E2APSubscriptionRequest{}
+
+ if p.RANFunctionID != nil {
+ subReqMsg.FunctionId = (e2ap.FunctionId)(*p.RANFunctionID)
+ }
+ e2EventInstanceID := restSubscription.GetE2IdFromXappIdToE2Id(*subscriptionDetail.XappEventInstanceID)
+ subReqMsg.RequestId = e2ap.RequestId{uint32(*subscriptionDetail.XappEventInstanceID), uint32(e2EventInstanceID)}
+
+ if len(subscriptionDetail.EventTriggers) > 0 {
+ for _, val := range subscriptionDetail.EventTriggers {
+ subReqMsg.EventTriggerDefinition.Data.Data = append(subReqMsg.EventTriggerDefinition.Data.Data, byte(val))
+ }
+ subReqMsg.EventTriggerDefinition.Data.Length = uint64(len(subscriptionDetail.EventTriggers))
+ }
+ for _, actionToBeSetup := range subscriptionDetail.ActionToBeSetupList {
+ actionToBeSetupItem := e2ap.ActionToBeSetupItem{}
+ actionToBeSetupItem.ActionType = e2ap.E2AP_ActionTypeInvalid
+ actionToBeSetupItem.ActionId = uint64(*actionToBeSetup.ActionID)
+
+ actionToBeSetupItem.ActionType = e2ap.E2AP_ActionTypeStrMap[*actionToBeSetup.ActionType]
+ actionToBeSetupItem.RicActionDefinitionPresent = true
+
+ if len(actionToBeSetup.ActionDefinition) > 0 {
+ for _, val := range actionToBeSetup.ActionDefinition {
+ actionToBeSetupItem.ActionDefinitionChoice.Data.Data = append(actionToBeSetupItem.ActionDefinitionChoice.Data.Data, byte(val))
+ }
+ actionToBeSetupItem.ActionDefinitionChoice.Data.Length = uint64(len(actionToBeSetup.ActionDefinition))
+
+ }
+ if actionToBeSetup.SubsequentAction != nil {
+ actionToBeSetupItem.SubsequentAction.Present = true
+ actionToBeSetupItem.SubsequentAction.Type = e2ap.E2AP_SubSeqActionTypeStrMap[*actionToBeSetup.SubsequentAction.SubsequentActionType]
+ actionToBeSetupItem.SubsequentAction.TimetoWait = e2ap.E2AP_TimeToWaitStrMap[*actionToBeSetup.SubsequentAction.TimeToWait]
+ }
+ subReqMsg.ActionSetups = append(subReqMsg.ActionSetups, actionToBeSetupItem)
+ }
+ subreqList.E2APSubscriptionRequests = append(subreqList.E2APSubscriptionRequests, subReqMsg)
+ }
+ return nil