testCtxt.testPrint("########## ##########")
testCtxt.testPrint("init")
testCtxt.testPrint("pack")
+
err, packedMsg := e2SubsReq.Pack(areqenc)
if err != nil {
testCtxt.testError(t, "Pack failed: %s", err.Error())
}
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())
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++ {
+
+ areqenc.EventTriggerDefinition.NBX2EventTriggerDefinitionPresent = msgContent.NBX2EventTriggerDefinitionPresent
+ areqenc.EventTriggerDefinition.NBNRTEventTriggerDefinitionPresent = msgContent.NBNRTEventTriggerDefinitionPresent
+
+ if areqenc.EventTriggerDefinition.NBX2EventTriggerDefinitionPresent {
+ //Bits 20, 28(works), 18, 21 (asn1 problems)
+ // if msgContent.
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Set("310150")
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDHomeBits28
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 202251
+ testCtxt.SetDesc("SubsReq-28bit")
+
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Set("310150")
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDShortMacroits18
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 55
+ //testCtxt.SetDesc("SubsReq-18bit")
+
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Set("310150")
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDMacroPBits20
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 55
+ //testCtxt.SetDesc("SubsReq-20bit")
+
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.Present = true
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.PlmnIdentity.Set("310150")
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Bits = e2ap.E2AP_ENBIDlongMacroBits21
+ //areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceId.GlobalEnbId.NodeId.Id = 55
+ //testCtxt.SetDesc("SubsReq-21bit")
+
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.InterfaceDirection = e2ap.E2AP_InterfaceDirectionIncoming
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.ProcedureCode = 35
+ areqenc.EventTriggerDefinition.X2EventTriggerDefinition.TypeOfMessage = e2ap.E2AP_InitiatingMessage
+ } else if areqenc.EventTriggerDefinition.NBNRTEventTriggerDefinitionPresent == true {
+ areqenc.EventTriggerDefinition.NBNRTEventTriggerDefinition.TriggerNature = e2ap.NRTTriggerNature_now
+ }
+
+ 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
+ item.ActionDefinitionChoice.ActionDefinitionX2Format1Present = msgContent.ActionDefinitionX2Format1Present
+ item.ActionDefinitionChoice.ActionDefinitionX2Format2Present = msgContent.ActionDefinitionX2Format2Present
+ item.ActionDefinitionChoice.ActionDefinitionNRTFormat1Present = msgContent.ActionDefinitionNRTFormat1Present
+
+ if item.RicActionDefinitionPresent {
+ if item.ActionDefinitionChoice.ActionDefinitionX2Format1Present {
+ item.ActionDefinitionChoice.ActionDefinitionX2Format1.StyleID = 99
+ // 1..255
+ for index2 := 0; index2 < 1; index2++ {
+ actionParameterItem := e2ap.ActionParameterItem{}
+ actionParameterItem.ParameterID = 11
+ if msgContent.ActionParameterValueIntPresent {
+ actionParameterItem.ActionParameterValue.ValueIntPresent = true
+ actionParameterItem.ActionParameterValue.ValueInt = 100
+ } else if msgContent.ActionParameterValueEnumPresent {
+ actionParameterItem.ActionParameterValue.ValueEnumPresent = true
+ actionParameterItem.ActionParameterValue.ValueEnum = 100
+ } else if msgContent.ActionParameterValueBoolPresent {
+ actionParameterItem.ActionParameterValue.ValueBoolPresent = true
+ actionParameterItem.ActionParameterValue.ValueBool = true
+ } else if msgContent.ActionParameterValueBitSPresent {
+ actionParameterItem.ActionParameterValue.ValueBitSPresent = true
+ actionParameterItem.ActionParameterValue.ValueBitS.UnusedBits = 0
+ actionParameterItem.ActionParameterValue.ValueBitS.Length = 3
+ actionParameterItem.ActionParameterValue.ValueBitS.Data =
+ append(actionParameterItem.ActionParameterValue.ValueBitS.Data, 1, 2, 3)
+ } else if msgContent.ActionParameterValueOctSPresent {
+ actionParameterItem.ActionParameterValue.ValueOctSPresent = true
+ actionParameterItem.ActionParameterValue.ValueOctS.Length = 3
+ actionParameterItem.ActionParameterValue.ValueOctS.Data =
+ append(actionParameterItem.ActionParameterValue.ValueOctS.Data, 1, 2, 3)
+ } else if msgContent.ActionParameterValuePrtSPresent {
+ actionParameterItem.ActionParameterValue.ValuePrtSPresent = true
+ actionParameterItem.ActionParameterValue.ValuePrtS.Length = 3
+ actionParameterItem.ActionParameterValue.ValuePrtS.Data =
+ append(actionParameterItem.ActionParameterValue.ValuePrtS.Data, 1, 2, 3)
+ }
+ item.ActionDefinitionChoice.ActionDefinitionX2Format1.ActionParameterItems =
+ append(item.ActionDefinitionChoice.ActionDefinitionX2Format1.ActionParameterItems, actionParameterItem)
+ }
+ } else if item.ActionDefinitionChoice.ActionDefinitionX2Format2Present {
+ // 1..15
+ for index2 := 0; index2 < 1; index2++ {
+ ranUEgroupItem := e2ap.RANueGroupItem{}
+ // 1..255
+ for index3 := 0; index3 < 1; index3++ {
+ ranUEGroupDefItem := e2ap.RANueGroupDefItem{}
+ ranUEGroupDefItem.RanParameterID = 22
+ ranUEGroupDefItem.RanParameterTest = e2ap.RANParameterTest_equal
+ if msgContent.RANParameterValueIntPresent {
+ ranUEGroupDefItem.RanParameterValue.ValueIntPresent = true
+ ranUEGroupDefItem.RanParameterValue.ValueInt = 100
+ } else if msgContent.RANParameterValueEnumPresent {
+ ranUEGroupDefItem.RanParameterValue.ValueEnumPresent = true
+ ranUEGroupDefItem.RanParameterValue.ValueEnum = 100
+ } else if msgContent.RANParameterValueBoolPresent {
+ ranUEGroupDefItem.RanParameterValue.ValueBoolPresent = true
+ ranUEGroupDefItem.RanParameterValue.ValueBool = true
+ } else if msgContent.RANParameterValueBitSPresent {
+ ranUEGroupDefItem.RanParameterValue.ValueBitSPresent = true
+ ranUEGroupDefItem.RanParameterValue.ValueBitS.UnusedBits = 0
+ ranUEGroupDefItem.RanParameterValue.ValueBitS.Length = 3
+ ranUEGroupDefItem.RanParameterValue.ValueBitS.Data =
+ append(ranUEGroupDefItem.RanParameterValue.ValueBitS.Data, 1, 2, 3)
+ } else if msgContent.RANParameterValueOctSPresent {
+ ranUEGroupDefItem.RanParameterValue.ValueOctSPresent = true
+ ranUEGroupDefItem.RanParameterValue.ValueOctS.Length = 3
+ ranUEGroupDefItem.RanParameterValue.ValueOctS.Data =
+ append(ranUEGroupDefItem.RanParameterValue.ValueOctS.Data, 1, 2, 3)
+ } else if msgContent.RANParameterValuePrtSPresent {
+ ranUEGroupDefItem.RanParameterValue.ValuePrtSPresent = true
+ ranUEGroupDefItem.RanParameterValue.ValuePrtS.Length = 3
+ ranUEGroupDefItem.RanParameterValue.ValuePrtS.Data =
+ append(ranUEGroupDefItem.RanParameterValue.ValuePrtS.Data, 1, 2, 3)
+ }
+ ranUEgroupItem.RanUEgroupDefinition.RanUEGroupDefItems =
+ append(ranUEgroupItem.RanUEgroupDefinition.RanUEGroupDefItems, ranUEGroupDefItem)
+ }
+ // 1..255
+ for index4 := 0; index4 < 1; index4++ {
+ ranParameterItem := e2ap.RANParameterItem{}
+ ranParameterItem.RanParameterID = 33
+ if msgContent.RANParameterValueIntPresent {
+ ranParameterItem.RanParameterValue.ValueIntPresent = true
+ ranParameterItem.RanParameterValue.ValueInt = 100
+ } else if msgContent.RANParameterValueEnumPresent {
+ ranParameterItem.RanParameterValue.ValueEnumPresent = true
+ ranParameterItem.RanParameterValue.ValueEnum = 100
+ } else if msgContent.RANParameterValueBoolPresent {
+ ranParameterItem.RanParameterValue.ValueBoolPresent = true
+ ranParameterItem.RanParameterValue.ValueBool = true
+ } else if msgContent.RANParameterValueBitSPresent {
+ ranParameterItem.RanParameterValue.ValueBitSPresent = true
+ ranParameterItem.RanParameterValue.ValueBitS.UnusedBits = 0
+ ranParameterItem.RanParameterValue.ValueBitS.Length = 3
+ ranParameterItem.RanParameterValue.ValueBitS.Data =
+ append(ranParameterItem.RanParameterValue.ValueBitS.Data, 1, 2, 3)
+ } else if msgContent.RANParameterValueOctSPresent {
+ ranParameterItem.RanParameterValue.ValueOctSPresent = true
+ ranParameterItem.RanParameterValue.ValueOctS.Length = 3
+ ranParameterItem.RanParameterValue.ValueOctS.Data =
+ append(ranParameterItem.RanParameterValue.ValueOctS.Data, 1, 2, 3)
+ } else if msgContent.RANParameterValuePrtSPresent {
+ ranParameterItem.RanParameterValue.ValuePrtSPresent = true
+ ranParameterItem.RanParameterValue.ValuePrtS.Length = 3
+ ranParameterItem.RanParameterValue.ValuePrtS.Data =
+ append(ranParameterItem.RanParameterValue.ValuePrtS.Data, 1, 2, 3)
+ }
+ ranUEgroupItem.RanPolicy.RanParameterItems =
+ append(ranUEgroupItem.RanPolicy.RanParameterItems, ranParameterItem)
+ }
+ ranUEgroupItem.RanUEgroupID = 2
+ item.ActionDefinitionChoice.ActionDefinitionX2Format2.RanUEgroupItems =
+ append(item.ActionDefinitionChoice.ActionDefinitionX2Format2.RanUEgroupItems, ranUEgroupItem)
+ }
+ } else if item.ActionDefinitionChoice.ActionDefinitionNRTFormat1Present {
+ // 1..255
+ for index2 := 0; index2 < 1; index2++ {
+ ranParameterItem := e2ap.RANParameterItem{}
+ ranParameterItem.RanParameterID = 33
+ if msgContent.RANParameterValueIntPresent {
+ ranParameterItem.RanParameterValue.ValueIntPresent = true
+ ranParameterItem.RanParameterValue.ValueInt = 100
+ } else if msgContent.RANParameterValueEnumPresent {
+ ranParameterItem.RanParameterValue.ValueEnumPresent = true
+ ranParameterItem.RanParameterValue.ValueEnum = 100
+ } else if msgContent.RANParameterValueBoolPresent {
+ ranParameterItem.RanParameterValue.ValueBoolPresent = true
+ ranParameterItem.RanParameterValue.ValueBool = true
+ } else if msgContent.RANParameterValueBitSPresent {
+ ranParameterItem.RanParameterValue.ValueBitSPresent = true
+ ranParameterItem.RanParameterValue.ValueBitS.UnusedBits = 0
+ ranParameterItem.RanParameterValue.ValueBitS.Length = 3
+ ranParameterItem.RanParameterValue.ValueBitS.Data =
+ append(ranParameterItem.RanParameterValue.ValueBitS.Data, 1, 2, 3)
+ } else if msgContent.RANParameterValueOctSPresent {
+ ranParameterItem.RanParameterValue.ValueOctSPresent = true
+ ranParameterItem.RanParameterValue.ValueOctS.Length = 3
+ ranParameterItem.RanParameterValue.ValueOctS.Data =
+ append(ranParameterItem.RanParameterValue.ValueOctS.Data, 1, 2, 3)
+ } else if msgContent.RANParameterValuePrtSPresent {
+ ranParameterItem.RanParameterValue.ValuePrtSPresent = true
+ ranParameterItem.RanParameterValue.ValuePrtS.Length = 3
+ ranParameterItem.RanParameterValue.ValuePrtS.Data =
+ append(ranParameterItem.RanParameterValue.ValuePrtS.Data, 1, 2, 3)
+ }
+ item.ActionDefinitionChoice.ActionDefinitionNRTFormat1.RanParameterList =
+ append(item.ActionDefinitionChoice.ActionDefinitionNRTFormat1.RanParameterList, ranParameterItem)
+ }
+ }
+ }
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) {
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{}
afailenc := e2ap.E2APSubscriptionFailure{}
afailenc.RequestId.Id = 1
- afailenc.RequestId.Seq = 22
+ afailenc.RequestId.InstanceId = 22
afailenc.FunctionId = 33
for index := uint64(0); index < 16; index++ {
item := e2ap.ActionNotAdmittedItem{}