RIC-867: Submgr adaptations to E2APv2.0
[ric-plt/submgr.git] / e2ap / pkg / e2ap / e2ap_tests / msg_e2ap_subscription.go
index 50a4eab..eb95cc4 100644 (file)
@@ -35,6 +35,7 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionRequestWithData(t *testing.T,
        testCtxt.testPrint("########## ##########")
        testCtxt.testPrint("init")
        testCtxt.testPrint("pack")
+
        err, packedMsg := e2SubsReq.Pack(areqenc)
        if err != nil {
                testCtxt.testError(t, "Pack failed: %s", err.Error())
@@ -42,72 +43,62 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionRequestWithData(t *testing.T,
        }
        testCtxt.testPrint("print:\n%s", e2SubsReq.String())
        testCtxt.testPrint("unpack")
+
        err, areqdec := e2SubsReq.UnPack(packedMsg)
        if err != nil {
                testCtxt.testError(t, "UnPack failed: %s", err.Error())
                return
        }
        testCtxt.testPrint("print:\n%s", e2SubsReq.String())
+
        testCtxt.testValueEquality(t, "msg", areqenc, areqdec)
        testCtxt.testValueEquality(t, "EventTriggerDefinition", &areqenc.EventTriggerDefinition, &areqdec.EventTriggerDefinition)
 }
-
-func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionRequest(t *testing.T) {
+func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionRequest(t *testing.T, msgContent *SubscriptionTestMsgContent) {
 
        areqenc := e2ap.E2APSubscriptionRequest{}
        areqenc.RequestId.Id = 1
-       areqenc.RequestId.Seq = 22
+       areqenc.RequestId.InstanceId = 22
        areqenc.FunctionId = 33
-       //Bits 20, 28(works), 18, 21 (asn1 problems)
-       areqenc.EventTriggerDefinition.InterfaceDirection = e2ap.E2AP_InterfaceDirectionIncoming
-       areqenc.EventTriggerDefinition.ProcedureCode = 35
-       areqenc.EventTriggerDefinition.TypeOfMessage = e2ap.E2AP_InitiatingMessage
-       for index := 0; index < 16; index++ {
+
+       if msgContent.NBX2EventTriggerDefinitionPresent {
+               areqenc.EventTriggerDefinition.Data.Length = 1
+               areqenc.EventTriggerDefinition.Data.Data = make([]uint8, areqenc.EventTriggerDefinition.Data.Length)
+               areqenc.EventTriggerDefinition.Data.Data[0] = 1
+       } else if msgContent.NBNRTEventTriggerDefinitionPresent {
+               areqenc.EventTriggerDefinition.Data.Length = 1
+               areqenc.EventTriggerDefinition.Data.Data = make([]uint8, areqenc.EventTriggerDefinition.Data.Length)
+               areqenc.EventTriggerDefinition.Data.Data[0] = 100
+       }
+
+       for index := 0; index < 1; /*16*/ index++ {
                item := e2ap.ActionToBeSetupItem{}
                item.ActionId = uint64(index)
                item.ActionType = e2ap.E2AP_ActionTypeInsert
-               // NOT SUPPORTED CURRENTLY
-               //item.ActionDefinition.Present = true
-               //item.ActionDefinition.StyleId = 255
-               //item.ActionDefinition.ParamId = 222
+
+               item.RicActionDefinitionPresent = true
+
+               if item.RicActionDefinitionPresent {
+                       if msgContent.ActionDefinitionX2Format1Present {
+                               item.ActionDefinitionChoice.Data.Length = 1
+                               item.ActionDefinitionChoice.Data.Data = make([]uint8, item.ActionDefinitionChoice.Data.Length)
+                               item.ActionDefinitionChoice.Data.Data[0] = 1
+                       } else if msgContent.ActionDefinitionX2Format2Present {
+                               item.ActionDefinitionChoice.Data.Length = 1
+                               item.ActionDefinitionChoice.Data.Data = make([]uint8, item.ActionDefinitionChoice.Data.Length)
+                               item.ActionDefinitionChoice.Data.Data[0] = 2
+                       } else if msgContent.ActionDefinitionNRTFormat1Present {
+                               item.ActionDefinitionChoice.Data.Length = 1
+                               item.ActionDefinitionChoice.Data.Data = make([]uint8, item.ActionDefinitionChoice.Data.Length)
+                               item.ActionDefinitionChoice.Data.Data[0] = 3
+                       }
+               }
                item.SubsequentAction.Present = true
                item.SubsequentAction.Type = e2ap.E2AP_SubSeqActionTypeContinue
                item.SubsequentAction.TimetoWait = e2ap.E2AP_TimeToWaitW100ms
                areqenc.ActionSetups = append(areqenc.ActionSetups, item)
        }
-
-       areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
-       areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mcc = "310"
-       areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mnc = "150"
-       areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDHomeBits28
-       areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 202251
-       testCtxt.SetDesc("SubsReq-28bit")
        testCtxt.E2ApTestMsgSubscriptionRequestWithData(t, &areqenc)
-
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mcc = "310"
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mnc = "150"
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDShortMacroits18
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 55
-       //testCtxt.SetDesc("SubsReq-18bit")
-       //testCtxt.E2ApTestMsgSubscriptionRequestWithData(t,&areqenc)
-
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mcc = "310"
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mnc = "150"
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDMacroPBits20
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 55
-       //testCtxt.SetDesc("SubsReq-20bit")
-       //testCtxt.E2ApTestMsgSubscriptionRequestWithData(t,&areqenc)
-
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mcc = "310"
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Mnc = "150"
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDlongMacroBits21
-       //areqenc.EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 55
-       //testCtxt.SetDesc("SubsReq-21bit")
-       //testCtxt.E2ApTestMsgSubscriptionRequestWithData(t,&areqenc)
-
 }
 
 func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionResponse(t *testing.T) {
@@ -121,7 +112,7 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionResponse(t *testing.T) {
 
        arespenc := e2ap.E2APSubscriptionResponse{}
        arespenc.RequestId.Id = 1
-       arespenc.RequestId.Seq = 22
+       arespenc.RequestId.InstanceId = 22
        arespenc.FunctionId = 33
        for index := uint64(0); index < 16; index++ {
                item := e2ap.ActionAdmittedItem{}
@@ -132,7 +123,7 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionResponse(t *testing.T) {
                item := e2ap.ActionNotAdmittedItem{}
                item.ActionId = index
                item.Cause.Content = 1
-               item.Cause.CauseVal = 1
+               item.Cause.Value = 1
                arespenc.ActionNotAdmittedList.Items = append(arespenc.ActionNotAdmittedList.Items, item)
        }
 
@@ -164,15 +155,10 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionFailure(t *testing.T) {
 
        afailenc := e2ap.E2APSubscriptionFailure{}
        afailenc.RequestId.Id = 1
-       afailenc.RequestId.Seq = 22
-       afailenc.FunctionId = 33
-       for index := uint64(0); index < 16; index++ {
-               item := e2ap.ActionNotAdmittedItem{}
-               item.ActionId = index
-               item.Cause.Content = 1
-               item.Cause.CauseVal = 1
-               afailenc.ActionNotAdmittedList.Items = append(afailenc.ActionNotAdmittedList.Items, item)
-       }
+       afailenc.RequestId.InstanceId = 22
+       afailenc.Cause.Content = e2ap.E2AP_CauseContent_RICrequest
+       afailenc.Cause.Value = e2ap.E2AP_CauseValue_RICrequest_control_message_invalid
+
        // NOT SUPPORTED CURRENTLY
        afailenc.CriticalityDiagnostics.Present = false
        //      afailenc.CriticalityDiagnostics.ProcCodePresent = true