RICPLT-2910
[ric-plt/submgr.git] / e2ap / pkg / e2ap / msg_e2ap.go
diff --git a/e2ap/pkg/e2ap/msg_e2ap.go b/e2ap/pkg/e2ap/msg_e2ap.go
new file mode 100644 (file)
index 0000000..a7edc74
--- /dev/null
@@ -0,0 +1,313 @@
+/*
+==================================================================================
+  Copyright (c) 2019 AT&T Intellectual Property.
+  Copyright (c) 2019 Nokia
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================================
+*/
+
+package e2ap
+
+import (
+       "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/conv"
+       "strconv"
+)
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+
+// E2AP messages
+// Initiating message
+const E2AP_RICSubscriptionRequest uint64 = 1
+const E2AP_RICSubscriptionDeleteRequest uint64 = 2
+
+// const E2AP_RICServiceUpdate uint64 = 3
+// const E2AP_RICControlRequest uint64 = 4
+//
+// //const E2AP_X2SetupRequest uint64 = 5;
+// const E2AP_ENDCX2SetupRequest uint64 = 6
+// const E2AP_ResourceStatusRequest uint64 = 7
+// const E2AP_ENBConfigurationUpdate uint64 = 8
+// const E2AP_ENDCConfigurationUpdate uint64 = 9
+// const E2AP_ResetRequest uint64 = 10
+const E2AP_RICIndication uint64 = 11
+
+// const E2AP_RICServiceQuery uint64 = 12
+// const E2AP_LoadInformation uint64 = 13
+// const E2AP_GNBStatusIndication uint64 = 14
+// const E2AP_ResourceStatusUpdate uint64 = 15
+// const E2AP_ErrorIndication uint64 = 16
+//
+// // Successful outcome
+const E2AP_RICSubscriptionResponse uint64 = 1
+const E2AP_RICSubscriptionDeleteResponse uint64 = 2
+
+// const E2AP_RICserviceUpdateAcknowledge uint64 = 3
+// const E2AP_RICcontrolAcknowledge uint64 = 4
+//
+// //const E2AP_X2SetupResponse uint64 = 5;
+// const E2AP_ENDCX2SetupResponse uint64 = 6
+// const E2AP_ResourceStatusResponse uint64 = 7
+// const E2AP_ENBConfigurationUpdateAcknowledge uint64 = 8
+// const E2AP_ENDCConfigurationUpdateAcknowledge uint64 = 9
+// const E2AP_ResetResponse uint64 = 10
+//
+// // Unsuccessful outcome
+const E2AP_RICSubscriptionFailure uint64 = 1
+const E2AP_RICSubscriptionDeleteFailure uint64 = 2
+
+// const E2AP_RICserviceUpdateFailure uint64 = 3
+// const E2AP_RICcontrolFailure uint64 = 4
+//
+// //const E2AP_X2SetupFailure uint64 = 5;
+// const E2AP_ENDCX2SetupFailure uint64 = 6
+// const E2AP_ResourceStatusFailure uint64 = 7
+// const E2AP_ENBConfigurationUpdateFailure uint64 = 8
+// const E2AP_ENDCConfigurationUpdateFailure uint64 = 9
+//
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_IndicationTypeReport uint64 = 0
+const E2AP_IndicationTypeInsert uint64 = 1
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_ActionTypeReport uint64 = 0
+const E2AP_ActionTypeInsert uint64 = 1
+const E2AP_ActionTypePolicy uint64 = 2
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_SubSeqActionTypeContinue uint64 = 0
+const E2AP_SubSeqActionTypeWait uint64 = 1
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_TimeToWaitZero uint64 = 0
+const E2AP_TimeToWaitW1ms uint64 = 1
+const E2AP_TimeToWaitW2ms uint64 = 2
+const E2AP_TimeToWaitW5ms uint64 = 3
+const E2AP_TimeToWaitW10ms uint64 = 4
+const E2AP_TimeToWaitW20ms uint64 = 4
+const E2AP_TimeToWaitW30ms uint64 = 5
+const E2AP_TimeToWaitW40ms uint64 = 6
+const E2AP_TimeToWaitW50ms uint64 = 7
+const E2AP_TimeToWaitW100ms uint64 = 8
+const E2AP_TimeToWaitW200ms uint64 = 9
+const E2AP_TimeToWaitW500ms uint64 = 10
+const E2AP_TimeToWaitW1s uint64 = 11
+const E2AP_TimeToWaitW2s uint64 = 12
+const E2AP_TimeToWaitW5s uint64 = 13
+const E2AP_TimeToWaitW10s uint64 = 14
+const E2AP_TimeToWaitW20s uint64 = 15
+const E2AP_TimeToWaitW60 uint64 = 16
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_InterfaceDirectionIncoming uint32 = 0
+const E2AP_InterfaceDirectionOutgoing uint32 = 1
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_CriticalityReject uint8 = 0
+const E2AP_CriticalityIgnore uint8 = 1
+const E2AP_CriticalityNotify uint8 = 2
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_ENBIDMacroPBits20 uint8 = 20
+const E2AP_ENBIDHomeBits28 uint8 = 28
+const E2AP_ENBIDShortMacroits18 uint8 = 18
+const E2AP_ENBIDlongMacroBits21 uint8 = 21
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+const E2AP_InitiatingMessage uint64 = 1
+const E2AP_SuccessfulOutcome uint64 = 2
+const E2AP_UnsuccessfulOutcome uint64 = 3
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type RequestId struct {
+       Id  uint32
+       Seq uint32
+}
+
+func (rid *RequestId) String() string {
+       return strconv.FormatUint((uint64)(rid.Id), 10) + string(":") + strconv.FormatUint((uint64)(rid.Seq), 10)
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type FunctionId uint16
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+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.PlmnIdentity
+       NodeId       NodeId
+}
+
+func (gnid *GlobalNodeId) String() string {
+       return gnid.PlmnIdentity.String() + string(":") + gnid.NodeId.String()
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type InterfaceId struct {
+       GlobalEnbId GlobalNodeId
+       GlobalGnbId GlobalNodeId
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type EventTriggerDefinition struct {
+       InterfaceId
+       InterfaceDirection uint32
+       ProcedureCode      uint32
+       TypeOfMessage      uint64
+}
+
+/*
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type CallProcessId struct {
+  CallProcessIDVal uint32
+}
+*/
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type ActionDefinition struct {
+       Present bool
+       StyleId uint64
+       ParamId uint32
+       //ParamValue
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type SubsequentAction struct {
+       Present    bool
+       Type       uint64
+       TimetoWait uint64
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type ActionToBeSetupItem struct {
+       ActionId   uint64
+       ActionType uint64
+       ActionDefinition
+       SubsequentAction
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type Cause struct {
+       Content  uint8
+       CauseVal uint8
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type ActionAdmittedItem struct {
+       ActionId uint64
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type ActionAdmittedList struct {
+       Items []ActionAdmittedItem //16
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type ActionNotAdmittedItem struct {
+       ActionId uint64
+       Cause    Cause
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type ActionNotAdmittedList struct {
+       Items []ActionNotAdmittedItem //16
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type CriticalityDiagnosticsIEListItem struct {
+       IeCriticality uint8 //Crit
+       IeID          uint32
+       TypeOfError   uint8
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type CriticalityDiagnosticsIEList struct {
+       Items []CriticalityDiagnosticsIEListItem //256
+}
+
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+type CriticalityDiagnostics struct {
+       Present         bool
+       ProcCodePresent bool
+       ProcCode        uint64
+       TrigMsgPresent  bool
+       TrigMsg         uint64
+       ProcCritPresent bool
+       ProcCrit        uint8 //Crit
+       CriticalityDiagnosticsIEList
+}