RIC-867: Submgr adaptations to E2APv2.0
[ric-plt/submgr.git] / e2ap / pkg / e2ap / e2ap_tests / msg_e2ap_subscription.go
index 02153af..eb95cc4 100644 (file)
@@ -34,86 +34,71 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionRequestWithData(t *testing.T,
 
        testCtxt.testPrint("########## ##########")
        testCtxt.testPrint("init")
-       seterr := e2SubsReq.Set(areqenc)
-       if seterr != nil {
-               testCtxt.testError(t, "set err: %s", seterr.Error())
-               return
-       }
-       testCtxt.testPrint("print:\n%s", e2SubsReq.String())
        testCtxt.testPrint("pack")
-       err, packedMsg := e2SubsReq.Pack(nil)
+
+       err, packedMsg := e2SubsReq.Pack(areqenc)
        if err != nil {
                testCtxt.testError(t, "Pack failed: %s", err.Error())
                return
        }
+       testCtxt.testPrint("print:\n%s", e2SubsReq.String())
        testCtxt.testPrint("unpack")
-       err = e2SubsReq.UnPack(packedMsg)
+
+       err, areqdec := e2SubsReq.UnPack(packedMsg)
        if err != nil {
                testCtxt.testError(t, "UnPack failed: %s", err.Error())
                return
        }
        testCtxt.testPrint("print:\n%s", e2SubsReq.String())
-       geterr, areqdec := e2SubsReq.Get()
-       if geterr != nil {
-               testCtxt.testError(t, "get nil: %s", geterr.Error())
-               return
-       }
+
        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.StringPut("310150")
-       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.StringPut("310150")
-       //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.StringPut("310150")
-       //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.StringPut("310150")
-       //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) {
@@ -127,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{}
@@ -138,34 +123,24 @@ 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)
        }
 
-       seterr := e2SubsResp.Set(&arespenc)
-       if seterr != nil {
-               testCtxt.testError(t, "set err: %s", seterr.Error())
-               return
-       }
-       testCtxt.testPrint("print:\n%s", e2SubsResp.String())
        testCtxt.testPrint("pack")
-       err, packedMsg := e2SubsResp.Pack(nil)
+       err, packedMsg := e2SubsResp.Pack(&arespenc)
        if err != nil {
                testCtxt.testError(t, "Pack failed: %s", err.Error())
                return
        }
+       testCtxt.testPrint("print:\n%s", e2SubsResp.String())
        testCtxt.testPrint("unpack")
-       err = e2SubsResp.UnPack(packedMsg)
+       err, arespdec := e2SubsResp.UnPack(packedMsg)
        if err != nil {
                testCtxt.testError(t, "UnPack failed: %s", err.Error())
                return
        }
        testCtxt.testPrint("print:\n%s", e2SubsResp.String())
-       geterr, arespdec := e2SubsResp.Get()
-       if geterr != nil {
-               testCtxt.testError(t, "get nil: %s", geterr.Error())
-               return
-       }
        testCtxt.testValueEquality(t, "msg", &arespenc, arespdec)
 }
 
@@ -180,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
@@ -205,30 +175,20 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionFailure(t *testing.T) {
        //              afailenc.CriticalityDiagnostics.CriticalityDiagnosticsIEList.Items = append(afailenc.CriticalityDiagnostics.CriticalityDiagnosticsIEList.Items, ieitem)
        //      }
 
-       seterr := e2SubsFail.Set(&afailenc)
-       if seterr != nil {
-               testCtxt.testError(t, "set err: %s", seterr.Error())
-               return
-       }
-       testCtxt.testPrint("print:\n%s", e2SubsFail.String())
        testCtxt.testPrint("pack")
-       err, packedMsg := e2SubsFail.Pack(nil)
+       err, packedMsg := e2SubsFail.Pack(&afailenc)
        if err != nil {
                testCtxt.testError(t, "Pack failed: %s", err.Error())
                return
        }
+       testCtxt.testPrint("print:\n%s", e2SubsFail.String())
        testCtxt.testPrint("unpack")
-       err = e2SubsFail.UnPack(packedMsg)
+       err, afaildec := e2SubsFail.UnPack(packedMsg)
        if err != nil {
                testCtxt.testError(t, "UnPack failed: %s", err.Error())
                return
        }
        testCtxt.testPrint("print:\n%s", e2SubsFail.String())
-       geterr, afaildec := e2SubsFail.Get()
-       if geterr != nil {
-               testCtxt.testError(t, "get nil: %s", geterr.Error())
-               return
-       }
        testCtxt.testValueEquality(t, "msg", &afailenc, afaildec)
 }
 
@@ -240,16 +200,11 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionRequestBuffers(t *testing.T) {
                        return
                }
                e2SubResp := testCtxt.packerif.NewPackerSubscriptionRequest()
-               err := e2SubResp.UnPack(packedData)
+               err, _ := e2SubResp.UnPack(packedData)
                if err != nil {
                        testCtxt.testError(t, "UnPack() Failed: %s [%s]", err.Error(), buffer)
                        return
                }
-               err, _ = e2SubResp.Get()
-               if err != nil {
-                       testCtxt.testError(t, "Get() Failed: %s [%s]", err.Error(), buffer)
-                       return
-               }
                testCtxt.testPrint("OK [%s]", buffer)
        }
 
@@ -265,34 +220,16 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionResponseBuffers(t *testing.T)
                        return
                }
                e2SubResp := testCtxt.packerif.NewPackerSubscriptionResponse()
-               err := e2SubResp.UnPack(packedData)
+               err, _ := e2SubResp.UnPack(packedData)
                if err != nil {
                        testCtxt.testError(t, "UnPack() Failed: %s [%s]", err.Error(), buffer)
                        return
                }
-               err, _ = e2SubResp.Get()
-               if err != nil {
-                       testCtxt.testError(t, "Get() Failed: %s [%s]", err.Error(), buffer)
-                       return
-               }
                testCtxt.testPrint("OK [%s]", buffer)
        }
 
        testCtxt.SetDesc("SubRespBuffer")
        testfunc("20c9402a000004ea7e00050000018009ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106e7ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106e8ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106e9ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106eaea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106ebea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106ecea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106edea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106eeea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106efea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106f0ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106f4ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106f5ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
-       testfunc("20c9402a000004ea7e000500000106f6ea6300020001ea6c000700ea6d00020000ea6e000908ea6f000400000040")
        testfunc("20c9401d000003ea7e0005004eec0004ea6300020001ea6c000700ea6d40020000")
 
 }
@@ -305,16 +242,11 @@ func (testCtxt *E2ApTests) E2ApTestMsgSubscriptionFailureBuffers(t *testing.T) {
                        return
                }
                e2SubResp := testCtxt.packerif.NewPackerSubscriptionFailure()
-               err := e2SubResp.UnPack(packedData)
+               err, _ := e2SubResp.UnPack(packedData)
                if err != nil {
                        testCtxt.testError(t, "UnPack() Failed: %s [%s]", err.Error(), buffer)
                        return
                }
-               err, _ = e2SubResp.Get()
-               if err != nil {
-                       testCtxt.testError(t, "Get() Failed: %s [%s]", err.Error(), buffer)
-                       return
-               }
                testCtxt.testPrint("OK [%s]", buffer)
        }