X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2ap%2Fpkg%2Fe2ap%2Fmsg_e2ap.go;h=2ce2c175c4996d5648960c7ab41a061dad2ecc0d;hb=refs%2Fchanges%2F35%2F3635%2F1;hp=2784a2c7c455a2176fa40ed415abedcc83afd1e5;hpb=14f827331f7ae565d33cdf23c82f7794d3fc2d0d;p=ric-plt%2Fsubmgr.git diff --git a/e2ap/pkg/e2ap/msg_e2ap.go b/e2ap/pkg/e2ap/msg_e2ap.go index 2784a2c..2ce2c17 100644 --- a/e2ap/pkg/e2ap/msg_e2ap.go +++ b/e2ap/pkg/e2ap/msg_e2ap.go @@ -99,181 +99,299 @@ const ( //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -const ( - E2AP_IndicationTypeReport uint64 = 0 - E2AP_IndicationTypeInsert uint64 = 1 -) +type PackedData struct { + Buf []byte +} //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -const ( - E2AP_ActionTypeReport uint64 = 0 - E2AP_ActionTypeInsert uint64 = 1 - E2AP_ActionTypePolicy uint64 = 2 - E2AP_ActionTypeInvalid uint64 = 99 // For RIC internal usage only -) +type MessageInfo struct { + MsgType uint64 + MsgId uint64 +} + +func (msgInfo *MessageInfo) String() string { + return "msginfo(" + strconv.FormatUint((uint64)(msgInfo.MsgType), 10) + string(":") + strconv.FormatUint((uint64)(msgInfo.MsgId), 10) + ")" +} //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -const ( - E2AP_SubSeqActionTypeContinue uint64 = 0 - E2AP_SubSeqActionTypeWait uint64 = 1 -) +type RequestId struct { + Id uint32 + InstanceId uint32 +} + +func (rid *RequestId) String() string { + return strconv.FormatUint((uint64)(rid.Id), 10) + string(":") + strconv.FormatUint((uint64)(rid.InstanceId), 10) +} //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- +type FunctionId uint16 + +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- + const ( - E2AP_TimeToWaitZero uint64 = 0 - E2AP_TimeToWaitW1ms uint64 = 1 - E2AP_TimeToWaitW2ms uint64 = 2 - E2AP_TimeToWaitW5ms uint64 = 3 - E2AP_TimeToWaitW10ms uint64 = 4 - E2AP_TimeToWaitW20ms uint64 = 4 - E2AP_TimeToWaitW30ms uint64 = 5 - E2AP_TimeToWaitW40ms uint64 = 6 - E2AP_TimeToWaitW50ms uint64 = 7 - E2AP_TimeToWaitW100ms uint64 = 8 - E2AP_TimeToWaitW200ms uint64 = 9 - E2AP_TimeToWaitW500ms uint64 = 10 - E2AP_TimeToWaitW1s uint64 = 11 - E2AP_TimeToWaitW2s uint64 = 12 - E2AP_TimeToWaitW5s uint64 = 13 - E2AP_TimeToWaitW10s uint64 = 14 - E2AP_TimeToWaitW20s uint64 = 15 - E2AP_TimeToWaitW60 uint64 = 16 + E2AP_ENBIDMacroPBits20 uint8 = 20 + E2AP_ENBIDHomeBits28 uint8 = 28 + E2AP_ENBIDShortMacroits18 uint8 = 18 + E2AP_ENBIDlongMacroBits21 uint8 = 21 ) +type NodeId struct { + Bits uint8 + Id uint32 +} + +func (nid *NodeId) String() string { + return strconv.FormatUint((uint64)(nid.Id), 10) +} + //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- +type GlobalNodeId struct { + Present bool + PlmnIdentity conv.PlmnIdentityTbcd + NodeId NodeId +} + +func (gnid *GlobalNodeId) String() string { + return gnid.PlmnIdentity.String() + string(":") + gnid.NodeId.String() +} + +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type InterfaceId struct { + GlobalEnbId GlobalNodeId + GlobalGnbId GlobalNodeId +} + +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- + const ( E2AP_InterfaceDirectionIncoming uint32 = 0 E2AP_InterfaceDirectionOutgoing uint32 = 1 ) +type EventTriggerDefinition struct { + NBX2EventTriggerDefinitionPresent bool + X2EventTriggerDefinition + NBNRTEventTriggerDefinitionPresent bool + NBNRTEventTriggerDefinition +} + //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -const ( - E2AP_CriticalityReject uint8 = 0 - E2AP_CriticalityIgnore uint8 = 1 - E2AP_CriticalityNotify uint8 = 2 -) +type X2EventTriggerDefinition struct { + InterfaceId + InterfaceDirection uint32 + ProcedureCode uint32 + TypeOfMessage uint64 +} //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -const ( - E2AP_ENBIDMacroPBits20 uint8 = 20 - E2AP_ENBIDHomeBits28 uint8 = 28 - E2AP_ENBIDShortMacroits18 uint8 = 18 - E2AP_ENBIDlongMacroBits21 uint8 = 21 +type NBNRTEventTriggerDefinition struct { + TriggerNature uint8 +} + +const ( // enum NRTTriggerNature + NRTTriggerNature_now = iota + NRTTriggerNature_onchange ) +/* //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type PackedData struct { - Buf []byte +type CallProcessId struct { + CallProcessIDVal uint32 +} +*/ + +type ActionDefinitionChoice struct { + ActionDefinitionX2Format1Present bool + ActionDefinitionX2Format1 E2SMgNBX2actionDefinition + ActionDefinitionX2Format2Present bool + ActionDefinitionX2Format2 ActionDefinitionFormat2 + ActionDefinitionNRTFormat1Present bool + ActionDefinitionNRTFormat1 E2SMgNBNRTActionDefinitionFormat1 } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type MessageInfo struct { - MsgType uint64 - MsgId uint64 +type E2SMgNBNRTActionDefinitionFormat1 struct { + RanParameterList []RANParameterItem // 1..255 } -func (msgInfo *MessageInfo) String() string { - return "msginfo(" + strconv.FormatUint((uint64)(msgInfo.MsgType), 10) + string(":") + strconv.FormatUint((uint64)(msgInfo.MsgId), 10) + ")" +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type E2SMgNBX2actionDefinition struct { + StyleID uint64 + ActionParameterItems []ActionParameterItem // 1..255 } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type RequestId struct { - Id uint32 - Seq uint32 +type ActionParameterItem struct { + ParameterID uint32 // 1..255 + ActionParameterValue ActionParameterValue } -func (rid *RequestId) String() string { - return strconv.FormatUint((uint64)(rid.Id), 10) + string(":") + strconv.FormatUint((uint64)(rid.Seq), 10) +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type ActionParameterValue struct { + ValueIntPresent bool + ValueInt int64 + ValueEnumPresent bool + ValueEnum int64 + ValueBoolPresent bool + ValueBool bool + ValueBitSPresent bool + ValueBitS BitString + ValueOctSPresent bool + ValueOctS OctetString + ValuePrtSPresent bool + ValuePrtS OctetString } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type FunctionId uint16 +type ActionDefinitionFormat2 struct { + RanUEgroupItems []RANueGroupItem // 1..15 +} //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type NodeId struct { - Bits uint8 - Id uint32 +type RANueGroupItem struct { + RanUEgroupID int64 + RanUEgroupDefinition RANueGroupDefinition + RanPolicy RANimperativePolicy } -func (nid *NodeId) String() string { - return strconv.FormatUint((uint64)(nid.Id), 10) +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type RANueGroupDefinition struct { + RanUEGroupDefItems []RANueGroupDefItem // 1..255 } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type GlobalNodeId struct { - Present bool - PlmnIdentity conv.PlmnIdentityTbcd - NodeId NodeId +type RANimperativePolicy struct { + RanParameterItems []RANParameterItem // 1..255 } -func (gnid *GlobalNodeId) String() string { - return gnid.PlmnIdentity.String() + string(":") + gnid.NodeId.String() +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type RANueGroupDefItem struct { + RanParameterID uint32 // 1..255 + RanParameterTest uint8 + RanParameterValue RANParameterValue } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type InterfaceId struct { - GlobalEnbId GlobalNodeId - GlobalGnbId GlobalNodeId +type RANParameterItem struct { + RanParameterID uint8 // 1..255 + RanParameterValue RANParameterValue } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type EventTriggerDefinition struct { - InterfaceId - InterfaceDirection uint32 - ProcedureCode uint32 - TypeOfMessage uint64 +const ( // enum RANParameterTest + RANParameterTest_equal = iota + RANParameterTest_greaterthan + RANParameterTest_lessthan + RANParameterTest_contains + RANParameterTest_present +) + +//----------------------------------------------------------------------------- +// +//----------------------------------------------------------------------------- +type RANParameterValue struct { + ValueIntPresent bool + ValueInt int64 + ValueEnumPresent bool + ValueEnum int64 + ValueBoolPresent bool + ValueBool bool + ValueBitSPresent bool + ValueBitS BitString + ValueOctSPresent bool + ValueOctS OctetString + ValuePrtSPresent bool + ValuePrtS OctetString } -/* //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type CallProcessId struct { - CallProcessIDVal uint32 +type BitString struct { + UnusedBits uint8 + Length uint64 + Data []uint8 } -*/ //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- -type ActionDefinition struct { - Present bool - StyleId uint64 - ParamId uint32 - //ParamValue +type OctetString struct { + Length uint64 + Data []uint8 } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- +const ( + E2AP_SubSeqActionTypeContinue uint64 = 0 + E2AP_SubSeqActionTypeWait uint64 = 1 +) + +const ( + E2AP_TimeToWaitZero uint64 = 0 + E2AP_TimeToWaitW1ms uint64 = 1 + E2AP_TimeToWaitW2ms uint64 = 2 + E2AP_TimeToWaitW5ms uint64 = 3 + E2AP_TimeToWaitW10ms uint64 = 4 + E2AP_TimeToWaitW20ms uint64 = 4 + E2AP_TimeToWaitW30ms uint64 = 5 + E2AP_TimeToWaitW40ms uint64 = 6 + E2AP_TimeToWaitW50ms uint64 = 7 + E2AP_TimeToWaitW100ms uint64 = 8 + E2AP_TimeToWaitW200ms uint64 = 9 + E2AP_TimeToWaitW500ms uint64 = 10 + E2AP_TimeToWaitW1s uint64 = 11 + E2AP_TimeToWaitW2s uint64 = 12 + E2AP_TimeToWaitW5s uint64 = 13 + E2AP_TimeToWaitW10s uint64 = 14 + E2AP_TimeToWaitW20s uint64 = 15 + E2AP_TimeToWaitW60 uint64 = 16 +) + type SubsequentAction struct { Present bool Type uint64 @@ -283,19 +401,66 @@ type SubsequentAction struct { //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- + +const ( + E2AP_ActionTypeReport uint64 = 0 + E2AP_ActionTypeInsert uint64 = 1 + E2AP_ActionTypePolicy uint64 = 2 + E2AP_ActionTypeInvalid uint64 = 99 // For RIC internal usage only +) + type ActionToBeSetupItem struct { - ActionId uint64 - ActionType uint64 - ActionDefinition + ActionId uint64 + ActionType uint64 + RicActionDefinitionPresent bool + ActionDefinitionChoice SubsequentAction } //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- + +const ( + E2AP_CauseContent_RadioNetwork uint8 = 1 + E2AP_CauseContent_Transport uint8 = 2 + E2AP_CauseContent_Protocol uint8 = 3 + E2AP_CauseContent_Misc uint8 = 4 + E2AP_CauseContent_Ric uint8 = 5 +) + +//const ( +// E2AP_CauseValue_RadioNetwork_ uint8 = 0 +//) +//const ( +// E2AP_CauseValue_Transport_ uint8 = 0 +//) +//const ( +// E2AP_CauseValue_Protocol_ uint8 = 0 +//) +//const ( +// E2AP_CauseValue_Misc_ uint8 = 0 +//) + +const ( + E2AP_CauseValue_Ric_function_id_Invalid uint8 = 0 + E2AP_CauseValue_Ric_action_not_supported uint8 = 1 + E2AP_CauseValue_Ric_excessive_actions uint8 = 2 + E2AP_CauseValue_Ric_duplicate_action uint8 = 3 + E2AP_CauseValue_Ric_duplicate_event uint8 = 4 + E2AP_CauseValue_Ric_function_resource_limit uint8 = 5 + E2AP_CauseValue_Ric_request_id_unknown uint8 = 6 + E2AP_CauseValue_Ric_inconsistent_action_subsequent_action_sequence uint8 = 7 + E2AP_CauseValue_Ric_control_message_invalid uint8 = 8 + E2AP_CauseValue_Ric_call_process_id_invalid uint8 = 9 + E2AP_CauseValue_Ric_function_not_required uint8 = 10 + E2AP_CauseValue_Ric_excessive_functions uint8 = 11 + E2AP_CauseValue_Ric_ric_resource_limi uint8 = 12 +) + type Cause struct { - Content uint8 - CauseVal uint8 + Content uint8 + Value uint8 } //----------------------------------------------------------------------------- @@ -330,6 +495,12 @@ type ActionNotAdmittedList struct { //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- +const ( + E2AP_CriticalityReject uint8 = 0 + E2AP_CriticalityIgnore uint8 = 1 + E2AP_CriticalityNotify uint8 = 2 +) + type CriticalityDiagnosticsIEListItem struct { IeCriticality uint8 //Crit IeID uint32