//
)
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-const (
- E2AP_IndicationTypeReport uint64 = 0
- E2AP_IndicationTypeInsert uint64 = 1
-)
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-const (
- E2AP_ActionTypeReport uint64 = 0
- E2AP_ActionTypeInsert uint64 = 1
- E2AP_ActionTypePolicy uint64 = 2
-)
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-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
-)
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-const (
- E2AP_InterfaceDirectionIncoming uint32 = 0
- E2AP_InterfaceDirectionOutgoing uint32 = 1
-)
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-const (
- E2AP_CriticalityReject uint8 = 0
- E2AP_CriticalityIgnore uint8 = 1
- E2AP_CriticalityNotify uint8 = 2
-)
-
-//-----------------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------------
-const (
- E2AP_ENBIDMacroPBits20 uint8 = 20
- E2AP_ENBIDHomeBits28 uint8 = 28
- E2AP_ENBIDShortMacroits18 uint8 = 18
- E2AP_ENBIDlongMacroBits21 uint8 = 21
-)
-
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
type RequestId struct {
- Id uint32
- Seq uint32
+ Id uint32 //RequestorId
+ InstanceId uint32 //Same as SubId in many place in the code. Name changed in E2 spec SubId -> InstanceId
}
func (rid *RequestId) String() string {
- return strconv.FormatUint((uint64)(rid.Id), 10) + string(":") + strconv.FormatUint((uint64)(rid.Seq), 10)
+ return strconv.FormatUint((uint64)(rid.Id), 10) + string(":") + strconv.FormatUint((uint64)(rid.InstanceId), 10)
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+
+const (
+ E2AP_ENBIDMacroPBits20 uint8 = 20
+ E2AP_ENBIDHomeBits28 uint8 = 28
+ E2AP_ENBIDShortMacroits18 uint8 = 18
+ E2AP_ENBIDlongMacroBits21 uint8 = 21
+)
+
type NodeId struct {
Bits uint8
Id uint32
//-----------------------------------------------------------------------------
type GlobalNodeId struct {
Present bool
- PlmnIdentity conv.PlmnIdentity
+ PlmnIdentity conv.PlmnIdentityTbcd
NodeId NodeId
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+
+const (
+ E2AP_InterfaceDirectionIncoming uint32 = 0
+ E2AP_InterfaceDirectionOutgoing uint32 = 1
+)
+
type EventTriggerDefinition struct {
- InterfaceId
- InterfaceDirection uint32
- ProcedureCode uint32
- TypeOfMessage uint64
+ Data OctetString
}
/*
}
*/
+type ActionDefinitionChoice struct {
+ Data OctetString
+}
+
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
-type ActionDefinition struct {
- Present bool
- StyleId uint64
- ParamId uint32
- //ParamValue
+type BitString struct {
+ UnusedBits uint8
+ Length uint64
+ Data []uint8
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+type OctetString struct {
+ Length uint64
+ Data []uint8
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const (
+ E2AP_SubSeqActionTypeContinue uint64 = 0
+ E2AP_SubSeqActionTypeWait uint64 = 1
+)
+
+var E2AP_SubSeqActionTypeStrMap = map[string]uint64{
+ "continue": E2AP_SubSeqActionTypeContinue,
+ "wait": E2AP_SubSeqActionTypeWait,
+}
+
+const (
+ E2AP_TimeToWaitZero uint64 = 0
+ E2AP_TimeToWaitW1ms uint64 = 1
+ E2AP_TimeToWaitW2ms uint64 = 2
+ E2AP_TimeToWaitW5ms uint64 = 3
+ E2AP_TimeToWaitW10ms uint64 = 4
+ E2AP_TimeToWaitW20ms uint64 = 5
+ E2AP_TimeToWaitW30ms uint64 = 6
+ E2AP_TimeToWaitW40ms uint64 = 7
+ E2AP_TimeToWaitW50ms uint64 = 8
+ E2AP_TimeToWaitW100ms uint64 = 9
+ E2AP_TimeToWaitW200ms uint64 = 10
+ E2AP_TimeToWaitW500ms uint64 = 11
+ E2AP_TimeToWaitW1s uint64 = 12
+ E2AP_TimeToWaitW2s uint64 = 13
+ E2AP_TimeToWaitW5s uint64 = 14
+ E2AP_TimeToWaitW10s uint64 = 15
+ E2AP_TimeToWaitW20s uint64 = 16
+ E2AP_TimeToWaitW60 uint64 = 17
+)
+
+var E2AP_TimeToWaitStrMap = map[string]uint64{
+ "zero": E2AP_TimeToWaitZero,
+ "w1ms": E2AP_TimeToWaitW1ms,
+ "w2ms": E2AP_TimeToWaitW2ms,
+ "w5ms": E2AP_TimeToWaitW5ms,
+ "w10ms": E2AP_TimeToWaitW10ms,
+ "w20ms": E2AP_TimeToWaitW20ms,
+ "w30ms": E2AP_TimeToWaitW30ms,
+ "w40ms": E2AP_TimeToWaitW40ms,
+ "w50ms": E2AP_TimeToWaitW50ms,
+ "w100ms": E2AP_TimeToWaitW100ms,
+ "w200ms": E2AP_TimeToWaitW200ms,
+ "w500ms": E2AP_TimeToWaitW500ms,
+ "w1s": E2AP_TimeToWaitW1s,
+ "w2s": E2AP_TimeToWaitW2s,
+ "w5s": E2AP_TimeToWaitW5s,
+ "w10s": E2AP_TimeToWaitW10s,
+ "w20s": E2AP_TimeToWaitW20s,
+ "w60s": E2AP_TimeToWaitW60,
+}
+
type SubsequentAction struct {
Present bool
Type uint64
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+
+const (
+ E2AP_ActionTypeReport uint64 = 0
+ E2AP_ActionTypeInsert uint64 = 1
+ E2AP_ActionTypePolicy uint64 = 2
+ E2AP_ActionTypeInvalid uint64 = 99 // For RIC internal usage only
+)
+
+var E2AP_ActionTypeStrMap = map[string]uint64{
+ "report": E2AP_ActionTypeReport,
+ "insert": E2AP_ActionTypeInsert,
+ "policy": E2AP_ActionTypePolicy,
+}
+
type ActionToBeSetupItem struct {
- ActionId uint64
- ActionType uint64
- ActionDefinition
+ ActionId uint64
+ ActionType uint64
+ RicActionDefinitionPresent bool
+ ActionDefinitionChoice
SubsequentAction
}
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+
+// Cause CHOICE, E2AP-v02.00
+const (
+ E2AP_CauseContent_RICrequest uint8 = 1
+ E2AP_CauseContent_RICservice uint8 = 2
+ E2AP_CauseContent_E2node uint8 = 3
+ E2AP_CauseContent_Transport uint8 = 4
+ E2AP_CauseContent_Protocol uint8 = 5
+ E2AP_CauseContent_Misc uint8 = 6
+)
+
+// CauseRICrequest ENUMERATED, E2AP-v02.00
+const (
+ E2AP_CauseValue_RICrequest_function_id_Invalid uint8 = 0
+ E2AP_CauseValue_RICrequest_action_not_supported uint8 = 1
+ E2AP_CauseValue_RICrequest_excessive_actions uint8 = 2
+ E2AP_CauseValue_RICrequest_duplicate_action uint8 = 3
+ E2AP_CauseValue_RICrequest_duplicate_event_trigger uint8 = 4
+ E2AP_CauseValue_RICrequest_function_resource_limit uint8 = 5
+ E2AP_CauseValue_RICrequest_request_id_unknown uint8 = 6
+ E2AP_CauseValue_RICrequest_inconsistent_action_subsequent_action_sequence uint8 = 7
+ E2AP_CauseValue_RICrequest_control_message_invalid uint8 = 8
+ E2AP_CauseValue_RICrequest_ric_call_process_id_invalid uint8 = 9
+ E2AP_CauseValue_RICrequest_control_timer_expired uint8 = 10
+ E2AP_CauseValue_RICrequest_control_failed_to_execute uint8 = 11
+ E2AP_CauseValue_RICrequest_system_not_ready uint8 = 12
+ E2AP_CauseValue_RICrequest_unspecified uint8 = 13
+)
+
type Cause struct {
- Content uint8
- CauseVal uint8
+ Content uint8
+ Value uint8
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+const (
+ E2AP_CriticalityReject uint8 = 0
+ E2AP_CriticalityIgnore uint8 = 1
+ E2AP_CriticalityNotify uint8 = 2
+)
+
type CriticalityDiagnosticsIEListItem struct {
IeCriticality uint8 //Crit
IeID uint32