RIC-867: Submgr adaptations to E2APv2.0
[ric-plt/submgr.git] / e2ap / pkg / e2ap / msg_e2ap.go
index 8020049..35711a6 100644 (file)
@@ -119,12 +119,12 @@ func (msgInfo *MessageInfo) String() string {
 //
 //-----------------------------------------------------------------------------
 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)
 }
 
 //-----------------------------------------------------------------------------
@@ -183,10 +183,7 @@ const (
 )
 
 type EventTriggerDefinition struct {
-       InterfaceId
-       InterfaceDirection uint32
-       ProcedureCode      uint32
-       TypeOfMessage      uint64
+       Data OctetString
 }
 
 /*
@@ -198,14 +195,25 @@ type CallProcessId struct {
 }
 */
 
+type ActionDefinitionChoice struct {
+       Data OctetString
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+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
 }
 
 //-----------------------------------------------------------------------------
@@ -216,27 +224,53 @@ const (
        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 = 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_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
@@ -254,10 +288,17 @@ const (
        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
 }
 
@@ -265,41 +306,32 @@ type ActionToBeSetupItem struct {
 //
 //-----------------------------------------------------------------------------
 
+// Cause CHOICE, E2AP-v02.00
 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
+       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
 )
 
-//const (
-//     E2AP_CauseValue_RadioNetwork_ uint8 = 0
-//)
-//const (
-//     E2AP_CauseValue_Transport_ uint8 = 0
-//)
-//const (
-//     E2AP_CauseValue_Protocol_ uint8 = 0
-//)
-//const (
-//     E2AP_CauseValue_Misc_ uint8 = 0
-//)
-
+// CauseRICrequest ENUMERATED, E2AP-v02.00
 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
+       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 {