2 ==================================================================================
3 Copyright (c) 2019 AT&T Intellectual Property.
4 Copyright (c) 2019 Nokia
6 Licensed under the Apache License, Version 2.0 (the "License");
7 you may not use this file except in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software
13 distributed under the License is distributed on an "AS IS" BASIS,
14 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 See the License for the specific language governing permissions and
16 limitations under the License.
17 ==================================================================================
23 "gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/conv"
27 //-----------------------------------------------------------------------------
29 //-----------------------------------------------------------------------------
31 E2AP_InitiatingMessage uint64 = 1
32 E2AP_SuccessfulOutcome uint64 = 2
33 E2AP_UnsuccessfulOutcome uint64 = 3
36 //-----------------------------------------------------------------------------
38 //-----------------------------------------------------------------------------
42 E2AP_RICSubscriptionRequest uint64 = 1
43 E2AP_RICSubscriptionDeleteRequest uint64 = 2
45 // E2AP_RICServiceUpdate uint64 = 3
46 // E2AP_RICControlRequest uint64 = 4
48 // //E2AP_X2SetupRequest uint64 = 5;
49 // E2AP_ENDCX2SetupRequest uint64 = 6
50 // E2AP_ResourceStatusRequest uint64 = 7
51 // E2AP_ENBConfigurationUpdate uint64 = 8
52 // E2AP_ENDCConfigurationUpdate uint64 = 9
53 // E2AP_ResetRequest uint64 = 10
54 // E2AP_RICIndication uint64 = 11
56 // E2AP_RICServiceQuery uint64 = 12
57 // E2AP_LoadInformation uint64 = 13
58 // E2AP_GNBStatusIndication uint64 = 14
59 // E2AP_ResourceStatusUpdate uint64 = 15
60 // E2AP_ErrorIndication uint64 = 16
67 E2AP_RICSubscriptionResponse uint64 = 1
68 E2AP_RICSubscriptionDeleteResponse uint64 = 2
70 // E2AP_RICserviceUpdateAcknowledge uint64 = 3
71 // E2AP_RICcontrolAcknowledge uint64 = 4
73 // //E2AP_X2SetupResponse uint64 = 5;
74 // E2AP_ENDCX2SetupResponse uint64 = 6
75 // E2AP_ResourceStatusResponse uint64 = 7
76 // E2AP_ENBConfigurationUpdateAcknowledge uint64 = 8
77 // E2AP_ENDCConfigurationUpdateAcknowledge uint64 = 9
78 // E2AP_ResetResponse uint64 = 10
83 // Unsuccessful outcome
85 E2AP_RICSubscriptionFailure uint64 = 1
86 E2AP_RICSubscriptionDeleteFailure uint64 = 2
88 // E2AP_RICserviceUpdateFailure uint64 = 3
89 // E2AP_RICcontrolFailure uint64 = 4
91 // //E2AP_X2SetupFailure uint64 = 5;
92 // E2AP_ENDCX2SetupFailure uint64 = 6
93 // E2AP_ResourceStatusFailure uint64 = 7
94 // E2AP_ENBConfigurationUpdateFailure uint64 = 8
95 // E2AP_ENDCConfigurationUpdateFailure uint64 = 9
99 //-----------------------------------------------------------------------------
101 //-----------------------------------------------------------------------------
102 type PackedData struct {
106 //-----------------------------------------------------------------------------
108 //-----------------------------------------------------------------------------
109 type MessageInfo struct {
114 func (msgInfo *MessageInfo) String() string {
115 return "msginfo(" + strconv.FormatUint((uint64)(msgInfo.MsgType), 10) + string(":") + strconv.FormatUint((uint64)(msgInfo.MsgId), 10) + ")"
118 //-----------------------------------------------------------------------------
120 //-----------------------------------------------------------------------------
121 type RequestId struct {
126 func (rid *RequestId) String() string {
127 return strconv.FormatUint((uint64)(rid.Id), 10) + string(":") + strconv.FormatUint((uint64)(rid.InstanceId), 10)
130 //-----------------------------------------------------------------------------
132 //-----------------------------------------------------------------------------
133 type FunctionId uint16
135 //-----------------------------------------------------------------------------
137 //-----------------------------------------------------------------------------
140 E2AP_ENBIDMacroPBits20 uint8 = 20
141 E2AP_ENBIDHomeBits28 uint8 = 28
142 E2AP_ENBIDShortMacroits18 uint8 = 18
143 E2AP_ENBIDlongMacroBits21 uint8 = 21
151 func (nid *NodeId) String() string {
152 return strconv.FormatUint((uint64)(nid.Id), 10)
155 //-----------------------------------------------------------------------------
157 //-----------------------------------------------------------------------------
158 type GlobalNodeId struct {
160 PlmnIdentity conv.PlmnIdentityTbcd
164 func (gnid *GlobalNodeId) String() string {
165 return gnid.PlmnIdentity.String() + string(":") + gnid.NodeId.String()
168 //-----------------------------------------------------------------------------
170 //-----------------------------------------------------------------------------
171 type InterfaceId struct {
172 GlobalEnbId GlobalNodeId
173 GlobalGnbId GlobalNodeId
176 //-----------------------------------------------------------------------------
178 //-----------------------------------------------------------------------------
181 E2AP_InterfaceDirectionIncoming uint32 = 0
182 E2AP_InterfaceDirectionOutgoing uint32 = 1
185 type EventTriggerDefinition struct {
186 NBX2EventTriggerDefinitionPresent bool
187 X2EventTriggerDefinition
188 NBNRTEventTriggerDefinitionPresent bool
189 NBNRTEventTriggerDefinition
192 //-----------------------------------------------------------------------------
194 //-----------------------------------------------------------------------------
195 type X2EventTriggerDefinition struct {
197 InterfaceDirection uint32
202 //-----------------------------------------------------------------------------
204 //-----------------------------------------------------------------------------
205 type NBNRTEventTriggerDefinition struct {
209 const ( // enum NRTTriggerNature
210 NRTTriggerNature_now = iota
211 NRTTriggerNature_onchange
215 //-----------------------------------------------------------------------------
217 //-----------------------------------------------------------------------------
218 type CallProcessId struct {
219 CallProcessIDVal uint32
223 type ActionDefinitionChoice struct {
224 ActionDefinitionX2Format1Present bool
225 ActionDefinitionX2Format1 E2SMgNBX2actionDefinition
226 ActionDefinitionX2Format2Present bool
227 ActionDefinitionX2Format2 ActionDefinitionFormat2
228 ActionDefinitionNRTFormat1Present bool
229 ActionDefinitionNRTFormat1 E2SMgNBNRTActionDefinitionFormat1
232 //-----------------------------------------------------------------------------
234 //-----------------------------------------------------------------------------
235 type E2SMgNBNRTActionDefinitionFormat1 struct {
236 RanParameterList []RANParameterItem // 1..255
239 //-----------------------------------------------------------------------------
241 //-----------------------------------------------------------------------------
242 type E2SMgNBX2actionDefinition struct {
244 ActionParameterItems []ActionParameterItem // 1..255
247 //-----------------------------------------------------------------------------
249 //-----------------------------------------------------------------------------
250 type ActionParameterItem struct {
251 ParameterID uint32 // 1..255
252 ActionParameterValue ActionParameterValue
255 //-----------------------------------------------------------------------------
257 //-----------------------------------------------------------------------------
258 type ActionParameterValue struct {
261 ValueEnumPresent bool
263 ValueBoolPresent bool
265 ValueBitSPresent bool
267 ValueOctSPresent bool
268 ValueOctS OctetString
269 ValuePrtSPresent bool
270 ValuePrtS OctetString
273 //-----------------------------------------------------------------------------
275 //-----------------------------------------------------------------------------
276 type ActionDefinitionFormat2 struct {
277 RanUEgroupItems []RANueGroupItem // 1..15
280 //-----------------------------------------------------------------------------
282 //-----------------------------------------------------------------------------
283 type RANueGroupItem struct {
285 RanUEgroupDefinition RANueGroupDefinition
286 RanPolicy RANimperativePolicy
289 //-----------------------------------------------------------------------------
291 //-----------------------------------------------------------------------------
292 type RANueGroupDefinition struct {
293 RanUEGroupDefItems []RANueGroupDefItem // 1..255
296 //-----------------------------------------------------------------------------
298 //-----------------------------------------------------------------------------
299 type RANimperativePolicy struct {
300 RanParameterItems []RANParameterItem // 1..255
303 //-----------------------------------------------------------------------------
305 //-----------------------------------------------------------------------------
306 type RANueGroupDefItem struct {
307 RanParameterID uint32 // 1..255
308 RanParameterTest uint8
309 RanParameterValue RANParameterValue
312 //-----------------------------------------------------------------------------
314 //-----------------------------------------------------------------------------
315 type RANParameterItem struct {
316 RanParameterID uint8 // 1..255
317 RanParameterValue RANParameterValue
320 //-----------------------------------------------------------------------------
322 //-----------------------------------------------------------------------------
323 const ( // enum RANParameterTest
324 RANParameterTest_equal = iota
325 RANParameterTest_greaterthan
326 RANParameterTest_lessthan
327 RANParameterTest_contains
328 RANParameterTest_present
331 //-----------------------------------------------------------------------------
333 //-----------------------------------------------------------------------------
334 type RANParameterValue struct {
337 ValueEnumPresent bool
339 ValueBoolPresent bool
341 ValueBitSPresent bool
343 ValueOctSPresent bool
344 ValueOctS OctetString
345 ValuePrtSPresent bool
346 ValuePrtS OctetString
349 //-----------------------------------------------------------------------------
351 //-----------------------------------------------------------------------------
352 type BitString struct {
358 //-----------------------------------------------------------------------------
360 //-----------------------------------------------------------------------------
361 type OctetString struct {
366 //-----------------------------------------------------------------------------
368 //-----------------------------------------------------------------------------
370 E2AP_SubSeqActionTypeContinue uint64 = 0
371 E2AP_SubSeqActionTypeWait uint64 = 1
375 E2AP_TimeToWaitZero uint64 = 0
376 E2AP_TimeToWaitW1ms uint64 = 1
377 E2AP_TimeToWaitW2ms uint64 = 2
378 E2AP_TimeToWaitW5ms uint64 = 3
379 E2AP_TimeToWaitW10ms uint64 = 4
380 E2AP_TimeToWaitW20ms uint64 = 4
381 E2AP_TimeToWaitW30ms uint64 = 5
382 E2AP_TimeToWaitW40ms uint64 = 6
383 E2AP_TimeToWaitW50ms uint64 = 7
384 E2AP_TimeToWaitW100ms uint64 = 8
385 E2AP_TimeToWaitW200ms uint64 = 9
386 E2AP_TimeToWaitW500ms uint64 = 10
387 E2AP_TimeToWaitW1s uint64 = 11
388 E2AP_TimeToWaitW2s uint64 = 12
389 E2AP_TimeToWaitW5s uint64 = 13
390 E2AP_TimeToWaitW10s uint64 = 14
391 E2AP_TimeToWaitW20s uint64 = 15
392 E2AP_TimeToWaitW60 uint64 = 16
395 type SubsequentAction struct {
401 //-----------------------------------------------------------------------------
403 //-----------------------------------------------------------------------------
406 E2AP_ActionTypeReport uint64 = 0
407 E2AP_ActionTypeInsert uint64 = 1
408 E2AP_ActionTypePolicy uint64 = 2
409 E2AP_ActionTypeInvalid uint64 = 99 // For RIC internal usage only
412 type ActionToBeSetupItem struct {
415 RicActionDefinitionPresent bool
416 ActionDefinitionChoice
420 //-----------------------------------------------------------------------------
422 //-----------------------------------------------------------------------------
425 E2AP_CauseContent_RadioNetwork uint8 = 1
426 E2AP_CauseContent_Transport uint8 = 2
427 E2AP_CauseContent_Protocol uint8 = 3
428 E2AP_CauseContent_Misc uint8 = 4
429 E2AP_CauseContent_Ric uint8 = 5
433 // E2AP_CauseValue_RadioNetwork_ uint8 = 0
436 // E2AP_CauseValue_Transport_ uint8 = 0
439 // E2AP_CauseValue_Protocol_ uint8 = 0
442 // E2AP_CauseValue_Misc_ uint8 = 0
446 E2AP_CauseValue_Ric_function_id_Invalid uint8 = 0
447 E2AP_CauseValue_Ric_action_not_supported uint8 = 1
448 E2AP_CauseValue_Ric_excessive_actions uint8 = 2
449 E2AP_CauseValue_Ric_duplicate_action uint8 = 3
450 E2AP_CauseValue_Ric_duplicate_event uint8 = 4
451 E2AP_CauseValue_Ric_function_resource_limit uint8 = 5
452 E2AP_CauseValue_Ric_request_id_unknown uint8 = 6
453 E2AP_CauseValue_Ric_inconsistent_action_subsequent_action_sequence uint8 = 7
454 E2AP_CauseValue_Ric_control_message_invalid uint8 = 8
455 E2AP_CauseValue_Ric_call_process_id_invalid uint8 = 9
456 E2AP_CauseValue_Ric_function_not_required uint8 = 10
457 E2AP_CauseValue_Ric_excessive_functions uint8 = 11
458 E2AP_CauseValue_Ric_ric_resource_limi uint8 = 12
466 //-----------------------------------------------------------------------------
468 //-----------------------------------------------------------------------------
469 type ActionAdmittedItem struct {
473 //-----------------------------------------------------------------------------
475 //-----------------------------------------------------------------------------
476 type ActionAdmittedList struct {
477 Items []ActionAdmittedItem //16
480 //-----------------------------------------------------------------------------
482 //-----------------------------------------------------------------------------
483 type ActionNotAdmittedItem struct {
488 //-----------------------------------------------------------------------------
490 //-----------------------------------------------------------------------------
491 type ActionNotAdmittedList struct {
492 Items []ActionNotAdmittedItem //16
495 //-----------------------------------------------------------------------------
497 //-----------------------------------------------------------------------------
499 E2AP_CriticalityReject uint8 = 0
500 E2AP_CriticalityIgnore uint8 = 1
501 E2AP_CriticalityNotify uint8 = 2
504 type CriticalityDiagnosticsIEListItem struct {
505 IeCriticality uint8 //Crit
510 //-----------------------------------------------------------------------------
512 //-----------------------------------------------------------------------------
513 type CriticalityDiagnosticsIEList struct {
514 Items []CriticalityDiagnosticsIEListItem //256
517 //-----------------------------------------------------------------------------
519 //-----------------------------------------------------------------------------
520 type CriticalityDiagnostics struct {
527 ProcCrit uint8 //Crit
528 CriticalityDiagnosticsIEList