X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2ap%2Fpkg%2Fe2ap%2Fmsg_e2ap.go;fp=e2ap%2Fpkg%2Fe2ap%2Fmsg_e2ap.go;h=a7edc741a0df8c128f087864ae9985a89fe5b0e1;hb=ff8dccd02d76eebfccc0b509ce0b42a2c1760e12;hp=0000000000000000000000000000000000000000;hpb=f1d0eb6a82e11f14f60e3636d526299ced0173ea;p=ric-plt%2Fsubmgr.git diff --git a/e2ap/pkg/e2ap/msg_e2ap.go b/e2ap/pkg/e2ap/msg_e2ap.go new file mode 100644 index 0000000..a7edc74 --- /dev/null +++ b/e2ap/pkg/e2ap/msg_e2ap.go @@ -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 +}