package control
/*
-#include <wrapper.h>
-
#cgo LDFLAGS: -le2ap_wrapper -le2ap
*/
import "C"
import (
"encoding/hex"
"fmt"
+
"gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
"gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap_wrapper"
+ "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/models"
"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
)
var packerif e2ap.E2APPackerIf = e2ap_wrapper.NewAsn1E2Packer()
+func GetPackerIf() e2ap.E2APPackerIf {
+ return packerif
+}
+
+func SetPackerIf(iface e2ap.E2APPackerIf) {
+ packerif = iface
+}
+
type E2ap struct {
}
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+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
+}
+
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
return subDelFail, nil
}
+/*
func (c *E2ap) PackSubscriptionDeleteFailure(req *e2ap.E2APSubscriptionDeleteFailure) (int, *e2ap.PackedData, error) {
e2SubDelFail := packerif.NewPackerSubscriptionDeleteFailure()
err, packedData := e2SubDelFail.Pack(req)
}
return xapp.RIC_SUB_DEL_FAILURE, packedData, nil
}
+*/