Coverage Report

Created: 2026-09-14 07:15

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ocudu/lib/asn1/xnap/xnap.cpp
Line
Count
Source
1
// SPDX-FileCopyrightText: Copyright (C) 2021-2026 Software Radio Systems Limited
2
// SPDX-License-Identifier: BSD-3-Clause-Open-MPI
3
// Portions of this file may implement 3GPP specifications, which may be subject to additional licensing requirements.
4
5
#include "ocudu/asn1/xnap/xnap.h"
6
#include "ocudu/asn1/xnap/xnap_pdu_contents.h"
7
using namespace asn1;
8
using namespace asn1::xnap;
9
10
/*******************************************************************************
11
 *                                Struct Methods
12
 ******************************************************************************/
13
14
// ProtocolIE-FieldPair{XNAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE{{XNAP-PROTOCOL-IES-PAIR}}
15
template <class ies_set_paramT_>
16
OCUDUASN_CODE protocol_ie_field_pair_s<ies_set_paramT_>::pack(bit_ref& bref) const
17
{
18
  HANDLE_CODE(pack_integer(bref, id, (uint32_t)0u, (uint32_t)65535u, false, true));
19
  warn_assert(first_crit != ies_set_paramT_::get_first_crit(id), __func__, __LINE__);
20
  HANDLE_CODE(first_crit.pack(bref));
21
  HANDLE_CODE(first_value.pack(bref));
22
  warn_assert(second_crit != ies_set_paramT_::get_second_crit(id), __func__, __LINE__);
23
  HANDLE_CODE(second_crit.pack(bref));
24
  HANDLE_CODE(second_value.pack(bref));
25
26
  return OCUDUASN_SUCCESS;
27
}
28
template <class ies_set_paramT_>
29
OCUDUASN_CODE protocol_ie_field_pair_s<ies_set_paramT_>::unpack(cbit_ref& bref)
30
{
31
  HANDLE_CODE(unpack_integer(id, bref, (uint32_t)0u, (uint32_t)65535u, false, true));
32
  HANDLE_CODE(first_crit.unpack(bref));
33
  first_value = ies_set_paramT_::get_first_value(id);
34
  HANDLE_CODE(first_value.unpack(bref));
35
  HANDLE_CODE(second_crit.unpack(bref));
36
  second_value = ies_set_paramT_::get_second_value(id);
37
  HANDLE_CODE(second_value.unpack(bref));
38
39
  return OCUDUASN_SUCCESS;
40
}
41
template <class ies_set_paramT_>
42
void protocol_ie_field_pair_s<ies_set_paramT_>::to_json(json_writer& j) const
43
{
44
  j.start_obj();
45
  j.write_int("id", id);
46
  j.write_str("firstCriticality", first_crit.to_string());
47
  j.write_str("secondCriticality", second_crit.to_string());
48
  j.end_obj();
49
}
50
template <class ies_set_paramT_>
51
bool protocol_ie_field_pair_s<ies_set_paramT_>::load_info_obj(const uint32_t& id_)
52
{
53
  if (not ies_set_paramT_::is_id_valid(id_)) {
54
    return false;
55
  }
56
  id           = id_;
57
  first_crit   = ies_set_paramT_::get_first_crit(id);
58
  first_value  = ies_set_paramT_::get_first_value(id);
59
  second_crit  = ies_set_paramT_::get_second_crit(id);
60
  second_value = ies_set_paramT_::get_second_value(id);
61
  return first_value.type().value != ies_set_paramT_::first_value_c::types_opts::nulltype and
62
         second_value.type().value != ies_set_paramT_::second_value_c::types_opts::nulltype;
63
}
64
65
// XNAP-ELEMENTARY-PROCEDURES ::= OBJECT SET OF XNAP-ELEMENTARY-PROCEDURE
66
uint16_t xnap_elem_procs_o::idx_to_proc_code(uint32_t idx)
67
0
{
68
0
  static const uint16_t names[] = {0,  3,  7,  9,  10, 11, 12, 14, 16, 17, 18, 25, 19, 20, 34, 36, 44, 45,
69
0
                                   46, 49, 51, 1,  2,  4,  5,  6,  8,  13, 15, 21, 22, 23, 24, 26, 27, 28,
70
0
                                   29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 43, 47, 48, 50, 52};
71
0
  return map_enum_number(names, 52, idx, "proc_code");
72
0
}
73
bool xnap_elem_procs_o::is_proc_code_valid(const uint16_t& proc_code)
74
0
{
75
0
  static const uint16_t names[] = {0,  3,  7,  9,  10, 11, 12, 14, 16, 17, 18, 25, 19, 20, 34, 36, 44, 45,
76
0
                                   46, 49, 51, 1,  2,  4,  5,  6,  8,  13, 15, 21, 22, 23, 24, 26, 27, 28,
77
0
                                   29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 43, 47, 48, 50, 52};
78
0
  for (const auto& o : names) {
79
0
    if (o == proc_code) {
80
0
      return true;
81
0
    }
82
0
  }
83
0
  return false;
84
0
}
85
xnap_elem_procs_o::init_msg_c xnap_elem_procs_o::get_init_msg(const uint16_t& proc_code)
86
0
{
87
0
  init_msg_c ret{};
88
0
  switch (proc_code) {
89
0
    case 0:
90
0
      ret.set(init_msg_c::types::ho_request);
91
0
      break;
92
0
    case 3:
93
0
      ret.set(init_msg_c::types::retrieve_ue_context_request);
94
0
      break;
95
0
    case 7:
96
0
      ret.set(init_msg_c::types::sn_ode_addition_request);
97
0
      break;
98
0
    case 9:
99
0
      ret.set(init_msg_c::types::sn_ode_mod_request);
100
0
      break;
101
0
    case 10:
102
0
      ret.set(init_msg_c::types::sn_ode_mod_required);
103
0
      break;
104
0
    case 11:
105
0
      ret.set(init_msg_c::types::sn_ode_release_request);
106
0
      break;
107
0
    case 12:
108
0
      ret.set(init_msg_c::types::sn_ode_release_required);
109
0
      break;
110
0
    case 14:
111
0
      ret.set(init_msg_c::types::sn_ode_change_required);
112
0
      break;
113
0
    case 16:
114
0
      ret.set(init_msg_c::types::xn_removal_request);
115
0
      break;
116
0
    case 17:
117
0
      ret.set(init_msg_c::types::xn_setup_request);
118
0
      break;
119
0
    case 18:
120
0
      ret.set(init_msg_c::types::ngran_node_cfg_upd);
121
0
      break;
122
0
    case 25:
123
0
      ret.set(init_msg_c::types::e_utra_nr_cell_res_coordination_request);
124
0
      break;
125
0
    case 19:
126
0
      ret.set(init_msg_c::types::cell_activation_request);
127
0
      break;
128
0
    case 20:
129
0
      ret.set(init_msg_c::types::reset_request);
130
0
      break;
131
0
    case 34:
132
0
      ret.set(init_msg_c::types::res_status_request);
133
0
      break;
134
0
    case 36:
135
0
      ret.set(init_msg_c::types::mob_change_request);
136
0
      break;
137
0
    case 44:
138
0
      ret.set(init_msg_c::types::iab_transport_migration_management_request);
139
0
      break;
140
0
    case 45:
141
0
      ret.set(init_msg_c::types::iab_transport_migration_mod_request);
142
0
      break;
143
0
    case 46:
144
0
      ret.set(init_msg_c::types::iab_res_coordination_request);
145
0
      break;
146
0
    case 49:
147
0
      ret.set(init_msg_c::types::partial_ue_context_transfer);
148
0
      break;
149
0
    case 51:
150
0
      ret.set(init_msg_c::types::data_collection_request);
151
0
      break;
152
0
    case 1:
153
0
      ret.set(init_msg_c::types::sn_status_transfer);
154
0
      break;
155
0
    case 2:
156
0
      ret.set(init_msg_c::types::ho_cancel);
157
0
      break;
158
0
    case 4:
159
0
      ret.set(init_msg_c::types::ran_paging);
160
0
      break;
161
0
    case 5:
162
0
      ret.set(init_msg_c::types::xn_u_address_ind);
163
0
      break;
164
0
    case 6:
165
0
      ret.set(init_msg_c::types::ue_context_release);
166
0
      break;
167
0
    case 8:
168
0
      ret.set(init_msg_c::types::sn_ode_recfg_complete);
169
0
      break;
170
0
    case 13:
171
0
      ret.set(init_msg_c::types::sn_ode_counter_check_request);
172
0
      break;
173
0
    case 15:
174
0
      ret.set(init_msg_c::types::rrc_transfer);
175
0
      break;
176
0
    case 21:
177
0
      ret.set(init_msg_c::types::error_ind);
178
0
      break;
179
0
    case 22:
180
0
      ret.set(init_msg_c::types::private_msg);
181
0
      break;
182
0
    case 23:
183
0
      ret.set(init_msg_c::types::notif_ctrl_ind);
184
0
      break;
185
0
    case 24:
186
0
      ret.set(init_msg_c::types::activity_notif);
187
0
      break;
188
0
    case 26:
189
0
      ret.set(init_msg_c::types::secondary_rat_data_usage_report);
190
0
      break;
191
0
    case 27:
192
0
      ret.set(init_msg_c::types::deactiv_trace);
193
0
      break;
194
0
    case 28:
195
0
      ret.set(init_msg_c::types::trace_start);
196
0
      break;
197
0
    case 29:
198
0
      ret.set(init_msg_c::types::ho_success);
199
0
      break;
200
0
    case 30:
201
0
      ret.set(init_msg_c::types::conditional_ho_cancel);
202
0
      break;
203
0
    case 31:
204
0
      ret.set(init_msg_c::types::early_status_transfer);
205
0
      break;
206
0
    case 32:
207
0
      ret.set(init_msg_c::types::fail_ind);
208
0
      break;
209
0
    case 33:
210
0
      ret.set(init_msg_c::types::ho_report);
211
0
      break;
212
0
    case 35:
213
0
      ret.set(init_msg_c::types::res_status_upd);
214
0
      break;
215
0
    case 37:
216
0
      ret.set(init_msg_c::types::access_and_mob_ind);
217
0
      break;
218
0
    case 38:
219
0
      ret.set(init_msg_c::types::cell_traffic_trace);
220
0
      break;
221
0
    case 39:
222
0
      ret.set(init_msg_c::types::ran_multicast_group_paging);
223
0
      break;
224
0
    case 40:
225
0
      ret.set(init_msg_c::types::scg_fail_info_report);
226
0
      break;
227
0
    case 42:
228
0
      ret.set(init_msg_c::types::scg_fail_transfer);
229
0
      break;
230
0
    case 43:
231
0
      ret.set(init_msg_c::types::f1_c_traffic_transfer);
232
0
      break;
233
0
    case 47:
234
0
      ret.set(init_msg_c::types::retrieve_ue_context_confirm);
235
0
      break;
236
0
    case 48:
237
0
      ret.set(init_msg_c::types::cp_c_cancel);
238
0
      break;
239
0
    case 50:
240
0
      ret.set(init_msg_c::types::rach_ind);
241
0
      break;
242
0
    case 52:
243
0
      ret.set(init_msg_c::types::data_collection_upd);
244
0
      break;
245
0
    default:
246
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
247
0
  }
248
0
  return ret;
249
0
}
250
xnap_elem_procs_o::successful_outcome_c xnap_elem_procs_o::get_successful_outcome(const uint16_t& proc_code)
251
0
{
252
0
  successful_outcome_c ret{};
253
0
  switch (proc_code) {
254
0
    case 0:
255
0
      ret.set(successful_outcome_c::types::ho_request_ack);
256
0
      break;
257
0
    case 3:
258
0
      ret.set(successful_outcome_c::types::retrieve_ue_context_resp);
259
0
      break;
260
0
    case 7:
261
0
      ret.set(successful_outcome_c::types::sn_ode_addition_request_ack);
262
0
      break;
263
0
    case 9:
264
0
      ret.set(successful_outcome_c::types::sn_ode_mod_request_ack);
265
0
      break;
266
0
    case 10:
267
0
      ret.set(successful_outcome_c::types::sn_ode_mod_confirm);
268
0
      break;
269
0
    case 11:
270
0
      ret.set(successful_outcome_c::types::sn_ode_release_request_ack);
271
0
      break;
272
0
    case 12:
273
0
      ret.set(successful_outcome_c::types::sn_ode_release_confirm);
274
0
      break;
275
0
    case 14:
276
0
      ret.set(successful_outcome_c::types::sn_ode_change_confirm);
277
0
      break;
278
0
    case 16:
279
0
      ret.set(successful_outcome_c::types::xn_removal_resp);
280
0
      break;
281
0
    case 17:
282
0
      ret.set(successful_outcome_c::types::xn_setup_resp);
283
0
      break;
284
0
    case 18:
285
0
      ret.set(successful_outcome_c::types::ngran_node_cfg_upd_ack);
286
0
      break;
287
0
    case 25:
288
0
      ret.set(successful_outcome_c::types::e_utra_nr_cell_res_coordination_resp);
289
0
      break;
290
0
    case 19:
291
0
      ret.set(successful_outcome_c::types::cell_activation_resp);
292
0
      break;
293
0
    case 20:
294
0
      ret.set(successful_outcome_c::types::reset_resp);
295
0
      break;
296
0
    case 34:
297
0
      ret.set(successful_outcome_c::types::res_status_resp);
298
0
      break;
299
0
    case 36:
300
0
      ret.set(successful_outcome_c::types::mob_change_ack);
301
0
      break;
302
0
    case 44:
303
0
      ret.set(successful_outcome_c::types::iab_transport_migration_management_resp);
304
0
      break;
305
0
    case 45:
306
0
      ret.set(successful_outcome_c::types::iab_transport_migration_mod_resp);
307
0
      break;
308
0
    case 46:
309
0
      ret.set(successful_outcome_c::types::iab_res_coordination_resp);
310
0
      break;
311
0
    case 49:
312
0
      ret.set(successful_outcome_c::types::partial_ue_context_transfer_ack);
313
0
      break;
314
0
    case 51:
315
0
      ret.set(successful_outcome_c::types::data_collection_resp);
316
0
      break;
317
0
    default:
318
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
319
0
  }
320
0
  return ret;
321
0
}
322
xnap_elem_procs_o::unsuccessful_outcome_c xnap_elem_procs_o::get_unsuccessful_outcome(const uint16_t& proc_code)
323
0
{
324
0
  unsuccessful_outcome_c ret{};
325
0
  switch (proc_code) {
326
0
    case 0:
327
0
      ret.set(unsuccessful_outcome_c::types::ho_prep_fail);
328
0
      break;
329
0
    case 3:
330
0
      ret.set(unsuccessful_outcome_c::types::retrieve_ue_context_fail);
331
0
      break;
332
0
    case 7:
333
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_addition_request_reject);
334
0
      break;
335
0
    case 9:
336
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_mod_request_reject);
337
0
      break;
338
0
    case 10:
339
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_mod_refuse);
340
0
      break;
341
0
    case 11:
342
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_release_reject);
343
0
      break;
344
0
    case 14:
345
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_change_refuse);
346
0
      break;
347
0
    case 16:
348
0
      ret.set(unsuccessful_outcome_c::types::xn_removal_fail);
349
0
      break;
350
0
    case 17:
351
0
      ret.set(unsuccessful_outcome_c::types::xn_setup_fail);
352
0
      break;
353
0
    case 18:
354
0
      ret.set(unsuccessful_outcome_c::types::ngran_node_cfg_upd_fail);
355
0
      break;
356
0
    case 19:
357
0
      ret.set(unsuccessful_outcome_c::types::cell_activation_fail);
358
0
      break;
359
0
    case 34:
360
0
      ret.set(unsuccessful_outcome_c::types::res_status_fail);
361
0
      break;
362
0
    case 36:
363
0
      ret.set(unsuccessful_outcome_c::types::mob_change_fail);
364
0
      break;
365
0
    case 44:
366
0
      ret.set(unsuccessful_outcome_c::types::iab_transport_migration_management_reject);
367
0
      break;
368
0
    case 49:
369
0
      ret.set(unsuccessful_outcome_c::types::partial_ue_context_transfer_fail);
370
0
      break;
371
0
    case 51:
372
0
      ret.set(unsuccessful_outcome_c::types::data_collection_fail);
373
0
      break;
374
0
    default:
375
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
376
0
  }
377
0
  return ret;
378
0
}
379
crit_e xnap_elem_procs_o::get_crit(const uint16_t& proc_code)
380
0
{
381
0
  switch (proc_code) {
382
0
    case 0:
383
0
      return crit_e::reject;
384
0
    case 3:
385
0
      return crit_e::reject;
386
0
    case 7:
387
0
      return crit_e::reject;
388
0
    case 9:
389
0
      return crit_e::reject;
390
0
    case 10:
391
0
      return crit_e::reject;
392
0
    case 11:
393
0
      return crit_e::reject;
394
0
    case 12:
395
0
      return crit_e::reject;
396
0
    case 14:
397
0
      return crit_e::reject;
398
0
    case 16:
399
0
      return crit_e::reject;
400
0
    case 17:
401
0
      return crit_e::reject;
402
0
    case 18:
403
0
      return crit_e::reject;
404
0
    case 25:
405
0
      return crit_e::reject;
406
0
    case 19:
407
0
      return crit_e::reject;
408
0
    case 20:
409
0
      return crit_e::reject;
410
0
    case 34:
411
0
      return crit_e::reject;
412
0
    case 36:
413
0
      return crit_e::reject;
414
0
    case 44:
415
0
      return crit_e::reject;
416
0
    case 45:
417
0
      return crit_e::reject;
418
0
    case 46:
419
0
      return crit_e::reject;
420
0
    case 49:
421
0
      return crit_e::reject;
422
0
    case 51:
423
0
      return crit_e::reject;
424
0
    case 1:
425
0
      return crit_e::ignore;
426
0
    case 2:
427
0
      return crit_e::ignore;
428
0
    case 4:
429
0
      return crit_e::reject;
430
0
    case 5:
431
0
      return crit_e::reject;
432
0
    case 6:
433
0
      return crit_e::reject;
434
0
    case 8:
435
0
      return crit_e::reject;
436
0
    case 13:
437
0
      return crit_e::reject;
438
0
    case 15:
439
0
      return crit_e::reject;
440
0
    case 21:
441
0
      return crit_e::ignore;
442
0
    case 22:
443
0
      return crit_e::ignore;
444
0
    case 23:
445
0
      return crit_e::ignore;
446
0
    case 24:
447
0
      return crit_e::ignore;
448
0
    case 26:
449
0
      return crit_e::reject;
450
0
    case 27:
451
0
      return crit_e::ignore;
452
0
    case 28:
453
0
      return crit_e::ignore;
454
0
    case 29:
455
0
      return crit_e::ignore;
456
0
    case 30:
457
0
      return crit_e::ignore;
458
0
    case 31:
459
0
      return crit_e::ignore;
460
0
    case 32:
461
0
      return crit_e::ignore;
462
0
    case 33:
463
0
      return crit_e::ignore;
464
0
    case 35:
465
0
      return crit_e::ignore;
466
0
    case 37:
467
0
      return crit_e::ignore;
468
0
    case 38:
469
0
      return crit_e::ignore;
470
0
    case 39:
471
0
      return crit_e::reject;
472
0
    case 40:
473
0
      return crit_e::ignore;
474
0
    case 42:
475
0
      return crit_e::ignore;
476
0
    case 43:
477
0
      return crit_e::reject;
478
0
    case 47:
479
0
      return crit_e::reject;
480
0
    case 48:
481
0
      return crit_e::ignore;
482
0
    case 50:
483
0
      return crit_e::ignore;
484
0
    case 52:
485
0
      return crit_e::ignore;
486
0
    default:
487
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
488
0
  }
489
0
  return {};
490
0
}
491
492
// InitiatingMessage ::= OPEN TYPE
493
void xnap_elem_procs_o::init_msg_c::set(types::options e)
494
0
{
495
0
  type_ = e;
496
0
  switch (type_) {
497
0
    case types::ho_request:
498
0
      c = ho_request_s{};
499
0
      break;
500
0
    case types::retrieve_ue_context_request:
501
0
      c = retrieve_ue_context_request_s{};
502
0
      break;
503
0
    case types::sn_ode_addition_request:
504
0
      c = sn_ode_addition_request_s{};
505
0
      break;
506
0
    case types::sn_ode_mod_request:
507
0
      c = sn_ode_mod_request_s{};
508
0
      break;
509
0
    case types::sn_ode_mod_required:
510
0
      c = sn_ode_mod_required_s{};
511
0
      break;
512
0
    case types::sn_ode_release_request:
513
0
      c = sn_ode_release_request_s{};
514
0
      break;
515
0
    case types::sn_ode_release_required:
516
0
      c = sn_ode_release_required_s{};
517
0
      break;
518
0
    case types::sn_ode_change_required:
519
0
      c = sn_ode_change_required_s{};
520
0
      break;
521
0
    case types::xn_removal_request:
522
0
      c = xn_removal_request_s{};
523
0
      break;
524
0
    case types::xn_setup_request:
525
0
      c = xn_setup_request_s{};
526
0
      break;
527
0
    case types::ngran_node_cfg_upd:
528
0
      c = ngran_node_cfg_upd_s{};
529
0
      break;
530
0
    case types::e_utra_nr_cell_res_coordination_request:
531
0
      c = e_utra_nr_cell_res_coordination_request_s{};
532
0
      break;
533
0
    case types::cell_activation_request:
534
0
      c = cell_activation_request_s{};
535
0
      break;
536
0
    case types::reset_request:
537
0
      c = reset_request_s{};
538
0
      break;
539
0
    case types::res_status_request:
540
0
      c = res_status_request_s{};
541
0
      break;
542
0
    case types::mob_change_request:
543
0
      c = mob_change_request_s{};
544
0
      break;
545
0
    case types::iab_transport_migration_management_request:
546
0
      c = iab_transport_migration_management_request_s{};
547
0
      break;
548
0
    case types::iab_transport_migration_mod_request:
549
0
      c = iab_transport_migration_mod_request_s{};
550
0
      break;
551
0
    case types::iab_res_coordination_request:
552
0
      c = iab_res_coordination_request_s{};
553
0
      break;
554
0
    case types::partial_ue_context_transfer:
555
0
      c = partial_ue_context_transfer_s{};
556
0
      break;
557
0
    case types::data_collection_request:
558
0
      c = data_collection_request_s{};
559
0
      break;
560
0
    case types::sn_status_transfer:
561
0
      c = sn_status_transfer_s{};
562
0
      break;
563
0
    case types::ho_cancel:
564
0
      c = ho_cancel_s{};
565
0
      break;
566
0
    case types::ran_paging:
567
0
      c = ran_paging_s{};
568
0
      break;
569
0
    case types::xn_u_address_ind:
570
0
      c = xn_u_address_ind_s{};
571
0
      break;
572
0
    case types::ue_context_release:
573
0
      c = ue_context_release_s{};
574
0
      break;
575
0
    case types::sn_ode_recfg_complete:
576
0
      c = sn_ode_recfg_complete_s{};
577
0
      break;
578
0
    case types::sn_ode_counter_check_request:
579
0
      c = sn_ode_counter_check_request_s{};
580
0
      break;
581
0
    case types::rrc_transfer:
582
0
      c = rrc_transfer_s{};
583
0
      break;
584
0
    case types::error_ind:
585
0
      c = error_ind_s{};
586
0
      break;
587
0
    case types::private_msg:
588
0
      c = private_msg_s{};
589
0
      break;
590
0
    case types::notif_ctrl_ind:
591
0
      c = notif_ctrl_ind_s{};
592
0
      break;
593
0
    case types::activity_notif:
594
0
      c = activity_notif_s{};
595
0
      break;
596
0
    case types::secondary_rat_data_usage_report:
597
0
      c = secondary_rat_data_usage_report_s{};
598
0
      break;
599
0
    case types::deactiv_trace:
600
0
      c = deactiv_trace_s{};
601
0
      break;
602
0
    case types::trace_start:
603
0
      c = trace_start_s{};
604
0
      break;
605
0
    case types::ho_success:
606
0
      c = ho_success_s{};
607
0
      break;
608
0
    case types::conditional_ho_cancel:
609
0
      c = conditional_ho_cancel_s{};
610
0
      break;
611
0
    case types::early_status_transfer:
612
0
      c = early_status_transfer_s{};
613
0
      break;
614
0
    case types::fail_ind:
615
0
      c = fail_ind_s{};
616
0
      break;
617
0
    case types::ho_report:
618
0
      c = ho_report_s{};
619
0
      break;
620
0
    case types::res_status_upd:
621
0
      c = res_status_upd_s{};
622
0
      break;
623
0
    case types::access_and_mob_ind:
624
0
      c = access_and_mob_ind_s{};
625
0
      break;
626
0
    case types::cell_traffic_trace:
627
0
      c = cell_traffic_trace_s{};
628
0
      break;
629
0
    case types::ran_multicast_group_paging:
630
0
      c = ran_multicast_group_paging_s{};
631
0
      break;
632
0
    case types::scg_fail_info_report:
633
0
      c = scg_fail_info_report_s{};
634
0
      break;
635
0
    case types::scg_fail_transfer:
636
0
      c = scg_fail_transfer_s{};
637
0
      break;
638
0
    case types::f1_c_traffic_transfer:
639
0
      c = f1_c_traffic_transfer_s{};
640
0
      break;
641
0
    case types::retrieve_ue_context_confirm:
642
0
      c = retrieve_ue_context_confirm_s{};
643
0
      break;
644
0
    case types::cp_c_cancel:
645
0
      c = cp_c_cancel_s{};
646
0
      break;
647
0
    case types::rach_ind:
648
0
      c = rach_ind_s{};
649
0
      break;
650
0
    case types::data_collection_upd:
651
0
      c = data_collection_upd_s{};
652
0
      break;
653
0
    case types::nulltype:
654
0
      break;
655
0
    default:
656
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::init_msg_c");
657
0
  }
658
0
}
659
ho_request_s& xnap_elem_procs_o::init_msg_c::ho_request()
660
0
{
661
0
  assert_choice_type(types::ho_request, type_, "InitiatingMessage");
662
0
  return c.get<ho_request_s>();
663
0
}
664
retrieve_ue_context_request_s& xnap_elem_procs_o::init_msg_c::retrieve_ue_context_request()
665
0
{
666
0
  assert_choice_type(types::retrieve_ue_context_request, type_, "InitiatingMessage");
667
0
  return c.get<retrieve_ue_context_request_s>();
668
0
}
669
sn_ode_addition_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_addition_request()
670
0
{
671
0
  assert_choice_type(types::sn_ode_addition_request, type_, "InitiatingMessage");
672
0
  return c.get<sn_ode_addition_request_s>();
673
0
}
674
sn_ode_mod_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_mod_request()
675
0
{
676
0
  assert_choice_type(types::sn_ode_mod_request, type_, "InitiatingMessage");
677
0
  return c.get<sn_ode_mod_request_s>();
678
0
}
679
sn_ode_mod_required_s& xnap_elem_procs_o::init_msg_c::sn_ode_mod_required()
680
0
{
681
0
  assert_choice_type(types::sn_ode_mod_required, type_, "InitiatingMessage");
682
0
  return c.get<sn_ode_mod_required_s>();
683
0
}
684
sn_ode_release_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_release_request()
685
0
{
686
0
  assert_choice_type(types::sn_ode_release_request, type_, "InitiatingMessage");
687
0
  return c.get<sn_ode_release_request_s>();
688
0
}
689
sn_ode_release_required_s& xnap_elem_procs_o::init_msg_c::sn_ode_release_required()
690
0
{
691
0
  assert_choice_type(types::sn_ode_release_required, type_, "InitiatingMessage");
692
0
  return c.get<sn_ode_release_required_s>();
693
0
}
694
sn_ode_change_required_s& xnap_elem_procs_o::init_msg_c::sn_ode_change_required()
695
0
{
696
0
  assert_choice_type(types::sn_ode_change_required, type_, "InitiatingMessage");
697
0
  return c.get<sn_ode_change_required_s>();
698
0
}
699
xn_removal_request_s& xnap_elem_procs_o::init_msg_c::xn_removal_request()
700
0
{
701
0
  assert_choice_type(types::xn_removal_request, type_, "InitiatingMessage");
702
0
  return c.get<xn_removal_request_s>();
703
0
}
704
xn_setup_request_s& xnap_elem_procs_o::init_msg_c::xn_setup_request()
705
0
{
706
0
  assert_choice_type(types::xn_setup_request, type_, "InitiatingMessage");
707
0
  return c.get<xn_setup_request_s>();
708
0
}
709
ngran_node_cfg_upd_s& xnap_elem_procs_o::init_msg_c::ngran_node_cfg_upd()
710
0
{
711
0
  assert_choice_type(types::ngran_node_cfg_upd, type_, "InitiatingMessage");
712
0
  return c.get<ngran_node_cfg_upd_s>();
713
0
}
714
e_utra_nr_cell_res_coordination_request_s& xnap_elem_procs_o::init_msg_c::e_utra_nr_cell_res_coordination_request()
715
0
{
716
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_request, type_, "InitiatingMessage");
717
0
  return c.get<e_utra_nr_cell_res_coordination_request_s>();
718
0
}
719
cell_activation_request_s& xnap_elem_procs_o::init_msg_c::cell_activation_request()
720
0
{
721
0
  assert_choice_type(types::cell_activation_request, type_, "InitiatingMessage");
722
0
  return c.get<cell_activation_request_s>();
723
0
}
724
reset_request_s& xnap_elem_procs_o::init_msg_c::reset_request()
725
0
{
726
0
  assert_choice_type(types::reset_request, type_, "InitiatingMessage");
727
0
  return c.get<reset_request_s>();
728
0
}
729
res_status_request_s& xnap_elem_procs_o::init_msg_c::res_status_request()
730
0
{
731
0
  assert_choice_type(types::res_status_request, type_, "InitiatingMessage");
732
0
  return c.get<res_status_request_s>();
733
0
}
734
mob_change_request_s& xnap_elem_procs_o::init_msg_c::mob_change_request()
735
0
{
736
0
  assert_choice_type(types::mob_change_request, type_, "InitiatingMessage");
737
0
  return c.get<mob_change_request_s>();
738
0
}
739
iab_transport_migration_management_request_s&
740
xnap_elem_procs_o::init_msg_c::iab_transport_migration_management_request()
741
0
{
742
0
  assert_choice_type(types::iab_transport_migration_management_request, type_, "InitiatingMessage");
743
0
  return c.get<iab_transport_migration_management_request_s>();
744
0
}
745
iab_transport_migration_mod_request_s& xnap_elem_procs_o::init_msg_c::iab_transport_migration_mod_request()
746
0
{
747
0
  assert_choice_type(types::iab_transport_migration_mod_request, type_, "InitiatingMessage");
748
0
  return c.get<iab_transport_migration_mod_request_s>();
749
0
}
750
iab_res_coordination_request_s& xnap_elem_procs_o::init_msg_c::iab_res_coordination_request()
751
0
{
752
0
  assert_choice_type(types::iab_res_coordination_request, type_, "InitiatingMessage");
753
0
  return c.get<iab_res_coordination_request_s>();
754
0
}
755
partial_ue_context_transfer_s& xnap_elem_procs_o::init_msg_c::partial_ue_context_transfer()
756
0
{
757
0
  assert_choice_type(types::partial_ue_context_transfer, type_, "InitiatingMessage");
758
0
  return c.get<partial_ue_context_transfer_s>();
759
0
}
760
data_collection_request_s& xnap_elem_procs_o::init_msg_c::data_collection_request()
761
0
{
762
0
  assert_choice_type(types::data_collection_request, type_, "InitiatingMessage");
763
0
  return c.get<data_collection_request_s>();
764
0
}
765
sn_status_transfer_s& xnap_elem_procs_o::init_msg_c::sn_status_transfer()
766
0
{
767
0
  assert_choice_type(types::sn_status_transfer, type_, "InitiatingMessage");
768
0
  return c.get<sn_status_transfer_s>();
769
0
}
770
ho_cancel_s& xnap_elem_procs_o::init_msg_c::ho_cancel()
771
0
{
772
0
  assert_choice_type(types::ho_cancel, type_, "InitiatingMessage");
773
0
  return c.get<ho_cancel_s>();
774
0
}
775
ran_paging_s& xnap_elem_procs_o::init_msg_c::ran_paging()
776
0
{
777
0
  assert_choice_type(types::ran_paging, type_, "InitiatingMessage");
778
0
  return c.get<ran_paging_s>();
779
0
}
780
xn_u_address_ind_s& xnap_elem_procs_o::init_msg_c::xn_u_address_ind()
781
0
{
782
0
  assert_choice_type(types::xn_u_address_ind, type_, "InitiatingMessage");
783
0
  return c.get<xn_u_address_ind_s>();
784
0
}
785
ue_context_release_s& xnap_elem_procs_o::init_msg_c::ue_context_release()
786
0
{
787
0
  assert_choice_type(types::ue_context_release, type_, "InitiatingMessage");
788
0
  return c.get<ue_context_release_s>();
789
0
}
790
sn_ode_recfg_complete_s& xnap_elem_procs_o::init_msg_c::sn_ode_recfg_complete()
791
0
{
792
0
  assert_choice_type(types::sn_ode_recfg_complete, type_, "InitiatingMessage");
793
0
  return c.get<sn_ode_recfg_complete_s>();
794
0
}
795
sn_ode_counter_check_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_counter_check_request()
796
0
{
797
0
  assert_choice_type(types::sn_ode_counter_check_request, type_, "InitiatingMessage");
798
0
  return c.get<sn_ode_counter_check_request_s>();
799
0
}
800
rrc_transfer_s& xnap_elem_procs_o::init_msg_c::rrc_transfer()
801
0
{
802
0
  assert_choice_type(types::rrc_transfer, type_, "InitiatingMessage");
803
0
  return c.get<rrc_transfer_s>();
804
0
}
805
error_ind_s& xnap_elem_procs_o::init_msg_c::error_ind()
806
0
{
807
0
  assert_choice_type(types::error_ind, type_, "InitiatingMessage");
808
0
  return c.get<error_ind_s>();
809
0
}
810
private_msg_s& xnap_elem_procs_o::init_msg_c::private_msg()
811
0
{
812
0
  assert_choice_type(types::private_msg, type_, "InitiatingMessage");
813
0
  return c.get<private_msg_s>();
814
0
}
815
notif_ctrl_ind_s& xnap_elem_procs_o::init_msg_c::notif_ctrl_ind()
816
0
{
817
0
  assert_choice_type(types::notif_ctrl_ind, type_, "InitiatingMessage");
818
0
  return c.get<notif_ctrl_ind_s>();
819
0
}
820
activity_notif_s& xnap_elem_procs_o::init_msg_c::activity_notif()
821
0
{
822
0
  assert_choice_type(types::activity_notif, type_, "InitiatingMessage");
823
0
  return c.get<activity_notif_s>();
824
0
}
825
secondary_rat_data_usage_report_s& xnap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report()
826
0
{
827
0
  assert_choice_type(types::secondary_rat_data_usage_report, type_, "InitiatingMessage");
828
0
  return c.get<secondary_rat_data_usage_report_s>();
829
0
}
830
deactiv_trace_s& xnap_elem_procs_o::init_msg_c::deactiv_trace()
831
0
{
832
0
  assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage");
833
0
  return c.get<deactiv_trace_s>();
834
0
}
835
trace_start_s& xnap_elem_procs_o::init_msg_c::trace_start()
836
0
{
837
0
  assert_choice_type(types::trace_start, type_, "InitiatingMessage");
838
0
  return c.get<trace_start_s>();
839
0
}
840
ho_success_s& xnap_elem_procs_o::init_msg_c::ho_success()
841
0
{
842
0
  assert_choice_type(types::ho_success, type_, "InitiatingMessage");
843
0
  return c.get<ho_success_s>();
844
0
}
845
conditional_ho_cancel_s& xnap_elem_procs_o::init_msg_c::conditional_ho_cancel()
846
0
{
847
0
  assert_choice_type(types::conditional_ho_cancel, type_, "InitiatingMessage");
848
0
  return c.get<conditional_ho_cancel_s>();
849
0
}
850
early_status_transfer_s& xnap_elem_procs_o::init_msg_c::early_status_transfer()
851
0
{
852
0
  assert_choice_type(types::early_status_transfer, type_, "InitiatingMessage");
853
0
  return c.get<early_status_transfer_s>();
854
0
}
855
fail_ind_s& xnap_elem_procs_o::init_msg_c::fail_ind()
856
0
{
857
0
  assert_choice_type(types::fail_ind, type_, "InitiatingMessage");
858
0
  return c.get<fail_ind_s>();
859
0
}
860
ho_report_s& xnap_elem_procs_o::init_msg_c::ho_report()
861
0
{
862
0
  assert_choice_type(types::ho_report, type_, "InitiatingMessage");
863
0
  return c.get<ho_report_s>();
864
0
}
865
res_status_upd_s& xnap_elem_procs_o::init_msg_c::res_status_upd()
866
0
{
867
0
  assert_choice_type(types::res_status_upd, type_, "InitiatingMessage");
868
0
  return c.get<res_status_upd_s>();
869
0
}
870
access_and_mob_ind_s& xnap_elem_procs_o::init_msg_c::access_and_mob_ind()
871
0
{
872
0
  assert_choice_type(types::access_and_mob_ind, type_, "InitiatingMessage");
873
0
  return c.get<access_and_mob_ind_s>();
874
0
}
875
cell_traffic_trace_s& xnap_elem_procs_o::init_msg_c::cell_traffic_trace()
876
0
{
877
0
  assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage");
878
0
  return c.get<cell_traffic_trace_s>();
879
0
}
880
ran_multicast_group_paging_s& xnap_elem_procs_o::init_msg_c::ran_multicast_group_paging()
881
0
{
882
0
  assert_choice_type(types::ran_multicast_group_paging, type_, "InitiatingMessage");
883
0
  return c.get<ran_multicast_group_paging_s>();
884
0
}
885
scg_fail_info_report_s& xnap_elem_procs_o::init_msg_c::scg_fail_info_report()
886
0
{
887
0
  assert_choice_type(types::scg_fail_info_report, type_, "InitiatingMessage");
888
0
  return c.get<scg_fail_info_report_s>();
889
0
}
890
scg_fail_transfer_s& xnap_elem_procs_o::init_msg_c::scg_fail_transfer()
891
0
{
892
0
  assert_choice_type(types::scg_fail_transfer, type_, "InitiatingMessage");
893
0
  return c.get<scg_fail_transfer_s>();
894
0
}
895
f1_c_traffic_transfer_s& xnap_elem_procs_o::init_msg_c::f1_c_traffic_transfer()
896
0
{
897
0
  assert_choice_type(types::f1_c_traffic_transfer, type_, "InitiatingMessage");
898
0
  return c.get<f1_c_traffic_transfer_s>();
899
0
}
900
retrieve_ue_context_confirm_s& xnap_elem_procs_o::init_msg_c::retrieve_ue_context_confirm()
901
0
{
902
0
  assert_choice_type(types::retrieve_ue_context_confirm, type_, "InitiatingMessage");
903
0
  return c.get<retrieve_ue_context_confirm_s>();
904
0
}
905
cp_c_cancel_s& xnap_elem_procs_o::init_msg_c::cp_c_cancel()
906
0
{
907
0
  assert_choice_type(types::cp_c_cancel, type_, "InitiatingMessage");
908
0
  return c.get<cp_c_cancel_s>();
909
0
}
910
rach_ind_s& xnap_elem_procs_o::init_msg_c::rach_ind()
911
0
{
912
0
  assert_choice_type(types::rach_ind, type_, "InitiatingMessage");
913
0
  return c.get<rach_ind_s>();
914
0
}
915
data_collection_upd_s& xnap_elem_procs_o::init_msg_c::data_collection_upd()
916
0
{
917
0
  assert_choice_type(types::data_collection_upd, type_, "InitiatingMessage");
918
0
  return c.get<data_collection_upd_s>();
919
0
}
920
const ho_request_s& xnap_elem_procs_o::init_msg_c::ho_request() const
921
0
{
922
0
  assert_choice_type(types::ho_request, type_, "InitiatingMessage");
923
0
  return c.get<ho_request_s>();
924
0
}
925
const retrieve_ue_context_request_s& xnap_elem_procs_o::init_msg_c::retrieve_ue_context_request() const
926
0
{
927
0
  assert_choice_type(types::retrieve_ue_context_request, type_, "InitiatingMessage");
928
0
  return c.get<retrieve_ue_context_request_s>();
929
0
}
930
const sn_ode_addition_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_addition_request() const
931
0
{
932
0
  assert_choice_type(types::sn_ode_addition_request, type_, "InitiatingMessage");
933
0
  return c.get<sn_ode_addition_request_s>();
934
0
}
935
const sn_ode_mod_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_mod_request() const
936
0
{
937
0
  assert_choice_type(types::sn_ode_mod_request, type_, "InitiatingMessage");
938
0
  return c.get<sn_ode_mod_request_s>();
939
0
}
940
const sn_ode_mod_required_s& xnap_elem_procs_o::init_msg_c::sn_ode_mod_required() const
941
0
{
942
0
  assert_choice_type(types::sn_ode_mod_required, type_, "InitiatingMessage");
943
0
  return c.get<sn_ode_mod_required_s>();
944
0
}
945
const sn_ode_release_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_release_request() const
946
0
{
947
0
  assert_choice_type(types::sn_ode_release_request, type_, "InitiatingMessage");
948
0
  return c.get<sn_ode_release_request_s>();
949
0
}
950
const sn_ode_release_required_s& xnap_elem_procs_o::init_msg_c::sn_ode_release_required() const
951
0
{
952
0
  assert_choice_type(types::sn_ode_release_required, type_, "InitiatingMessage");
953
0
  return c.get<sn_ode_release_required_s>();
954
0
}
955
const sn_ode_change_required_s& xnap_elem_procs_o::init_msg_c::sn_ode_change_required() const
956
0
{
957
0
  assert_choice_type(types::sn_ode_change_required, type_, "InitiatingMessage");
958
0
  return c.get<sn_ode_change_required_s>();
959
0
}
960
const xn_removal_request_s& xnap_elem_procs_o::init_msg_c::xn_removal_request() const
961
0
{
962
0
  assert_choice_type(types::xn_removal_request, type_, "InitiatingMessage");
963
0
  return c.get<xn_removal_request_s>();
964
0
}
965
const xn_setup_request_s& xnap_elem_procs_o::init_msg_c::xn_setup_request() const
966
0
{
967
0
  assert_choice_type(types::xn_setup_request, type_, "InitiatingMessage");
968
0
  return c.get<xn_setup_request_s>();
969
0
}
970
const ngran_node_cfg_upd_s& xnap_elem_procs_o::init_msg_c::ngran_node_cfg_upd() const
971
0
{
972
0
  assert_choice_type(types::ngran_node_cfg_upd, type_, "InitiatingMessage");
973
0
  return c.get<ngran_node_cfg_upd_s>();
974
0
}
975
const e_utra_nr_cell_res_coordination_request_s&
976
xnap_elem_procs_o::init_msg_c::e_utra_nr_cell_res_coordination_request() const
977
0
{
978
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_request, type_, "InitiatingMessage");
979
0
  return c.get<e_utra_nr_cell_res_coordination_request_s>();
980
0
}
981
const cell_activation_request_s& xnap_elem_procs_o::init_msg_c::cell_activation_request() const
982
0
{
983
0
  assert_choice_type(types::cell_activation_request, type_, "InitiatingMessage");
984
0
  return c.get<cell_activation_request_s>();
985
0
}
986
const reset_request_s& xnap_elem_procs_o::init_msg_c::reset_request() const
987
0
{
988
0
  assert_choice_type(types::reset_request, type_, "InitiatingMessage");
989
0
  return c.get<reset_request_s>();
990
0
}
991
const res_status_request_s& xnap_elem_procs_o::init_msg_c::res_status_request() const
992
0
{
993
0
  assert_choice_type(types::res_status_request, type_, "InitiatingMessage");
994
0
  return c.get<res_status_request_s>();
995
0
}
996
const mob_change_request_s& xnap_elem_procs_o::init_msg_c::mob_change_request() const
997
0
{
998
0
  assert_choice_type(types::mob_change_request, type_, "InitiatingMessage");
999
0
  return c.get<mob_change_request_s>();
1000
0
}
1001
const iab_transport_migration_management_request_s&
1002
xnap_elem_procs_o::init_msg_c::iab_transport_migration_management_request() const
1003
0
{
1004
0
  assert_choice_type(types::iab_transport_migration_management_request, type_, "InitiatingMessage");
1005
0
  return c.get<iab_transport_migration_management_request_s>();
1006
0
}
1007
const iab_transport_migration_mod_request_s& xnap_elem_procs_o::init_msg_c::iab_transport_migration_mod_request() const
1008
0
{
1009
0
  assert_choice_type(types::iab_transport_migration_mod_request, type_, "InitiatingMessage");
1010
0
  return c.get<iab_transport_migration_mod_request_s>();
1011
0
}
1012
const iab_res_coordination_request_s& xnap_elem_procs_o::init_msg_c::iab_res_coordination_request() const
1013
0
{
1014
0
  assert_choice_type(types::iab_res_coordination_request, type_, "InitiatingMessage");
1015
0
  return c.get<iab_res_coordination_request_s>();
1016
0
}
1017
const partial_ue_context_transfer_s& xnap_elem_procs_o::init_msg_c::partial_ue_context_transfer() const
1018
0
{
1019
0
  assert_choice_type(types::partial_ue_context_transfer, type_, "InitiatingMessage");
1020
0
  return c.get<partial_ue_context_transfer_s>();
1021
0
}
1022
const data_collection_request_s& xnap_elem_procs_o::init_msg_c::data_collection_request() const
1023
0
{
1024
0
  assert_choice_type(types::data_collection_request, type_, "InitiatingMessage");
1025
0
  return c.get<data_collection_request_s>();
1026
0
}
1027
const sn_status_transfer_s& xnap_elem_procs_o::init_msg_c::sn_status_transfer() const
1028
0
{
1029
0
  assert_choice_type(types::sn_status_transfer, type_, "InitiatingMessage");
1030
0
  return c.get<sn_status_transfer_s>();
1031
0
}
1032
const ho_cancel_s& xnap_elem_procs_o::init_msg_c::ho_cancel() const
1033
0
{
1034
0
  assert_choice_type(types::ho_cancel, type_, "InitiatingMessage");
1035
0
  return c.get<ho_cancel_s>();
1036
0
}
1037
const ran_paging_s& xnap_elem_procs_o::init_msg_c::ran_paging() const
1038
0
{
1039
0
  assert_choice_type(types::ran_paging, type_, "InitiatingMessage");
1040
0
  return c.get<ran_paging_s>();
1041
0
}
1042
const xn_u_address_ind_s& xnap_elem_procs_o::init_msg_c::xn_u_address_ind() const
1043
0
{
1044
0
  assert_choice_type(types::xn_u_address_ind, type_, "InitiatingMessage");
1045
0
  return c.get<xn_u_address_ind_s>();
1046
0
}
1047
const ue_context_release_s& xnap_elem_procs_o::init_msg_c::ue_context_release() const
1048
0
{
1049
0
  assert_choice_type(types::ue_context_release, type_, "InitiatingMessage");
1050
0
  return c.get<ue_context_release_s>();
1051
0
}
1052
const sn_ode_recfg_complete_s& xnap_elem_procs_o::init_msg_c::sn_ode_recfg_complete() const
1053
0
{
1054
0
  assert_choice_type(types::sn_ode_recfg_complete, type_, "InitiatingMessage");
1055
0
  return c.get<sn_ode_recfg_complete_s>();
1056
0
}
1057
const sn_ode_counter_check_request_s& xnap_elem_procs_o::init_msg_c::sn_ode_counter_check_request() const
1058
0
{
1059
0
  assert_choice_type(types::sn_ode_counter_check_request, type_, "InitiatingMessage");
1060
0
  return c.get<sn_ode_counter_check_request_s>();
1061
0
}
1062
const rrc_transfer_s& xnap_elem_procs_o::init_msg_c::rrc_transfer() const
1063
0
{
1064
0
  assert_choice_type(types::rrc_transfer, type_, "InitiatingMessage");
1065
0
  return c.get<rrc_transfer_s>();
1066
0
}
1067
const error_ind_s& xnap_elem_procs_o::init_msg_c::error_ind() const
1068
0
{
1069
0
  assert_choice_type(types::error_ind, type_, "InitiatingMessage");
1070
0
  return c.get<error_ind_s>();
1071
0
}
1072
const private_msg_s& xnap_elem_procs_o::init_msg_c::private_msg() const
1073
0
{
1074
0
  assert_choice_type(types::private_msg, type_, "InitiatingMessage");
1075
0
  return c.get<private_msg_s>();
1076
0
}
1077
const notif_ctrl_ind_s& xnap_elem_procs_o::init_msg_c::notif_ctrl_ind() const
1078
0
{
1079
0
  assert_choice_type(types::notif_ctrl_ind, type_, "InitiatingMessage");
1080
0
  return c.get<notif_ctrl_ind_s>();
1081
0
}
1082
const activity_notif_s& xnap_elem_procs_o::init_msg_c::activity_notif() const
1083
0
{
1084
0
  assert_choice_type(types::activity_notif, type_, "InitiatingMessage");
1085
0
  return c.get<activity_notif_s>();
1086
0
}
1087
const secondary_rat_data_usage_report_s& xnap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() const
1088
0
{
1089
0
  assert_choice_type(types::secondary_rat_data_usage_report, type_, "InitiatingMessage");
1090
0
  return c.get<secondary_rat_data_usage_report_s>();
1091
0
}
1092
const deactiv_trace_s& xnap_elem_procs_o::init_msg_c::deactiv_trace() const
1093
0
{
1094
0
  assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage");
1095
0
  return c.get<deactiv_trace_s>();
1096
0
}
1097
const trace_start_s& xnap_elem_procs_o::init_msg_c::trace_start() const
1098
0
{
1099
0
  assert_choice_type(types::trace_start, type_, "InitiatingMessage");
1100
0
  return c.get<trace_start_s>();
1101
0
}
1102
const ho_success_s& xnap_elem_procs_o::init_msg_c::ho_success() const
1103
0
{
1104
0
  assert_choice_type(types::ho_success, type_, "InitiatingMessage");
1105
0
  return c.get<ho_success_s>();
1106
0
}
1107
const conditional_ho_cancel_s& xnap_elem_procs_o::init_msg_c::conditional_ho_cancel() const
1108
0
{
1109
0
  assert_choice_type(types::conditional_ho_cancel, type_, "InitiatingMessage");
1110
0
  return c.get<conditional_ho_cancel_s>();
1111
0
}
1112
const early_status_transfer_s& xnap_elem_procs_o::init_msg_c::early_status_transfer() const
1113
0
{
1114
0
  assert_choice_type(types::early_status_transfer, type_, "InitiatingMessage");
1115
0
  return c.get<early_status_transfer_s>();
1116
0
}
1117
const fail_ind_s& xnap_elem_procs_o::init_msg_c::fail_ind() const
1118
0
{
1119
0
  assert_choice_type(types::fail_ind, type_, "InitiatingMessage");
1120
0
  return c.get<fail_ind_s>();
1121
0
}
1122
const ho_report_s& xnap_elem_procs_o::init_msg_c::ho_report() const
1123
0
{
1124
0
  assert_choice_type(types::ho_report, type_, "InitiatingMessage");
1125
0
  return c.get<ho_report_s>();
1126
0
}
1127
const res_status_upd_s& xnap_elem_procs_o::init_msg_c::res_status_upd() const
1128
0
{
1129
0
  assert_choice_type(types::res_status_upd, type_, "InitiatingMessage");
1130
0
  return c.get<res_status_upd_s>();
1131
0
}
1132
const access_and_mob_ind_s& xnap_elem_procs_o::init_msg_c::access_and_mob_ind() const
1133
0
{
1134
0
  assert_choice_type(types::access_and_mob_ind, type_, "InitiatingMessage");
1135
0
  return c.get<access_and_mob_ind_s>();
1136
0
}
1137
const cell_traffic_trace_s& xnap_elem_procs_o::init_msg_c::cell_traffic_trace() const
1138
0
{
1139
0
  assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage");
1140
0
  return c.get<cell_traffic_trace_s>();
1141
0
}
1142
const ran_multicast_group_paging_s& xnap_elem_procs_o::init_msg_c::ran_multicast_group_paging() const
1143
0
{
1144
0
  assert_choice_type(types::ran_multicast_group_paging, type_, "InitiatingMessage");
1145
0
  return c.get<ran_multicast_group_paging_s>();
1146
0
}
1147
const scg_fail_info_report_s& xnap_elem_procs_o::init_msg_c::scg_fail_info_report() const
1148
0
{
1149
0
  assert_choice_type(types::scg_fail_info_report, type_, "InitiatingMessage");
1150
0
  return c.get<scg_fail_info_report_s>();
1151
0
}
1152
const scg_fail_transfer_s& xnap_elem_procs_o::init_msg_c::scg_fail_transfer() const
1153
0
{
1154
0
  assert_choice_type(types::scg_fail_transfer, type_, "InitiatingMessage");
1155
0
  return c.get<scg_fail_transfer_s>();
1156
0
}
1157
const f1_c_traffic_transfer_s& xnap_elem_procs_o::init_msg_c::f1_c_traffic_transfer() const
1158
0
{
1159
0
  assert_choice_type(types::f1_c_traffic_transfer, type_, "InitiatingMessage");
1160
0
  return c.get<f1_c_traffic_transfer_s>();
1161
0
}
1162
const retrieve_ue_context_confirm_s& xnap_elem_procs_o::init_msg_c::retrieve_ue_context_confirm() const
1163
0
{
1164
0
  assert_choice_type(types::retrieve_ue_context_confirm, type_, "InitiatingMessage");
1165
0
  return c.get<retrieve_ue_context_confirm_s>();
1166
0
}
1167
const cp_c_cancel_s& xnap_elem_procs_o::init_msg_c::cp_c_cancel() const
1168
0
{
1169
0
  assert_choice_type(types::cp_c_cancel, type_, "InitiatingMessage");
1170
0
  return c.get<cp_c_cancel_s>();
1171
0
}
1172
const rach_ind_s& xnap_elem_procs_o::init_msg_c::rach_ind() const
1173
0
{
1174
0
  assert_choice_type(types::rach_ind, type_, "InitiatingMessage");
1175
0
  return c.get<rach_ind_s>();
1176
0
}
1177
const data_collection_upd_s& xnap_elem_procs_o::init_msg_c::data_collection_upd() const
1178
0
{
1179
0
  assert_choice_type(types::data_collection_upd, type_, "InitiatingMessage");
1180
0
  return c.get<data_collection_upd_s>();
1181
0
}
1182
void xnap_elem_procs_o::init_msg_c::to_json(json_writer& j) const
1183
0
{
1184
0
  j.start_obj();
1185
0
  switch (type_) {
1186
0
    case types::ho_request:
1187
0
      j.write_fieldname("HandoverRequest");
1188
0
      c.get<ho_request_s>().to_json(j);
1189
0
      break;
1190
0
    case types::retrieve_ue_context_request:
1191
0
      j.write_fieldname("RetrieveUEContextRequest");
1192
0
      c.get<retrieve_ue_context_request_s>().to_json(j);
1193
0
      break;
1194
0
    case types::sn_ode_addition_request:
1195
0
      j.write_fieldname("SNodeAdditionRequest");
1196
0
      c.get<sn_ode_addition_request_s>().to_json(j);
1197
0
      break;
1198
0
    case types::sn_ode_mod_request:
1199
0
      j.write_fieldname("SNodeModificationRequest");
1200
0
      c.get<sn_ode_mod_request_s>().to_json(j);
1201
0
      break;
1202
0
    case types::sn_ode_mod_required:
1203
0
      j.write_fieldname("SNodeModificationRequired");
1204
0
      c.get<sn_ode_mod_required_s>().to_json(j);
1205
0
      break;
1206
0
    case types::sn_ode_release_request:
1207
0
      j.write_fieldname("SNodeReleaseRequest");
1208
0
      c.get<sn_ode_release_request_s>().to_json(j);
1209
0
      break;
1210
0
    case types::sn_ode_release_required:
1211
0
      j.write_fieldname("SNodeReleaseRequired");
1212
0
      c.get<sn_ode_release_required_s>().to_json(j);
1213
0
      break;
1214
0
    case types::sn_ode_change_required:
1215
0
      j.write_fieldname("SNodeChangeRequired");
1216
0
      c.get<sn_ode_change_required_s>().to_json(j);
1217
0
      break;
1218
0
    case types::xn_removal_request:
1219
0
      j.write_fieldname("XnRemovalRequest");
1220
0
      c.get<xn_removal_request_s>().to_json(j);
1221
0
      break;
1222
0
    case types::xn_setup_request:
1223
0
      j.write_fieldname("XnSetupRequest");
1224
0
      c.get<xn_setup_request_s>().to_json(j);
1225
0
      break;
1226
0
    case types::ngran_node_cfg_upd:
1227
0
      j.write_fieldname("NGRANNodeConfigurationUpdate");
1228
0
      c.get<ngran_node_cfg_upd_s>().to_json(j);
1229
0
      break;
1230
0
    case types::e_utra_nr_cell_res_coordination_request:
1231
0
      j.write_fieldname("E-UTRA-NR-CellResourceCoordinationRequest");
1232
0
      c.get<e_utra_nr_cell_res_coordination_request_s>().to_json(j);
1233
0
      break;
1234
0
    case types::cell_activation_request:
1235
0
      j.write_fieldname("CellActivationRequest");
1236
0
      c.get<cell_activation_request_s>().to_json(j);
1237
0
      break;
1238
0
    case types::reset_request:
1239
0
      j.write_fieldname("ResetRequest");
1240
0
      c.get<reset_request_s>().to_json(j);
1241
0
      break;
1242
0
    case types::res_status_request:
1243
0
      j.write_fieldname("ResourceStatusRequest");
1244
0
      c.get<res_status_request_s>().to_json(j);
1245
0
      break;
1246
0
    case types::mob_change_request:
1247
0
      j.write_fieldname("MobilityChangeRequest");
1248
0
      c.get<mob_change_request_s>().to_json(j);
1249
0
      break;
1250
0
    case types::iab_transport_migration_management_request:
1251
0
      j.write_fieldname("IABTransportMigrationManagementRequest");
1252
0
      c.get<iab_transport_migration_management_request_s>().to_json(j);
1253
0
      break;
1254
0
    case types::iab_transport_migration_mod_request:
1255
0
      j.write_fieldname("IABTransportMigrationModificationRequest");
1256
0
      c.get<iab_transport_migration_mod_request_s>().to_json(j);
1257
0
      break;
1258
0
    case types::iab_res_coordination_request:
1259
0
      j.write_fieldname("IABResourceCoordinationRequest");
1260
0
      c.get<iab_res_coordination_request_s>().to_json(j);
1261
0
      break;
1262
0
    case types::partial_ue_context_transfer:
1263
0
      j.write_fieldname("PartialUEContextTransfer");
1264
0
      c.get<partial_ue_context_transfer_s>().to_json(j);
1265
0
      break;
1266
0
    case types::data_collection_request:
1267
0
      j.write_fieldname("DataCollectionRequest");
1268
0
      c.get<data_collection_request_s>().to_json(j);
1269
0
      break;
1270
0
    case types::sn_status_transfer:
1271
0
      j.write_fieldname("SNStatusTransfer");
1272
0
      c.get<sn_status_transfer_s>().to_json(j);
1273
0
      break;
1274
0
    case types::ho_cancel:
1275
0
      j.write_fieldname("HandoverCancel");
1276
0
      c.get<ho_cancel_s>().to_json(j);
1277
0
      break;
1278
0
    case types::ran_paging:
1279
0
      j.write_fieldname("RANPaging");
1280
0
      c.get<ran_paging_s>().to_json(j);
1281
0
      break;
1282
0
    case types::xn_u_address_ind:
1283
0
      j.write_fieldname("XnUAddressIndication");
1284
0
      c.get<xn_u_address_ind_s>().to_json(j);
1285
0
      break;
1286
0
    case types::ue_context_release:
1287
0
      j.write_fieldname("UEContextRelease");
1288
0
      c.get<ue_context_release_s>().to_json(j);
1289
0
      break;
1290
0
    case types::sn_ode_recfg_complete:
1291
0
      j.write_fieldname("SNodeReconfigurationComplete");
1292
0
      c.get<sn_ode_recfg_complete_s>().to_json(j);
1293
0
      break;
1294
0
    case types::sn_ode_counter_check_request:
1295
0
      j.write_fieldname("SNodeCounterCheckRequest");
1296
0
      c.get<sn_ode_counter_check_request_s>().to_json(j);
1297
0
      break;
1298
0
    case types::rrc_transfer:
1299
0
      j.write_fieldname("RRCTransfer");
1300
0
      c.get<rrc_transfer_s>().to_json(j);
1301
0
      break;
1302
0
    case types::error_ind:
1303
0
      j.write_fieldname("ErrorIndication");
1304
0
      c.get<error_ind_s>().to_json(j);
1305
0
      break;
1306
0
    case types::private_msg:
1307
0
      j.write_fieldname("PrivateMessage");
1308
0
      c.get<private_msg_s>().to_json(j);
1309
0
      break;
1310
0
    case types::notif_ctrl_ind:
1311
0
      j.write_fieldname("NotificationControlIndication");
1312
0
      c.get<notif_ctrl_ind_s>().to_json(j);
1313
0
      break;
1314
0
    case types::activity_notif:
1315
0
      j.write_fieldname("ActivityNotification");
1316
0
      c.get<activity_notif_s>().to_json(j);
1317
0
      break;
1318
0
    case types::secondary_rat_data_usage_report:
1319
0
      j.write_fieldname("SecondaryRATDataUsageReport");
1320
0
      c.get<secondary_rat_data_usage_report_s>().to_json(j);
1321
0
      break;
1322
0
    case types::deactiv_trace:
1323
0
      j.write_fieldname("DeactivateTrace");
1324
0
      c.get<deactiv_trace_s>().to_json(j);
1325
0
      break;
1326
0
    case types::trace_start:
1327
0
      j.write_fieldname("TraceStart");
1328
0
      c.get<trace_start_s>().to_json(j);
1329
0
      break;
1330
0
    case types::ho_success:
1331
0
      j.write_fieldname("HandoverSuccess");
1332
0
      c.get<ho_success_s>().to_json(j);
1333
0
      break;
1334
0
    case types::conditional_ho_cancel:
1335
0
      j.write_fieldname("ConditionalHandoverCancel");
1336
0
      c.get<conditional_ho_cancel_s>().to_json(j);
1337
0
      break;
1338
0
    case types::early_status_transfer:
1339
0
      j.write_fieldname("EarlyStatusTransfer");
1340
0
      c.get<early_status_transfer_s>().to_json(j);
1341
0
      break;
1342
0
    case types::fail_ind:
1343
0
      j.write_fieldname("FailureIndication");
1344
0
      c.get<fail_ind_s>().to_json(j);
1345
0
      break;
1346
0
    case types::ho_report:
1347
0
      j.write_fieldname("HandoverReport");
1348
0
      c.get<ho_report_s>().to_json(j);
1349
0
      break;
1350
0
    case types::res_status_upd:
1351
0
      j.write_fieldname("ResourceStatusUpdate");
1352
0
      c.get<res_status_upd_s>().to_json(j);
1353
0
      break;
1354
0
    case types::access_and_mob_ind:
1355
0
      j.write_fieldname("AccessAndMobilityIndication");
1356
0
      c.get<access_and_mob_ind_s>().to_json(j);
1357
0
      break;
1358
0
    case types::cell_traffic_trace:
1359
0
      j.write_fieldname("CellTrafficTrace");
1360
0
      c.get<cell_traffic_trace_s>().to_json(j);
1361
0
      break;
1362
0
    case types::ran_multicast_group_paging:
1363
0
      j.write_fieldname("RANMulticastGroupPaging");
1364
0
      c.get<ran_multicast_group_paging_s>().to_json(j);
1365
0
      break;
1366
0
    case types::scg_fail_info_report:
1367
0
      j.write_fieldname("ScgFailureInformationReport");
1368
0
      c.get<scg_fail_info_report_s>().to_json(j);
1369
0
      break;
1370
0
    case types::scg_fail_transfer:
1371
0
      j.write_fieldname("ScgFailureTransfer");
1372
0
      c.get<scg_fail_transfer_s>().to_json(j);
1373
0
      break;
1374
0
    case types::f1_c_traffic_transfer:
1375
0
      j.write_fieldname("F1CTrafficTransfer");
1376
0
      c.get<f1_c_traffic_transfer_s>().to_json(j);
1377
0
      break;
1378
0
    case types::retrieve_ue_context_confirm:
1379
0
      j.write_fieldname("RetrieveUEContextConfirm");
1380
0
      c.get<retrieve_ue_context_confirm_s>().to_json(j);
1381
0
      break;
1382
0
    case types::cp_c_cancel:
1383
0
      j.write_fieldname("CPCCancel");
1384
0
      c.get<cp_c_cancel_s>().to_json(j);
1385
0
      break;
1386
0
    case types::rach_ind:
1387
0
      j.write_fieldname("RachIndication");
1388
0
      c.get<rach_ind_s>().to_json(j);
1389
0
      break;
1390
0
    case types::data_collection_upd:
1391
0
      j.write_fieldname("DataCollectionUpdate");
1392
0
      c.get<data_collection_upd_s>().to_json(j);
1393
0
      break;
1394
0
    default:
1395
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::init_msg_c");
1396
0
  }
1397
0
  j.end_obj();
1398
0
}
1399
OCUDUASN_CODE xnap_elem_procs_o::init_msg_c::pack(bit_ref& bref) const
1400
0
{
1401
0
  varlength_field_pack_guard varlen_scope(bref, true);
1402
0
  switch (type_) {
1403
0
    case types::ho_request:
1404
0
      HANDLE_CODE(c.get<ho_request_s>().pack(bref));
1405
0
      break;
1406
0
    case types::retrieve_ue_context_request:
1407
0
      HANDLE_CODE(c.get<retrieve_ue_context_request_s>().pack(bref));
1408
0
      break;
1409
0
    case types::sn_ode_addition_request:
1410
0
      HANDLE_CODE(c.get<sn_ode_addition_request_s>().pack(bref));
1411
0
      break;
1412
0
    case types::sn_ode_mod_request:
1413
0
      HANDLE_CODE(c.get<sn_ode_mod_request_s>().pack(bref));
1414
0
      break;
1415
0
    case types::sn_ode_mod_required:
1416
0
      HANDLE_CODE(c.get<sn_ode_mod_required_s>().pack(bref));
1417
0
      break;
1418
0
    case types::sn_ode_release_request:
1419
0
      HANDLE_CODE(c.get<sn_ode_release_request_s>().pack(bref));
1420
0
      break;
1421
0
    case types::sn_ode_release_required:
1422
0
      HANDLE_CODE(c.get<sn_ode_release_required_s>().pack(bref));
1423
0
      break;
1424
0
    case types::sn_ode_change_required:
1425
0
      HANDLE_CODE(c.get<sn_ode_change_required_s>().pack(bref));
1426
0
      break;
1427
0
    case types::xn_removal_request:
1428
0
      HANDLE_CODE(c.get<xn_removal_request_s>().pack(bref));
1429
0
      break;
1430
0
    case types::xn_setup_request:
1431
0
      HANDLE_CODE(c.get<xn_setup_request_s>().pack(bref));
1432
0
      break;
1433
0
    case types::ngran_node_cfg_upd:
1434
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_s>().pack(bref));
1435
0
      break;
1436
0
    case types::e_utra_nr_cell_res_coordination_request:
1437
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_request_s>().pack(bref));
1438
0
      break;
1439
0
    case types::cell_activation_request:
1440
0
      HANDLE_CODE(c.get<cell_activation_request_s>().pack(bref));
1441
0
      break;
1442
0
    case types::reset_request:
1443
0
      HANDLE_CODE(c.get<reset_request_s>().pack(bref));
1444
0
      break;
1445
0
    case types::res_status_request:
1446
0
      HANDLE_CODE(c.get<res_status_request_s>().pack(bref));
1447
0
      break;
1448
0
    case types::mob_change_request:
1449
0
      HANDLE_CODE(c.get<mob_change_request_s>().pack(bref));
1450
0
      break;
1451
0
    case types::iab_transport_migration_management_request:
1452
0
      HANDLE_CODE(c.get<iab_transport_migration_management_request_s>().pack(bref));
1453
0
      break;
1454
0
    case types::iab_transport_migration_mod_request:
1455
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_request_s>().pack(bref));
1456
0
      break;
1457
0
    case types::iab_res_coordination_request:
1458
0
      HANDLE_CODE(c.get<iab_res_coordination_request_s>().pack(bref));
1459
0
      break;
1460
0
    case types::partial_ue_context_transfer:
1461
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_s>().pack(bref));
1462
0
      break;
1463
0
    case types::data_collection_request:
1464
0
      HANDLE_CODE(c.get<data_collection_request_s>().pack(bref));
1465
0
      break;
1466
0
    case types::sn_status_transfer:
1467
0
      HANDLE_CODE(c.get<sn_status_transfer_s>().pack(bref));
1468
0
      break;
1469
0
    case types::ho_cancel:
1470
0
      HANDLE_CODE(c.get<ho_cancel_s>().pack(bref));
1471
0
      break;
1472
0
    case types::ran_paging:
1473
0
      HANDLE_CODE(c.get<ran_paging_s>().pack(bref));
1474
0
      break;
1475
0
    case types::xn_u_address_ind:
1476
0
      HANDLE_CODE(c.get<xn_u_address_ind_s>().pack(bref));
1477
0
      break;
1478
0
    case types::ue_context_release:
1479
0
      HANDLE_CODE(c.get<ue_context_release_s>().pack(bref));
1480
0
      break;
1481
0
    case types::sn_ode_recfg_complete:
1482
0
      HANDLE_CODE(c.get<sn_ode_recfg_complete_s>().pack(bref));
1483
0
      break;
1484
0
    case types::sn_ode_counter_check_request:
1485
0
      HANDLE_CODE(c.get<sn_ode_counter_check_request_s>().pack(bref));
1486
0
      break;
1487
0
    case types::rrc_transfer:
1488
0
      HANDLE_CODE(c.get<rrc_transfer_s>().pack(bref));
1489
0
      break;
1490
0
    case types::error_ind:
1491
0
      HANDLE_CODE(c.get<error_ind_s>().pack(bref));
1492
0
      break;
1493
0
    case types::private_msg:
1494
0
      HANDLE_CODE(c.get<private_msg_s>().pack(bref));
1495
0
      break;
1496
0
    case types::notif_ctrl_ind:
1497
0
      HANDLE_CODE(c.get<notif_ctrl_ind_s>().pack(bref));
1498
0
      break;
1499
0
    case types::activity_notif:
1500
0
      HANDLE_CODE(c.get<activity_notif_s>().pack(bref));
1501
0
      break;
1502
0
    case types::secondary_rat_data_usage_report:
1503
0
      HANDLE_CODE(c.get<secondary_rat_data_usage_report_s>().pack(bref));
1504
0
      break;
1505
0
    case types::deactiv_trace:
1506
0
      HANDLE_CODE(c.get<deactiv_trace_s>().pack(bref));
1507
0
      break;
1508
0
    case types::trace_start:
1509
0
      HANDLE_CODE(c.get<trace_start_s>().pack(bref));
1510
0
      break;
1511
0
    case types::ho_success:
1512
0
      HANDLE_CODE(c.get<ho_success_s>().pack(bref));
1513
0
      break;
1514
0
    case types::conditional_ho_cancel:
1515
0
      HANDLE_CODE(c.get<conditional_ho_cancel_s>().pack(bref));
1516
0
      break;
1517
0
    case types::early_status_transfer:
1518
0
      HANDLE_CODE(c.get<early_status_transfer_s>().pack(bref));
1519
0
      break;
1520
0
    case types::fail_ind:
1521
0
      HANDLE_CODE(c.get<fail_ind_s>().pack(bref));
1522
0
      break;
1523
0
    case types::ho_report:
1524
0
      HANDLE_CODE(c.get<ho_report_s>().pack(bref));
1525
0
      break;
1526
0
    case types::res_status_upd:
1527
0
      HANDLE_CODE(c.get<res_status_upd_s>().pack(bref));
1528
0
      break;
1529
0
    case types::access_and_mob_ind:
1530
0
      HANDLE_CODE(c.get<access_and_mob_ind_s>().pack(bref));
1531
0
      break;
1532
0
    case types::cell_traffic_trace:
1533
0
      HANDLE_CODE(c.get<cell_traffic_trace_s>().pack(bref));
1534
0
      break;
1535
0
    case types::ran_multicast_group_paging:
1536
0
      HANDLE_CODE(c.get<ran_multicast_group_paging_s>().pack(bref));
1537
0
      break;
1538
0
    case types::scg_fail_info_report:
1539
0
      HANDLE_CODE(c.get<scg_fail_info_report_s>().pack(bref));
1540
0
      break;
1541
0
    case types::scg_fail_transfer:
1542
0
      HANDLE_CODE(c.get<scg_fail_transfer_s>().pack(bref));
1543
0
      break;
1544
0
    case types::f1_c_traffic_transfer:
1545
0
      HANDLE_CODE(c.get<f1_c_traffic_transfer_s>().pack(bref));
1546
0
      break;
1547
0
    case types::retrieve_ue_context_confirm:
1548
0
      HANDLE_CODE(c.get<retrieve_ue_context_confirm_s>().pack(bref));
1549
0
      break;
1550
0
    case types::cp_c_cancel:
1551
0
      HANDLE_CODE(c.get<cp_c_cancel_s>().pack(bref));
1552
0
      break;
1553
0
    case types::rach_ind:
1554
0
      HANDLE_CODE(c.get<rach_ind_s>().pack(bref));
1555
0
      break;
1556
0
    case types::data_collection_upd:
1557
0
      HANDLE_CODE(c.get<data_collection_upd_s>().pack(bref));
1558
0
      break;
1559
0
    default:
1560
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::init_msg_c");
1561
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
1562
0
  }
1563
0
  return OCUDUASN_SUCCESS;
1564
0
}
1565
OCUDUASN_CODE xnap_elem_procs_o::init_msg_c::unpack(cbit_ref& bref)
1566
0
{
1567
0
  varlength_field_unpack_guard varlen_scope(bref, true);
1568
0
  switch (type_) {
1569
0
    case types::ho_request:
1570
0
      HANDLE_CODE(c.get<ho_request_s>().unpack(bref));
1571
0
      break;
1572
0
    case types::retrieve_ue_context_request:
1573
0
      HANDLE_CODE(c.get<retrieve_ue_context_request_s>().unpack(bref));
1574
0
      break;
1575
0
    case types::sn_ode_addition_request:
1576
0
      HANDLE_CODE(c.get<sn_ode_addition_request_s>().unpack(bref));
1577
0
      break;
1578
0
    case types::sn_ode_mod_request:
1579
0
      HANDLE_CODE(c.get<sn_ode_mod_request_s>().unpack(bref));
1580
0
      break;
1581
0
    case types::sn_ode_mod_required:
1582
0
      HANDLE_CODE(c.get<sn_ode_mod_required_s>().unpack(bref));
1583
0
      break;
1584
0
    case types::sn_ode_release_request:
1585
0
      HANDLE_CODE(c.get<sn_ode_release_request_s>().unpack(bref));
1586
0
      break;
1587
0
    case types::sn_ode_release_required:
1588
0
      HANDLE_CODE(c.get<sn_ode_release_required_s>().unpack(bref));
1589
0
      break;
1590
0
    case types::sn_ode_change_required:
1591
0
      HANDLE_CODE(c.get<sn_ode_change_required_s>().unpack(bref));
1592
0
      break;
1593
0
    case types::xn_removal_request:
1594
0
      HANDLE_CODE(c.get<xn_removal_request_s>().unpack(bref));
1595
0
      break;
1596
0
    case types::xn_setup_request:
1597
0
      HANDLE_CODE(c.get<xn_setup_request_s>().unpack(bref));
1598
0
      break;
1599
0
    case types::ngran_node_cfg_upd:
1600
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_s>().unpack(bref));
1601
0
      break;
1602
0
    case types::e_utra_nr_cell_res_coordination_request:
1603
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_request_s>().unpack(bref));
1604
0
      break;
1605
0
    case types::cell_activation_request:
1606
0
      HANDLE_CODE(c.get<cell_activation_request_s>().unpack(bref));
1607
0
      break;
1608
0
    case types::reset_request:
1609
0
      HANDLE_CODE(c.get<reset_request_s>().unpack(bref));
1610
0
      break;
1611
0
    case types::res_status_request:
1612
0
      HANDLE_CODE(c.get<res_status_request_s>().unpack(bref));
1613
0
      break;
1614
0
    case types::mob_change_request:
1615
0
      HANDLE_CODE(c.get<mob_change_request_s>().unpack(bref));
1616
0
      break;
1617
0
    case types::iab_transport_migration_management_request:
1618
0
      HANDLE_CODE(c.get<iab_transport_migration_management_request_s>().unpack(bref));
1619
0
      break;
1620
0
    case types::iab_transport_migration_mod_request:
1621
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_request_s>().unpack(bref));
1622
0
      break;
1623
0
    case types::iab_res_coordination_request:
1624
0
      HANDLE_CODE(c.get<iab_res_coordination_request_s>().unpack(bref));
1625
0
      break;
1626
0
    case types::partial_ue_context_transfer:
1627
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_s>().unpack(bref));
1628
0
      break;
1629
0
    case types::data_collection_request:
1630
0
      HANDLE_CODE(c.get<data_collection_request_s>().unpack(bref));
1631
0
      break;
1632
0
    case types::sn_status_transfer:
1633
0
      HANDLE_CODE(c.get<sn_status_transfer_s>().unpack(bref));
1634
0
      break;
1635
0
    case types::ho_cancel:
1636
0
      HANDLE_CODE(c.get<ho_cancel_s>().unpack(bref));
1637
0
      break;
1638
0
    case types::ran_paging:
1639
0
      HANDLE_CODE(c.get<ran_paging_s>().unpack(bref));
1640
0
      break;
1641
0
    case types::xn_u_address_ind:
1642
0
      HANDLE_CODE(c.get<xn_u_address_ind_s>().unpack(bref));
1643
0
      break;
1644
0
    case types::ue_context_release:
1645
0
      HANDLE_CODE(c.get<ue_context_release_s>().unpack(bref));
1646
0
      break;
1647
0
    case types::sn_ode_recfg_complete:
1648
0
      HANDLE_CODE(c.get<sn_ode_recfg_complete_s>().unpack(bref));
1649
0
      break;
1650
0
    case types::sn_ode_counter_check_request:
1651
0
      HANDLE_CODE(c.get<sn_ode_counter_check_request_s>().unpack(bref));
1652
0
      break;
1653
0
    case types::rrc_transfer:
1654
0
      HANDLE_CODE(c.get<rrc_transfer_s>().unpack(bref));
1655
0
      break;
1656
0
    case types::error_ind:
1657
0
      HANDLE_CODE(c.get<error_ind_s>().unpack(bref));
1658
0
      break;
1659
0
    case types::private_msg:
1660
0
      HANDLE_CODE(c.get<private_msg_s>().unpack(bref));
1661
0
      break;
1662
0
    case types::notif_ctrl_ind:
1663
0
      HANDLE_CODE(c.get<notif_ctrl_ind_s>().unpack(bref));
1664
0
      break;
1665
0
    case types::activity_notif:
1666
0
      HANDLE_CODE(c.get<activity_notif_s>().unpack(bref));
1667
0
      break;
1668
0
    case types::secondary_rat_data_usage_report:
1669
0
      HANDLE_CODE(c.get<secondary_rat_data_usage_report_s>().unpack(bref));
1670
0
      break;
1671
0
    case types::deactiv_trace:
1672
0
      HANDLE_CODE(c.get<deactiv_trace_s>().unpack(bref));
1673
0
      break;
1674
0
    case types::trace_start:
1675
0
      HANDLE_CODE(c.get<trace_start_s>().unpack(bref));
1676
0
      break;
1677
0
    case types::ho_success:
1678
0
      HANDLE_CODE(c.get<ho_success_s>().unpack(bref));
1679
0
      break;
1680
0
    case types::conditional_ho_cancel:
1681
0
      HANDLE_CODE(c.get<conditional_ho_cancel_s>().unpack(bref));
1682
0
      break;
1683
0
    case types::early_status_transfer:
1684
0
      HANDLE_CODE(c.get<early_status_transfer_s>().unpack(bref));
1685
0
      break;
1686
0
    case types::fail_ind:
1687
0
      HANDLE_CODE(c.get<fail_ind_s>().unpack(bref));
1688
0
      break;
1689
0
    case types::ho_report:
1690
0
      HANDLE_CODE(c.get<ho_report_s>().unpack(bref));
1691
0
      break;
1692
0
    case types::res_status_upd:
1693
0
      HANDLE_CODE(c.get<res_status_upd_s>().unpack(bref));
1694
0
      break;
1695
0
    case types::access_and_mob_ind:
1696
0
      HANDLE_CODE(c.get<access_and_mob_ind_s>().unpack(bref));
1697
0
      break;
1698
0
    case types::cell_traffic_trace:
1699
0
      HANDLE_CODE(c.get<cell_traffic_trace_s>().unpack(bref));
1700
0
      break;
1701
0
    case types::ran_multicast_group_paging:
1702
0
      HANDLE_CODE(c.get<ran_multicast_group_paging_s>().unpack(bref));
1703
0
      break;
1704
0
    case types::scg_fail_info_report:
1705
0
      HANDLE_CODE(c.get<scg_fail_info_report_s>().unpack(bref));
1706
0
      break;
1707
0
    case types::scg_fail_transfer:
1708
0
      HANDLE_CODE(c.get<scg_fail_transfer_s>().unpack(bref));
1709
0
      break;
1710
0
    case types::f1_c_traffic_transfer:
1711
0
      HANDLE_CODE(c.get<f1_c_traffic_transfer_s>().unpack(bref));
1712
0
      break;
1713
0
    case types::retrieve_ue_context_confirm:
1714
0
      HANDLE_CODE(c.get<retrieve_ue_context_confirm_s>().unpack(bref));
1715
0
      break;
1716
0
    case types::cp_c_cancel:
1717
0
      HANDLE_CODE(c.get<cp_c_cancel_s>().unpack(bref));
1718
0
      break;
1719
0
    case types::rach_ind:
1720
0
      HANDLE_CODE(c.get<rach_ind_s>().unpack(bref));
1721
0
      break;
1722
0
    case types::data_collection_upd:
1723
0
      HANDLE_CODE(c.get<data_collection_upd_s>().unpack(bref));
1724
0
      break;
1725
0
    default:
1726
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::init_msg_c");
1727
0
      return OCUDUASN_ERROR_DECODE_FAIL;
1728
0
  }
1729
0
  return OCUDUASN_SUCCESS;
1730
0
}
1731
1732
const char* xnap_elem_procs_o::init_msg_c::types_opts::to_string() const
1733
0
{
1734
0
  static const char* names[] = {"HandoverRequest",
1735
0
                                "RetrieveUEContextRequest",
1736
0
                                "SNodeAdditionRequest",
1737
0
                                "SNodeModificationRequest",
1738
0
                                "SNodeModificationRequired",
1739
0
                                "SNodeReleaseRequest",
1740
0
                                "SNodeReleaseRequired",
1741
0
                                "SNodeChangeRequired",
1742
0
                                "XnRemovalRequest",
1743
0
                                "XnSetupRequest",
1744
0
                                "NGRANNodeConfigurationUpdate",
1745
0
                                "E-UTRA-NR-CellResourceCoordinationRequest",
1746
0
                                "CellActivationRequest",
1747
0
                                "ResetRequest",
1748
0
                                "ResourceStatusRequest",
1749
0
                                "MobilityChangeRequest",
1750
0
                                "IABTransportMigrationManagementRequest",
1751
0
                                "IABTransportMigrationModificationRequest",
1752
0
                                "IABResourceCoordinationRequest",
1753
0
                                "PartialUEContextTransfer",
1754
0
                                "DataCollectionRequest",
1755
0
                                "SNStatusTransfer",
1756
0
                                "HandoverCancel",
1757
0
                                "RANPaging",
1758
0
                                "XnUAddressIndication",
1759
0
                                "UEContextRelease",
1760
0
                                "SNodeReconfigurationComplete",
1761
0
                                "SNodeCounterCheckRequest",
1762
0
                                "RRCTransfer",
1763
0
                                "ErrorIndication",
1764
0
                                "PrivateMessage",
1765
0
                                "NotificationControlIndication",
1766
0
                                "ActivityNotification",
1767
0
                                "SecondaryRATDataUsageReport",
1768
0
                                "DeactivateTrace",
1769
0
                                "TraceStart",
1770
0
                                "HandoverSuccess",
1771
0
                                "ConditionalHandoverCancel",
1772
0
                                "EarlyStatusTransfer",
1773
0
                                "FailureIndication",
1774
0
                                "HandoverReport",
1775
0
                                "ResourceStatusUpdate",
1776
0
                                "AccessAndMobilityIndication",
1777
0
                                "CellTrafficTrace",
1778
0
                                "RANMulticastGroupPaging",
1779
0
                                "ScgFailureInformationReport",
1780
0
                                "ScgFailureTransfer",
1781
0
                                "F1CTrafficTransfer",
1782
0
                                "RetrieveUEContextConfirm",
1783
0
                                "CPCCancel",
1784
0
                                "RachIndication",
1785
0
                                "DataCollectionUpdate"};
1786
0
  return convert_enum_idx(names, 52, value, "xnap_elem_procs_o::init_msg_c::types");
1787
0
}
1788
uint8_t xnap_elem_procs_o::init_msg_c::types_opts::to_number() const
1789
0
{
1790
0
  if (value == f1_c_traffic_transfer) {
1791
0
    return 1;
1792
0
  }
1793
0
  invalid_enum_number(value, "xnap_elem_procs_o::init_msg_c::types");
1794
0
  return 0;
1795
0
}
1796
1797
// SuccessfulOutcome ::= OPEN TYPE
1798
void xnap_elem_procs_o::successful_outcome_c::set(types::options e)
1799
0
{
1800
0
  type_ = e;
1801
0
  switch (type_) {
1802
0
    case types::ho_request_ack:
1803
0
      c = ho_request_ack_s{};
1804
0
      break;
1805
0
    case types::retrieve_ue_context_resp:
1806
0
      c = retrieve_ue_context_resp_s{};
1807
0
      break;
1808
0
    case types::sn_ode_addition_request_ack:
1809
0
      c = sn_ode_addition_request_ack_s{};
1810
0
      break;
1811
0
    case types::sn_ode_mod_request_ack:
1812
0
      c = sn_ode_mod_request_ack_s{};
1813
0
      break;
1814
0
    case types::sn_ode_mod_confirm:
1815
0
      c = sn_ode_mod_confirm_s{};
1816
0
      break;
1817
0
    case types::sn_ode_release_request_ack:
1818
0
      c = sn_ode_release_request_ack_s{};
1819
0
      break;
1820
0
    case types::sn_ode_release_confirm:
1821
0
      c = sn_ode_release_confirm_s{};
1822
0
      break;
1823
0
    case types::sn_ode_change_confirm:
1824
0
      c = sn_ode_change_confirm_s{};
1825
0
      break;
1826
0
    case types::xn_removal_resp:
1827
0
      c = xn_removal_resp_s{};
1828
0
      break;
1829
0
    case types::xn_setup_resp:
1830
0
      c = xn_setup_resp_s{};
1831
0
      break;
1832
0
    case types::ngran_node_cfg_upd_ack:
1833
0
      c = ngran_node_cfg_upd_ack_s{};
1834
0
      break;
1835
0
    case types::e_utra_nr_cell_res_coordination_resp:
1836
0
      c = e_utra_nr_cell_res_coordination_resp_s{};
1837
0
      break;
1838
0
    case types::cell_activation_resp:
1839
0
      c = cell_activation_resp_s{};
1840
0
      break;
1841
0
    case types::reset_resp:
1842
0
      c = reset_resp_s{};
1843
0
      break;
1844
0
    case types::res_status_resp:
1845
0
      c = res_status_resp_s{};
1846
0
      break;
1847
0
    case types::mob_change_ack:
1848
0
      c = mob_change_ack_s{};
1849
0
      break;
1850
0
    case types::iab_transport_migration_management_resp:
1851
0
      c = iab_transport_migration_management_resp_s{};
1852
0
      break;
1853
0
    case types::iab_transport_migration_mod_resp:
1854
0
      c = iab_transport_migration_mod_resp_s{};
1855
0
      break;
1856
0
    case types::iab_res_coordination_resp:
1857
0
      c = iab_res_coordination_resp_s{};
1858
0
      break;
1859
0
    case types::partial_ue_context_transfer_ack:
1860
0
      c = partial_ue_context_transfer_ack_s{};
1861
0
      break;
1862
0
    case types::data_collection_resp:
1863
0
      c = data_collection_resp_s{};
1864
0
      break;
1865
0
    case types::nulltype:
1866
0
      break;
1867
0
    default:
1868
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::successful_outcome_c");
1869
0
  }
1870
0
}
1871
ho_request_ack_s& xnap_elem_procs_o::successful_outcome_c::ho_request_ack()
1872
0
{
1873
0
  assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome");
1874
0
  return c.get<ho_request_ack_s>();
1875
0
}
1876
retrieve_ue_context_resp_s& xnap_elem_procs_o::successful_outcome_c::retrieve_ue_context_resp()
1877
0
{
1878
0
  assert_choice_type(types::retrieve_ue_context_resp, type_, "SuccessfulOutcome");
1879
0
  return c.get<retrieve_ue_context_resp_s>();
1880
0
}
1881
sn_ode_addition_request_ack_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_addition_request_ack()
1882
0
{
1883
0
  assert_choice_type(types::sn_ode_addition_request_ack, type_, "SuccessfulOutcome");
1884
0
  return c.get<sn_ode_addition_request_ack_s>();
1885
0
}
1886
sn_ode_mod_request_ack_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_mod_request_ack()
1887
0
{
1888
0
  assert_choice_type(types::sn_ode_mod_request_ack, type_, "SuccessfulOutcome");
1889
0
  return c.get<sn_ode_mod_request_ack_s>();
1890
0
}
1891
sn_ode_mod_confirm_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_mod_confirm()
1892
0
{
1893
0
  assert_choice_type(types::sn_ode_mod_confirm, type_, "SuccessfulOutcome");
1894
0
  return c.get<sn_ode_mod_confirm_s>();
1895
0
}
1896
sn_ode_release_request_ack_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_release_request_ack()
1897
0
{
1898
0
  assert_choice_type(types::sn_ode_release_request_ack, type_, "SuccessfulOutcome");
1899
0
  return c.get<sn_ode_release_request_ack_s>();
1900
0
}
1901
sn_ode_release_confirm_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_release_confirm()
1902
0
{
1903
0
  assert_choice_type(types::sn_ode_release_confirm, type_, "SuccessfulOutcome");
1904
0
  return c.get<sn_ode_release_confirm_s>();
1905
0
}
1906
sn_ode_change_confirm_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_change_confirm()
1907
0
{
1908
0
  assert_choice_type(types::sn_ode_change_confirm, type_, "SuccessfulOutcome");
1909
0
  return c.get<sn_ode_change_confirm_s>();
1910
0
}
1911
xn_removal_resp_s& xnap_elem_procs_o::successful_outcome_c::xn_removal_resp()
1912
0
{
1913
0
  assert_choice_type(types::xn_removal_resp, type_, "SuccessfulOutcome");
1914
0
  return c.get<xn_removal_resp_s>();
1915
0
}
1916
xn_setup_resp_s& xnap_elem_procs_o::successful_outcome_c::xn_setup_resp()
1917
0
{
1918
0
  assert_choice_type(types::xn_setup_resp, type_, "SuccessfulOutcome");
1919
0
  return c.get<xn_setup_resp_s>();
1920
0
}
1921
ngran_node_cfg_upd_ack_s& xnap_elem_procs_o::successful_outcome_c::ngran_node_cfg_upd_ack()
1922
0
{
1923
0
  assert_choice_type(types::ngran_node_cfg_upd_ack, type_, "SuccessfulOutcome");
1924
0
  return c.get<ngran_node_cfg_upd_ack_s>();
1925
0
}
1926
e_utra_nr_cell_res_coordination_resp_s& xnap_elem_procs_o::successful_outcome_c::e_utra_nr_cell_res_coordination_resp()
1927
0
{
1928
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_resp, type_, "SuccessfulOutcome");
1929
0
  return c.get<e_utra_nr_cell_res_coordination_resp_s>();
1930
0
}
1931
cell_activation_resp_s& xnap_elem_procs_o::successful_outcome_c::cell_activation_resp()
1932
0
{
1933
0
  assert_choice_type(types::cell_activation_resp, type_, "SuccessfulOutcome");
1934
0
  return c.get<cell_activation_resp_s>();
1935
0
}
1936
reset_resp_s& xnap_elem_procs_o::successful_outcome_c::reset_resp()
1937
0
{
1938
0
  assert_choice_type(types::reset_resp, type_, "SuccessfulOutcome");
1939
0
  return c.get<reset_resp_s>();
1940
0
}
1941
res_status_resp_s& xnap_elem_procs_o::successful_outcome_c::res_status_resp()
1942
0
{
1943
0
  assert_choice_type(types::res_status_resp, type_, "SuccessfulOutcome");
1944
0
  return c.get<res_status_resp_s>();
1945
0
}
1946
mob_change_ack_s& xnap_elem_procs_o::successful_outcome_c::mob_change_ack()
1947
0
{
1948
0
  assert_choice_type(types::mob_change_ack, type_, "SuccessfulOutcome");
1949
0
  return c.get<mob_change_ack_s>();
1950
0
}
1951
iab_transport_migration_management_resp_s&
1952
xnap_elem_procs_o::successful_outcome_c::iab_transport_migration_management_resp()
1953
0
{
1954
0
  assert_choice_type(types::iab_transport_migration_management_resp, type_, "SuccessfulOutcome");
1955
0
  return c.get<iab_transport_migration_management_resp_s>();
1956
0
}
1957
iab_transport_migration_mod_resp_s& xnap_elem_procs_o::successful_outcome_c::iab_transport_migration_mod_resp()
1958
0
{
1959
0
  assert_choice_type(types::iab_transport_migration_mod_resp, type_, "SuccessfulOutcome");
1960
0
  return c.get<iab_transport_migration_mod_resp_s>();
1961
0
}
1962
iab_res_coordination_resp_s& xnap_elem_procs_o::successful_outcome_c::iab_res_coordination_resp()
1963
0
{
1964
0
  assert_choice_type(types::iab_res_coordination_resp, type_, "SuccessfulOutcome");
1965
0
  return c.get<iab_res_coordination_resp_s>();
1966
0
}
1967
partial_ue_context_transfer_ack_s& xnap_elem_procs_o::successful_outcome_c::partial_ue_context_transfer_ack()
1968
0
{
1969
0
  assert_choice_type(types::partial_ue_context_transfer_ack, type_, "SuccessfulOutcome");
1970
0
  return c.get<partial_ue_context_transfer_ack_s>();
1971
0
}
1972
data_collection_resp_s& xnap_elem_procs_o::successful_outcome_c::data_collection_resp()
1973
0
{
1974
0
  assert_choice_type(types::data_collection_resp, type_, "SuccessfulOutcome");
1975
0
  return c.get<data_collection_resp_s>();
1976
0
}
1977
const ho_request_ack_s& xnap_elem_procs_o::successful_outcome_c::ho_request_ack() const
1978
0
{
1979
0
  assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome");
1980
0
  return c.get<ho_request_ack_s>();
1981
0
}
1982
const retrieve_ue_context_resp_s& xnap_elem_procs_o::successful_outcome_c::retrieve_ue_context_resp() const
1983
0
{
1984
0
  assert_choice_type(types::retrieve_ue_context_resp, type_, "SuccessfulOutcome");
1985
0
  return c.get<retrieve_ue_context_resp_s>();
1986
0
}
1987
const sn_ode_addition_request_ack_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_addition_request_ack() const
1988
0
{
1989
0
  assert_choice_type(types::sn_ode_addition_request_ack, type_, "SuccessfulOutcome");
1990
0
  return c.get<sn_ode_addition_request_ack_s>();
1991
0
}
1992
const sn_ode_mod_request_ack_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_mod_request_ack() const
1993
0
{
1994
0
  assert_choice_type(types::sn_ode_mod_request_ack, type_, "SuccessfulOutcome");
1995
0
  return c.get<sn_ode_mod_request_ack_s>();
1996
0
}
1997
const sn_ode_mod_confirm_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_mod_confirm() const
1998
0
{
1999
0
  assert_choice_type(types::sn_ode_mod_confirm, type_, "SuccessfulOutcome");
2000
0
  return c.get<sn_ode_mod_confirm_s>();
2001
0
}
2002
const sn_ode_release_request_ack_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_release_request_ack() const
2003
0
{
2004
0
  assert_choice_type(types::sn_ode_release_request_ack, type_, "SuccessfulOutcome");
2005
0
  return c.get<sn_ode_release_request_ack_s>();
2006
0
}
2007
const sn_ode_release_confirm_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_release_confirm() const
2008
0
{
2009
0
  assert_choice_type(types::sn_ode_release_confirm, type_, "SuccessfulOutcome");
2010
0
  return c.get<sn_ode_release_confirm_s>();
2011
0
}
2012
const sn_ode_change_confirm_s& xnap_elem_procs_o::successful_outcome_c::sn_ode_change_confirm() const
2013
0
{
2014
0
  assert_choice_type(types::sn_ode_change_confirm, type_, "SuccessfulOutcome");
2015
0
  return c.get<sn_ode_change_confirm_s>();
2016
0
}
2017
const xn_removal_resp_s& xnap_elem_procs_o::successful_outcome_c::xn_removal_resp() const
2018
0
{
2019
0
  assert_choice_type(types::xn_removal_resp, type_, "SuccessfulOutcome");
2020
0
  return c.get<xn_removal_resp_s>();
2021
0
}
2022
const xn_setup_resp_s& xnap_elem_procs_o::successful_outcome_c::xn_setup_resp() const
2023
0
{
2024
0
  assert_choice_type(types::xn_setup_resp, type_, "SuccessfulOutcome");
2025
0
  return c.get<xn_setup_resp_s>();
2026
0
}
2027
const ngran_node_cfg_upd_ack_s& xnap_elem_procs_o::successful_outcome_c::ngran_node_cfg_upd_ack() const
2028
0
{
2029
0
  assert_choice_type(types::ngran_node_cfg_upd_ack, type_, "SuccessfulOutcome");
2030
0
  return c.get<ngran_node_cfg_upd_ack_s>();
2031
0
}
2032
const e_utra_nr_cell_res_coordination_resp_s&
2033
xnap_elem_procs_o::successful_outcome_c::e_utra_nr_cell_res_coordination_resp() const
2034
0
{
2035
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_resp, type_, "SuccessfulOutcome");
2036
0
  return c.get<e_utra_nr_cell_res_coordination_resp_s>();
2037
0
}
2038
const cell_activation_resp_s& xnap_elem_procs_o::successful_outcome_c::cell_activation_resp() const
2039
0
{
2040
0
  assert_choice_type(types::cell_activation_resp, type_, "SuccessfulOutcome");
2041
0
  return c.get<cell_activation_resp_s>();
2042
0
}
2043
const reset_resp_s& xnap_elem_procs_o::successful_outcome_c::reset_resp() const
2044
0
{
2045
0
  assert_choice_type(types::reset_resp, type_, "SuccessfulOutcome");
2046
0
  return c.get<reset_resp_s>();
2047
0
}
2048
const res_status_resp_s& xnap_elem_procs_o::successful_outcome_c::res_status_resp() const
2049
0
{
2050
0
  assert_choice_type(types::res_status_resp, type_, "SuccessfulOutcome");
2051
0
  return c.get<res_status_resp_s>();
2052
0
}
2053
const mob_change_ack_s& xnap_elem_procs_o::successful_outcome_c::mob_change_ack() const
2054
0
{
2055
0
  assert_choice_type(types::mob_change_ack, type_, "SuccessfulOutcome");
2056
0
  return c.get<mob_change_ack_s>();
2057
0
}
2058
const iab_transport_migration_management_resp_s&
2059
xnap_elem_procs_o::successful_outcome_c::iab_transport_migration_management_resp() const
2060
0
{
2061
0
  assert_choice_type(types::iab_transport_migration_management_resp, type_, "SuccessfulOutcome");
2062
0
  return c.get<iab_transport_migration_management_resp_s>();
2063
0
}
2064
const iab_transport_migration_mod_resp_s&
2065
xnap_elem_procs_o::successful_outcome_c::iab_transport_migration_mod_resp() const
2066
0
{
2067
0
  assert_choice_type(types::iab_transport_migration_mod_resp, type_, "SuccessfulOutcome");
2068
0
  return c.get<iab_transport_migration_mod_resp_s>();
2069
0
}
2070
const iab_res_coordination_resp_s& xnap_elem_procs_o::successful_outcome_c::iab_res_coordination_resp() const
2071
0
{
2072
0
  assert_choice_type(types::iab_res_coordination_resp, type_, "SuccessfulOutcome");
2073
0
  return c.get<iab_res_coordination_resp_s>();
2074
0
}
2075
const partial_ue_context_transfer_ack_s&
2076
xnap_elem_procs_o::successful_outcome_c::partial_ue_context_transfer_ack() const
2077
0
{
2078
0
  assert_choice_type(types::partial_ue_context_transfer_ack, type_, "SuccessfulOutcome");
2079
0
  return c.get<partial_ue_context_transfer_ack_s>();
2080
0
}
2081
const data_collection_resp_s& xnap_elem_procs_o::successful_outcome_c::data_collection_resp() const
2082
0
{
2083
0
  assert_choice_type(types::data_collection_resp, type_, "SuccessfulOutcome");
2084
0
  return c.get<data_collection_resp_s>();
2085
0
}
2086
void xnap_elem_procs_o::successful_outcome_c::to_json(json_writer& j) const
2087
0
{
2088
0
  j.start_obj();
2089
0
  switch (type_) {
2090
0
    case types::ho_request_ack:
2091
0
      j.write_fieldname("HandoverRequestAcknowledge");
2092
0
      c.get<ho_request_ack_s>().to_json(j);
2093
0
      break;
2094
0
    case types::retrieve_ue_context_resp:
2095
0
      j.write_fieldname("RetrieveUEContextResponse");
2096
0
      c.get<retrieve_ue_context_resp_s>().to_json(j);
2097
0
      break;
2098
0
    case types::sn_ode_addition_request_ack:
2099
0
      j.write_fieldname("SNodeAdditionRequestAcknowledge");
2100
0
      c.get<sn_ode_addition_request_ack_s>().to_json(j);
2101
0
      break;
2102
0
    case types::sn_ode_mod_request_ack:
2103
0
      j.write_fieldname("SNodeModificationRequestAcknowledge");
2104
0
      c.get<sn_ode_mod_request_ack_s>().to_json(j);
2105
0
      break;
2106
0
    case types::sn_ode_mod_confirm:
2107
0
      j.write_fieldname("SNodeModificationConfirm");
2108
0
      c.get<sn_ode_mod_confirm_s>().to_json(j);
2109
0
      break;
2110
0
    case types::sn_ode_release_request_ack:
2111
0
      j.write_fieldname("SNodeReleaseRequestAcknowledge");
2112
0
      c.get<sn_ode_release_request_ack_s>().to_json(j);
2113
0
      break;
2114
0
    case types::sn_ode_release_confirm:
2115
0
      j.write_fieldname("SNodeReleaseConfirm");
2116
0
      c.get<sn_ode_release_confirm_s>().to_json(j);
2117
0
      break;
2118
0
    case types::sn_ode_change_confirm:
2119
0
      j.write_fieldname("SNodeChangeConfirm");
2120
0
      c.get<sn_ode_change_confirm_s>().to_json(j);
2121
0
      break;
2122
0
    case types::xn_removal_resp:
2123
0
      j.write_fieldname("XnRemovalResponse");
2124
0
      c.get<xn_removal_resp_s>().to_json(j);
2125
0
      break;
2126
0
    case types::xn_setup_resp:
2127
0
      j.write_fieldname("XnSetupResponse");
2128
0
      c.get<xn_setup_resp_s>().to_json(j);
2129
0
      break;
2130
0
    case types::ngran_node_cfg_upd_ack:
2131
0
      j.write_fieldname("NGRANNodeConfigurationUpdateAcknowledge");
2132
0
      c.get<ngran_node_cfg_upd_ack_s>().to_json(j);
2133
0
      break;
2134
0
    case types::e_utra_nr_cell_res_coordination_resp:
2135
0
      j.write_fieldname("E-UTRA-NR-CellResourceCoordinationResponse");
2136
0
      c.get<e_utra_nr_cell_res_coordination_resp_s>().to_json(j);
2137
0
      break;
2138
0
    case types::cell_activation_resp:
2139
0
      j.write_fieldname("CellActivationResponse");
2140
0
      c.get<cell_activation_resp_s>().to_json(j);
2141
0
      break;
2142
0
    case types::reset_resp:
2143
0
      j.write_fieldname("ResetResponse");
2144
0
      c.get<reset_resp_s>().to_json(j);
2145
0
      break;
2146
0
    case types::res_status_resp:
2147
0
      j.write_fieldname("ResourceStatusResponse");
2148
0
      c.get<res_status_resp_s>().to_json(j);
2149
0
      break;
2150
0
    case types::mob_change_ack:
2151
0
      j.write_fieldname("MobilityChangeAcknowledge");
2152
0
      c.get<mob_change_ack_s>().to_json(j);
2153
0
      break;
2154
0
    case types::iab_transport_migration_management_resp:
2155
0
      j.write_fieldname("IABTransportMigrationManagementResponse");
2156
0
      c.get<iab_transport_migration_management_resp_s>().to_json(j);
2157
0
      break;
2158
0
    case types::iab_transport_migration_mod_resp:
2159
0
      j.write_fieldname("IABTransportMigrationModificationResponse");
2160
0
      c.get<iab_transport_migration_mod_resp_s>().to_json(j);
2161
0
      break;
2162
0
    case types::iab_res_coordination_resp:
2163
0
      j.write_fieldname("IABResourceCoordinationResponse");
2164
0
      c.get<iab_res_coordination_resp_s>().to_json(j);
2165
0
      break;
2166
0
    case types::partial_ue_context_transfer_ack:
2167
0
      j.write_fieldname("PartialUEContextTransferAcknowledge");
2168
0
      c.get<partial_ue_context_transfer_ack_s>().to_json(j);
2169
0
      break;
2170
0
    case types::data_collection_resp:
2171
0
      j.write_fieldname("DataCollectionResponse");
2172
0
      c.get<data_collection_resp_s>().to_json(j);
2173
0
      break;
2174
0
    default:
2175
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::successful_outcome_c");
2176
0
  }
2177
0
  j.end_obj();
2178
0
}
2179
OCUDUASN_CODE xnap_elem_procs_o::successful_outcome_c::pack(bit_ref& bref) const
2180
0
{
2181
0
  varlength_field_pack_guard varlen_scope(bref, true);
2182
0
  switch (type_) {
2183
0
    case types::ho_request_ack:
2184
0
      HANDLE_CODE(c.get<ho_request_ack_s>().pack(bref));
2185
0
      break;
2186
0
    case types::retrieve_ue_context_resp:
2187
0
      HANDLE_CODE(c.get<retrieve_ue_context_resp_s>().pack(bref));
2188
0
      break;
2189
0
    case types::sn_ode_addition_request_ack:
2190
0
      HANDLE_CODE(c.get<sn_ode_addition_request_ack_s>().pack(bref));
2191
0
      break;
2192
0
    case types::sn_ode_mod_request_ack:
2193
0
      HANDLE_CODE(c.get<sn_ode_mod_request_ack_s>().pack(bref));
2194
0
      break;
2195
0
    case types::sn_ode_mod_confirm:
2196
0
      HANDLE_CODE(c.get<sn_ode_mod_confirm_s>().pack(bref));
2197
0
      break;
2198
0
    case types::sn_ode_release_request_ack:
2199
0
      HANDLE_CODE(c.get<sn_ode_release_request_ack_s>().pack(bref));
2200
0
      break;
2201
0
    case types::sn_ode_release_confirm:
2202
0
      HANDLE_CODE(c.get<sn_ode_release_confirm_s>().pack(bref));
2203
0
      break;
2204
0
    case types::sn_ode_change_confirm:
2205
0
      HANDLE_CODE(c.get<sn_ode_change_confirm_s>().pack(bref));
2206
0
      break;
2207
0
    case types::xn_removal_resp:
2208
0
      HANDLE_CODE(c.get<xn_removal_resp_s>().pack(bref));
2209
0
      break;
2210
0
    case types::xn_setup_resp:
2211
0
      HANDLE_CODE(c.get<xn_setup_resp_s>().pack(bref));
2212
0
      break;
2213
0
    case types::ngran_node_cfg_upd_ack:
2214
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_ack_s>().pack(bref));
2215
0
      break;
2216
0
    case types::e_utra_nr_cell_res_coordination_resp:
2217
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_resp_s>().pack(bref));
2218
0
      break;
2219
0
    case types::cell_activation_resp:
2220
0
      HANDLE_CODE(c.get<cell_activation_resp_s>().pack(bref));
2221
0
      break;
2222
0
    case types::reset_resp:
2223
0
      HANDLE_CODE(c.get<reset_resp_s>().pack(bref));
2224
0
      break;
2225
0
    case types::res_status_resp:
2226
0
      HANDLE_CODE(c.get<res_status_resp_s>().pack(bref));
2227
0
      break;
2228
0
    case types::mob_change_ack:
2229
0
      HANDLE_CODE(c.get<mob_change_ack_s>().pack(bref));
2230
0
      break;
2231
0
    case types::iab_transport_migration_management_resp:
2232
0
      HANDLE_CODE(c.get<iab_transport_migration_management_resp_s>().pack(bref));
2233
0
      break;
2234
0
    case types::iab_transport_migration_mod_resp:
2235
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_resp_s>().pack(bref));
2236
0
      break;
2237
0
    case types::iab_res_coordination_resp:
2238
0
      HANDLE_CODE(c.get<iab_res_coordination_resp_s>().pack(bref));
2239
0
      break;
2240
0
    case types::partial_ue_context_transfer_ack:
2241
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_ack_s>().pack(bref));
2242
0
      break;
2243
0
    case types::data_collection_resp:
2244
0
      HANDLE_CODE(c.get<data_collection_resp_s>().pack(bref));
2245
0
      break;
2246
0
    default:
2247
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::successful_outcome_c");
2248
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
2249
0
  }
2250
0
  return OCUDUASN_SUCCESS;
2251
0
}
2252
OCUDUASN_CODE xnap_elem_procs_o::successful_outcome_c::unpack(cbit_ref& bref)
2253
0
{
2254
0
  varlength_field_unpack_guard varlen_scope(bref, true);
2255
0
  switch (type_) {
2256
0
    case types::ho_request_ack:
2257
0
      HANDLE_CODE(c.get<ho_request_ack_s>().unpack(bref));
2258
0
      break;
2259
0
    case types::retrieve_ue_context_resp:
2260
0
      HANDLE_CODE(c.get<retrieve_ue_context_resp_s>().unpack(bref));
2261
0
      break;
2262
0
    case types::sn_ode_addition_request_ack:
2263
0
      HANDLE_CODE(c.get<sn_ode_addition_request_ack_s>().unpack(bref));
2264
0
      break;
2265
0
    case types::sn_ode_mod_request_ack:
2266
0
      HANDLE_CODE(c.get<sn_ode_mod_request_ack_s>().unpack(bref));
2267
0
      break;
2268
0
    case types::sn_ode_mod_confirm:
2269
0
      HANDLE_CODE(c.get<sn_ode_mod_confirm_s>().unpack(bref));
2270
0
      break;
2271
0
    case types::sn_ode_release_request_ack:
2272
0
      HANDLE_CODE(c.get<sn_ode_release_request_ack_s>().unpack(bref));
2273
0
      break;
2274
0
    case types::sn_ode_release_confirm:
2275
0
      HANDLE_CODE(c.get<sn_ode_release_confirm_s>().unpack(bref));
2276
0
      break;
2277
0
    case types::sn_ode_change_confirm:
2278
0
      HANDLE_CODE(c.get<sn_ode_change_confirm_s>().unpack(bref));
2279
0
      break;
2280
0
    case types::xn_removal_resp:
2281
0
      HANDLE_CODE(c.get<xn_removal_resp_s>().unpack(bref));
2282
0
      break;
2283
0
    case types::xn_setup_resp:
2284
0
      HANDLE_CODE(c.get<xn_setup_resp_s>().unpack(bref));
2285
0
      break;
2286
0
    case types::ngran_node_cfg_upd_ack:
2287
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_ack_s>().unpack(bref));
2288
0
      break;
2289
0
    case types::e_utra_nr_cell_res_coordination_resp:
2290
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_resp_s>().unpack(bref));
2291
0
      break;
2292
0
    case types::cell_activation_resp:
2293
0
      HANDLE_CODE(c.get<cell_activation_resp_s>().unpack(bref));
2294
0
      break;
2295
0
    case types::reset_resp:
2296
0
      HANDLE_CODE(c.get<reset_resp_s>().unpack(bref));
2297
0
      break;
2298
0
    case types::res_status_resp:
2299
0
      HANDLE_CODE(c.get<res_status_resp_s>().unpack(bref));
2300
0
      break;
2301
0
    case types::mob_change_ack:
2302
0
      HANDLE_CODE(c.get<mob_change_ack_s>().unpack(bref));
2303
0
      break;
2304
0
    case types::iab_transport_migration_management_resp:
2305
0
      HANDLE_CODE(c.get<iab_transport_migration_management_resp_s>().unpack(bref));
2306
0
      break;
2307
0
    case types::iab_transport_migration_mod_resp:
2308
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_resp_s>().unpack(bref));
2309
0
      break;
2310
0
    case types::iab_res_coordination_resp:
2311
0
      HANDLE_CODE(c.get<iab_res_coordination_resp_s>().unpack(bref));
2312
0
      break;
2313
0
    case types::partial_ue_context_transfer_ack:
2314
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_ack_s>().unpack(bref));
2315
0
      break;
2316
0
    case types::data_collection_resp:
2317
0
      HANDLE_CODE(c.get<data_collection_resp_s>().unpack(bref));
2318
0
      break;
2319
0
    default:
2320
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::successful_outcome_c");
2321
0
      return OCUDUASN_ERROR_DECODE_FAIL;
2322
0
  }
2323
0
  return OCUDUASN_SUCCESS;
2324
0
}
2325
2326
const char* xnap_elem_procs_o::successful_outcome_c::types_opts::to_string() const
2327
0
{
2328
0
  static const char* names[] = {"HandoverRequestAcknowledge",
2329
0
                                "RetrieveUEContextResponse",
2330
0
                                "SNodeAdditionRequestAcknowledge",
2331
0
                                "SNodeModificationRequestAcknowledge",
2332
0
                                "SNodeModificationConfirm",
2333
0
                                "SNodeReleaseRequestAcknowledge",
2334
0
                                "SNodeReleaseConfirm",
2335
0
                                "SNodeChangeConfirm",
2336
0
                                "XnRemovalResponse",
2337
0
                                "XnSetupResponse",
2338
0
                                "NGRANNodeConfigurationUpdateAcknowledge",
2339
0
                                "E-UTRA-NR-CellResourceCoordinationResponse",
2340
0
                                "CellActivationResponse",
2341
0
                                "ResetResponse",
2342
0
                                "ResourceStatusResponse",
2343
0
                                "MobilityChangeAcknowledge",
2344
0
                                "IABTransportMigrationManagementResponse",
2345
0
                                "IABTransportMigrationModificationResponse",
2346
0
                                "IABResourceCoordinationResponse",
2347
0
                                "PartialUEContextTransferAcknowledge",
2348
0
                                "DataCollectionResponse"};
2349
0
  return convert_enum_idx(names, 21, value, "xnap_elem_procs_o::successful_outcome_c::types");
2350
0
}
2351
2352
// UnsuccessfulOutcome ::= OPEN TYPE
2353
void xnap_elem_procs_o::unsuccessful_outcome_c::set(types::options e)
2354
0
{
2355
0
  type_ = e;
2356
0
  switch (type_) {
2357
0
    case types::ho_prep_fail:
2358
0
      c = ho_prep_fail_s{};
2359
0
      break;
2360
0
    case types::retrieve_ue_context_fail:
2361
0
      c = retrieve_ue_context_fail_s{};
2362
0
      break;
2363
0
    case types::sn_ode_addition_request_reject:
2364
0
      c = sn_ode_addition_request_reject_s{};
2365
0
      break;
2366
0
    case types::sn_ode_mod_request_reject:
2367
0
      c = sn_ode_mod_request_reject_s{};
2368
0
      break;
2369
0
    case types::sn_ode_mod_refuse:
2370
0
      c = sn_ode_mod_refuse_s{};
2371
0
      break;
2372
0
    case types::sn_ode_release_reject:
2373
0
      c = sn_ode_release_reject_s{};
2374
0
      break;
2375
0
    case types::sn_ode_change_refuse:
2376
0
      c = sn_ode_change_refuse_s{};
2377
0
      break;
2378
0
    case types::xn_removal_fail:
2379
0
      c = xn_removal_fail_s{};
2380
0
      break;
2381
0
    case types::xn_setup_fail:
2382
0
      c = xn_setup_fail_s{};
2383
0
      break;
2384
0
    case types::ngran_node_cfg_upd_fail:
2385
0
      c = ngran_node_cfg_upd_fail_s{};
2386
0
      break;
2387
0
    case types::cell_activation_fail:
2388
0
      c = cell_activation_fail_s{};
2389
0
      break;
2390
0
    case types::res_status_fail:
2391
0
      c = res_status_fail_s{};
2392
0
      break;
2393
0
    case types::mob_change_fail:
2394
0
      c = mob_change_fail_s{};
2395
0
      break;
2396
0
    case types::iab_transport_migration_management_reject:
2397
0
      c = iab_transport_migration_management_reject_s{};
2398
0
      break;
2399
0
    case types::partial_ue_context_transfer_fail:
2400
0
      c = partial_ue_context_transfer_fail_s{};
2401
0
      break;
2402
0
    case types::data_collection_fail:
2403
0
      c = data_collection_fail_s{};
2404
0
      break;
2405
0
    case types::nulltype:
2406
0
      break;
2407
0
    default:
2408
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::unsuccessful_outcome_c");
2409
0
  }
2410
0
}
2411
ho_prep_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail()
2412
0
{
2413
0
  assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome");
2414
0
  return c.get<ho_prep_fail_s>();
2415
0
}
2416
retrieve_ue_context_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::retrieve_ue_context_fail()
2417
0
{
2418
0
  assert_choice_type(types::retrieve_ue_context_fail, type_, "UnsuccessfulOutcome");
2419
0
  return c.get<retrieve_ue_context_fail_s>();
2420
0
}
2421
sn_ode_addition_request_reject_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_addition_request_reject()
2422
0
{
2423
0
  assert_choice_type(types::sn_ode_addition_request_reject, type_, "UnsuccessfulOutcome");
2424
0
  return c.get<sn_ode_addition_request_reject_s>();
2425
0
}
2426
sn_ode_mod_request_reject_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_mod_request_reject()
2427
0
{
2428
0
  assert_choice_type(types::sn_ode_mod_request_reject, type_, "UnsuccessfulOutcome");
2429
0
  return c.get<sn_ode_mod_request_reject_s>();
2430
0
}
2431
sn_ode_mod_refuse_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_mod_refuse()
2432
0
{
2433
0
  assert_choice_type(types::sn_ode_mod_refuse, type_, "UnsuccessfulOutcome");
2434
0
  return c.get<sn_ode_mod_refuse_s>();
2435
0
}
2436
sn_ode_release_reject_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_release_reject()
2437
0
{
2438
0
  assert_choice_type(types::sn_ode_release_reject, type_, "UnsuccessfulOutcome");
2439
0
  return c.get<sn_ode_release_reject_s>();
2440
0
}
2441
sn_ode_change_refuse_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_change_refuse()
2442
0
{
2443
0
  assert_choice_type(types::sn_ode_change_refuse, type_, "UnsuccessfulOutcome");
2444
0
  return c.get<sn_ode_change_refuse_s>();
2445
0
}
2446
xn_removal_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::xn_removal_fail()
2447
0
{
2448
0
  assert_choice_type(types::xn_removal_fail, type_, "UnsuccessfulOutcome");
2449
0
  return c.get<xn_removal_fail_s>();
2450
0
}
2451
xn_setup_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::xn_setup_fail()
2452
0
{
2453
0
  assert_choice_type(types::xn_setup_fail, type_, "UnsuccessfulOutcome");
2454
0
  return c.get<xn_setup_fail_s>();
2455
0
}
2456
ngran_node_cfg_upd_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::ngran_node_cfg_upd_fail()
2457
0
{
2458
0
  assert_choice_type(types::ngran_node_cfg_upd_fail, type_, "UnsuccessfulOutcome");
2459
0
  return c.get<ngran_node_cfg_upd_fail_s>();
2460
0
}
2461
cell_activation_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::cell_activation_fail()
2462
0
{
2463
0
  assert_choice_type(types::cell_activation_fail, type_, "UnsuccessfulOutcome");
2464
0
  return c.get<cell_activation_fail_s>();
2465
0
}
2466
res_status_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::res_status_fail()
2467
0
{
2468
0
  assert_choice_type(types::res_status_fail, type_, "UnsuccessfulOutcome");
2469
0
  return c.get<res_status_fail_s>();
2470
0
}
2471
mob_change_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::mob_change_fail()
2472
0
{
2473
0
  assert_choice_type(types::mob_change_fail, type_, "UnsuccessfulOutcome");
2474
0
  return c.get<mob_change_fail_s>();
2475
0
}
2476
iab_transport_migration_management_reject_s&
2477
xnap_elem_procs_o::unsuccessful_outcome_c::iab_transport_migration_management_reject()
2478
0
{
2479
0
  assert_choice_type(types::iab_transport_migration_management_reject, type_, "UnsuccessfulOutcome");
2480
0
  return c.get<iab_transport_migration_management_reject_s>();
2481
0
}
2482
partial_ue_context_transfer_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::partial_ue_context_transfer_fail()
2483
0
{
2484
0
  assert_choice_type(types::partial_ue_context_transfer_fail, type_, "UnsuccessfulOutcome");
2485
0
  return c.get<partial_ue_context_transfer_fail_s>();
2486
0
}
2487
data_collection_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::data_collection_fail()
2488
0
{
2489
0
  assert_choice_type(types::data_collection_fail, type_, "UnsuccessfulOutcome");
2490
0
  return c.get<data_collection_fail_s>();
2491
0
}
2492
const ho_prep_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::ho_prep_fail() const
2493
0
{
2494
0
  assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome");
2495
0
  return c.get<ho_prep_fail_s>();
2496
0
}
2497
const retrieve_ue_context_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::retrieve_ue_context_fail() const
2498
0
{
2499
0
  assert_choice_type(types::retrieve_ue_context_fail, type_, "UnsuccessfulOutcome");
2500
0
  return c.get<retrieve_ue_context_fail_s>();
2501
0
}
2502
const sn_ode_addition_request_reject_s&
2503
xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_addition_request_reject() const
2504
0
{
2505
0
  assert_choice_type(types::sn_ode_addition_request_reject, type_, "UnsuccessfulOutcome");
2506
0
  return c.get<sn_ode_addition_request_reject_s>();
2507
0
}
2508
const sn_ode_mod_request_reject_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_mod_request_reject() const
2509
0
{
2510
0
  assert_choice_type(types::sn_ode_mod_request_reject, type_, "UnsuccessfulOutcome");
2511
0
  return c.get<sn_ode_mod_request_reject_s>();
2512
0
}
2513
const sn_ode_mod_refuse_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_mod_refuse() const
2514
0
{
2515
0
  assert_choice_type(types::sn_ode_mod_refuse, type_, "UnsuccessfulOutcome");
2516
0
  return c.get<sn_ode_mod_refuse_s>();
2517
0
}
2518
const sn_ode_release_reject_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_release_reject() const
2519
0
{
2520
0
  assert_choice_type(types::sn_ode_release_reject, type_, "UnsuccessfulOutcome");
2521
0
  return c.get<sn_ode_release_reject_s>();
2522
0
}
2523
const sn_ode_change_refuse_s& xnap_elem_procs_o::unsuccessful_outcome_c::sn_ode_change_refuse() const
2524
0
{
2525
0
  assert_choice_type(types::sn_ode_change_refuse, type_, "UnsuccessfulOutcome");
2526
0
  return c.get<sn_ode_change_refuse_s>();
2527
0
}
2528
const xn_removal_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::xn_removal_fail() const
2529
0
{
2530
0
  assert_choice_type(types::xn_removal_fail, type_, "UnsuccessfulOutcome");
2531
0
  return c.get<xn_removal_fail_s>();
2532
0
}
2533
const xn_setup_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::xn_setup_fail() const
2534
0
{
2535
0
  assert_choice_type(types::xn_setup_fail, type_, "UnsuccessfulOutcome");
2536
0
  return c.get<xn_setup_fail_s>();
2537
0
}
2538
const ngran_node_cfg_upd_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::ngran_node_cfg_upd_fail() const
2539
0
{
2540
0
  assert_choice_type(types::ngran_node_cfg_upd_fail, type_, "UnsuccessfulOutcome");
2541
0
  return c.get<ngran_node_cfg_upd_fail_s>();
2542
0
}
2543
const cell_activation_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::cell_activation_fail() const
2544
0
{
2545
0
  assert_choice_type(types::cell_activation_fail, type_, "UnsuccessfulOutcome");
2546
0
  return c.get<cell_activation_fail_s>();
2547
0
}
2548
const res_status_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::res_status_fail() const
2549
0
{
2550
0
  assert_choice_type(types::res_status_fail, type_, "UnsuccessfulOutcome");
2551
0
  return c.get<res_status_fail_s>();
2552
0
}
2553
const mob_change_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::mob_change_fail() const
2554
0
{
2555
0
  assert_choice_type(types::mob_change_fail, type_, "UnsuccessfulOutcome");
2556
0
  return c.get<mob_change_fail_s>();
2557
0
}
2558
const iab_transport_migration_management_reject_s&
2559
xnap_elem_procs_o::unsuccessful_outcome_c::iab_transport_migration_management_reject() const
2560
0
{
2561
0
  assert_choice_type(types::iab_transport_migration_management_reject, type_, "UnsuccessfulOutcome");
2562
0
  return c.get<iab_transport_migration_management_reject_s>();
2563
0
}
2564
const partial_ue_context_transfer_fail_s&
2565
xnap_elem_procs_o::unsuccessful_outcome_c::partial_ue_context_transfer_fail() const
2566
0
{
2567
0
  assert_choice_type(types::partial_ue_context_transfer_fail, type_, "UnsuccessfulOutcome");
2568
0
  return c.get<partial_ue_context_transfer_fail_s>();
2569
0
}
2570
const data_collection_fail_s& xnap_elem_procs_o::unsuccessful_outcome_c::data_collection_fail() const
2571
0
{
2572
0
  assert_choice_type(types::data_collection_fail, type_, "UnsuccessfulOutcome");
2573
0
  return c.get<data_collection_fail_s>();
2574
0
}
2575
void xnap_elem_procs_o::unsuccessful_outcome_c::to_json(json_writer& j) const
2576
0
{
2577
0
  j.start_obj();
2578
0
  switch (type_) {
2579
0
    case types::ho_prep_fail:
2580
0
      j.write_fieldname("HandoverPreparationFailure");
2581
0
      c.get<ho_prep_fail_s>().to_json(j);
2582
0
      break;
2583
0
    case types::retrieve_ue_context_fail:
2584
0
      j.write_fieldname("RetrieveUEContextFailure");
2585
0
      c.get<retrieve_ue_context_fail_s>().to_json(j);
2586
0
      break;
2587
0
    case types::sn_ode_addition_request_reject:
2588
0
      j.write_fieldname("SNodeAdditionRequestReject");
2589
0
      c.get<sn_ode_addition_request_reject_s>().to_json(j);
2590
0
      break;
2591
0
    case types::sn_ode_mod_request_reject:
2592
0
      j.write_fieldname("SNodeModificationRequestReject");
2593
0
      c.get<sn_ode_mod_request_reject_s>().to_json(j);
2594
0
      break;
2595
0
    case types::sn_ode_mod_refuse:
2596
0
      j.write_fieldname("SNodeModificationRefuse");
2597
0
      c.get<sn_ode_mod_refuse_s>().to_json(j);
2598
0
      break;
2599
0
    case types::sn_ode_release_reject:
2600
0
      j.write_fieldname("SNodeReleaseReject");
2601
0
      c.get<sn_ode_release_reject_s>().to_json(j);
2602
0
      break;
2603
0
    case types::sn_ode_change_refuse:
2604
0
      j.write_fieldname("SNodeChangeRefuse");
2605
0
      c.get<sn_ode_change_refuse_s>().to_json(j);
2606
0
      break;
2607
0
    case types::xn_removal_fail:
2608
0
      j.write_fieldname("XnRemovalFailure");
2609
0
      c.get<xn_removal_fail_s>().to_json(j);
2610
0
      break;
2611
0
    case types::xn_setup_fail:
2612
0
      j.write_fieldname("XnSetupFailure");
2613
0
      c.get<xn_setup_fail_s>().to_json(j);
2614
0
      break;
2615
0
    case types::ngran_node_cfg_upd_fail:
2616
0
      j.write_fieldname("NGRANNodeConfigurationUpdateFailure");
2617
0
      c.get<ngran_node_cfg_upd_fail_s>().to_json(j);
2618
0
      break;
2619
0
    case types::cell_activation_fail:
2620
0
      j.write_fieldname("CellActivationFailure");
2621
0
      c.get<cell_activation_fail_s>().to_json(j);
2622
0
      break;
2623
0
    case types::res_status_fail:
2624
0
      j.write_fieldname("ResourceStatusFailure");
2625
0
      c.get<res_status_fail_s>().to_json(j);
2626
0
      break;
2627
0
    case types::mob_change_fail:
2628
0
      j.write_fieldname("MobilityChangeFailure");
2629
0
      c.get<mob_change_fail_s>().to_json(j);
2630
0
      break;
2631
0
    case types::iab_transport_migration_management_reject:
2632
0
      j.write_fieldname("IABTransportMigrationManagementReject");
2633
0
      c.get<iab_transport_migration_management_reject_s>().to_json(j);
2634
0
      break;
2635
0
    case types::partial_ue_context_transfer_fail:
2636
0
      j.write_fieldname("PartialUEContextTransferFailure");
2637
0
      c.get<partial_ue_context_transfer_fail_s>().to_json(j);
2638
0
      break;
2639
0
    case types::data_collection_fail:
2640
0
      j.write_fieldname("DataCollectionFailure");
2641
0
      c.get<data_collection_fail_s>().to_json(j);
2642
0
      break;
2643
0
    default:
2644
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::unsuccessful_outcome_c");
2645
0
  }
2646
0
  j.end_obj();
2647
0
}
2648
OCUDUASN_CODE xnap_elem_procs_o::unsuccessful_outcome_c::pack(bit_ref& bref) const
2649
0
{
2650
0
  varlength_field_pack_guard varlen_scope(bref, true);
2651
0
  switch (type_) {
2652
0
    case types::ho_prep_fail:
2653
0
      HANDLE_CODE(c.get<ho_prep_fail_s>().pack(bref));
2654
0
      break;
2655
0
    case types::retrieve_ue_context_fail:
2656
0
      HANDLE_CODE(c.get<retrieve_ue_context_fail_s>().pack(bref));
2657
0
      break;
2658
0
    case types::sn_ode_addition_request_reject:
2659
0
      HANDLE_CODE(c.get<sn_ode_addition_request_reject_s>().pack(bref));
2660
0
      break;
2661
0
    case types::sn_ode_mod_request_reject:
2662
0
      HANDLE_CODE(c.get<sn_ode_mod_request_reject_s>().pack(bref));
2663
0
      break;
2664
0
    case types::sn_ode_mod_refuse:
2665
0
      HANDLE_CODE(c.get<sn_ode_mod_refuse_s>().pack(bref));
2666
0
      break;
2667
0
    case types::sn_ode_release_reject:
2668
0
      HANDLE_CODE(c.get<sn_ode_release_reject_s>().pack(bref));
2669
0
      break;
2670
0
    case types::sn_ode_change_refuse:
2671
0
      HANDLE_CODE(c.get<sn_ode_change_refuse_s>().pack(bref));
2672
0
      break;
2673
0
    case types::xn_removal_fail:
2674
0
      HANDLE_CODE(c.get<xn_removal_fail_s>().pack(bref));
2675
0
      break;
2676
0
    case types::xn_setup_fail:
2677
0
      HANDLE_CODE(c.get<xn_setup_fail_s>().pack(bref));
2678
0
      break;
2679
0
    case types::ngran_node_cfg_upd_fail:
2680
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_fail_s>().pack(bref));
2681
0
      break;
2682
0
    case types::cell_activation_fail:
2683
0
      HANDLE_CODE(c.get<cell_activation_fail_s>().pack(bref));
2684
0
      break;
2685
0
    case types::res_status_fail:
2686
0
      HANDLE_CODE(c.get<res_status_fail_s>().pack(bref));
2687
0
      break;
2688
0
    case types::mob_change_fail:
2689
0
      HANDLE_CODE(c.get<mob_change_fail_s>().pack(bref));
2690
0
      break;
2691
0
    case types::iab_transport_migration_management_reject:
2692
0
      HANDLE_CODE(c.get<iab_transport_migration_management_reject_s>().pack(bref));
2693
0
      break;
2694
0
    case types::partial_ue_context_transfer_fail:
2695
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_fail_s>().pack(bref));
2696
0
      break;
2697
0
    case types::data_collection_fail:
2698
0
      HANDLE_CODE(c.get<data_collection_fail_s>().pack(bref));
2699
0
      break;
2700
0
    default:
2701
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::unsuccessful_outcome_c");
2702
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
2703
0
  }
2704
0
  return OCUDUASN_SUCCESS;
2705
0
}
2706
OCUDUASN_CODE xnap_elem_procs_o::unsuccessful_outcome_c::unpack(cbit_ref& bref)
2707
0
{
2708
0
  varlength_field_unpack_guard varlen_scope(bref, true);
2709
0
  switch (type_) {
2710
0
    case types::ho_prep_fail:
2711
0
      HANDLE_CODE(c.get<ho_prep_fail_s>().unpack(bref));
2712
0
      break;
2713
0
    case types::retrieve_ue_context_fail:
2714
0
      HANDLE_CODE(c.get<retrieve_ue_context_fail_s>().unpack(bref));
2715
0
      break;
2716
0
    case types::sn_ode_addition_request_reject:
2717
0
      HANDLE_CODE(c.get<sn_ode_addition_request_reject_s>().unpack(bref));
2718
0
      break;
2719
0
    case types::sn_ode_mod_request_reject:
2720
0
      HANDLE_CODE(c.get<sn_ode_mod_request_reject_s>().unpack(bref));
2721
0
      break;
2722
0
    case types::sn_ode_mod_refuse:
2723
0
      HANDLE_CODE(c.get<sn_ode_mod_refuse_s>().unpack(bref));
2724
0
      break;
2725
0
    case types::sn_ode_release_reject:
2726
0
      HANDLE_CODE(c.get<sn_ode_release_reject_s>().unpack(bref));
2727
0
      break;
2728
0
    case types::sn_ode_change_refuse:
2729
0
      HANDLE_CODE(c.get<sn_ode_change_refuse_s>().unpack(bref));
2730
0
      break;
2731
0
    case types::xn_removal_fail:
2732
0
      HANDLE_CODE(c.get<xn_removal_fail_s>().unpack(bref));
2733
0
      break;
2734
0
    case types::xn_setup_fail:
2735
0
      HANDLE_CODE(c.get<xn_setup_fail_s>().unpack(bref));
2736
0
      break;
2737
0
    case types::ngran_node_cfg_upd_fail:
2738
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_fail_s>().unpack(bref));
2739
0
      break;
2740
0
    case types::cell_activation_fail:
2741
0
      HANDLE_CODE(c.get<cell_activation_fail_s>().unpack(bref));
2742
0
      break;
2743
0
    case types::res_status_fail:
2744
0
      HANDLE_CODE(c.get<res_status_fail_s>().unpack(bref));
2745
0
      break;
2746
0
    case types::mob_change_fail:
2747
0
      HANDLE_CODE(c.get<mob_change_fail_s>().unpack(bref));
2748
0
      break;
2749
0
    case types::iab_transport_migration_management_reject:
2750
0
      HANDLE_CODE(c.get<iab_transport_migration_management_reject_s>().unpack(bref));
2751
0
      break;
2752
0
    case types::partial_ue_context_transfer_fail:
2753
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_fail_s>().unpack(bref));
2754
0
      break;
2755
0
    case types::data_collection_fail:
2756
0
      HANDLE_CODE(c.get<data_collection_fail_s>().unpack(bref));
2757
0
      break;
2758
0
    default:
2759
0
      log_invalid_choice_id(type_, "xnap_elem_procs_o::unsuccessful_outcome_c");
2760
0
      return OCUDUASN_ERROR_DECODE_FAIL;
2761
0
  }
2762
0
  return OCUDUASN_SUCCESS;
2763
0
}
2764
2765
const char* xnap_elem_procs_o::unsuccessful_outcome_c::types_opts::to_string() const
2766
0
{
2767
0
  static const char* names[] = {"HandoverPreparationFailure",
2768
0
                                "RetrieveUEContextFailure",
2769
0
                                "SNodeAdditionRequestReject",
2770
0
                                "SNodeModificationRequestReject",
2771
0
                                "SNodeModificationRefuse",
2772
0
                                "SNodeReleaseReject",
2773
0
                                "SNodeChangeRefuse",
2774
0
                                "XnRemovalFailure",
2775
0
                                "XnSetupFailure",
2776
0
                                "NGRANNodeConfigurationUpdateFailure",
2777
0
                                "CellActivationFailure",
2778
0
                                "ResourceStatusFailure",
2779
0
                                "MobilityChangeFailure",
2780
0
                                "IABTransportMigrationManagementReject",
2781
0
                                "PartialUEContextTransferFailure",
2782
0
                                "DataCollectionFailure"};
2783
0
  return convert_enum_idx(names, 16, value, "xnap_elem_procs_o::unsuccessful_outcome_c::types");
2784
0
}
2785
2786
// InitiatingMessage ::= SEQUENCE{{XNAP-ELEMENTARY-PROCEDURE}}
2787
OCUDUASN_CODE init_msg_s::pack(bit_ref& bref) const
2788
0
{
2789
0
  HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true));
2790
0
  warn_assert(crit != xnap_elem_procs_o::get_crit(proc_code), __func__, __LINE__);
2791
0
  HANDLE_CODE(crit.pack(bref));
2792
0
  HANDLE_CODE(value.pack(bref));
2793
2794
0
  return OCUDUASN_SUCCESS;
2795
0
}
2796
OCUDUASN_CODE init_msg_s::unpack(cbit_ref& bref)
2797
0
{
2798
0
  HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true));
2799
0
  HANDLE_CODE(crit.unpack(bref));
2800
0
  value = xnap_elem_procs_o::get_init_msg(proc_code);
2801
0
  HANDLE_CODE(value.unpack(bref));
2802
2803
0
  return OCUDUASN_SUCCESS;
2804
0
}
2805
void init_msg_s::to_json(json_writer& j) const
2806
0
{
2807
0
  j.start_obj();
2808
0
  j.write_int("procedureCode", proc_code);
2809
0
  j.write_str("criticality", crit.to_string());
2810
0
  j.write_fieldname("value");
2811
0
  value.to_json(j);
2812
0
  j.end_obj();
2813
0
}
2814
bool init_msg_s::load_info_obj(const uint16_t& proc_code_)
2815
0
{
2816
0
  if (not xnap_elem_procs_o::is_proc_code_valid(proc_code_)) {
2817
0
    return false;
2818
0
  }
2819
0
  proc_code = proc_code_;
2820
0
  crit      = xnap_elem_procs_o::get_crit(proc_code);
2821
0
  value     = xnap_elem_procs_o::get_init_msg(proc_code);
2822
0
  return value.type().value != xnap_elem_procs_o::init_msg_c::types_opts::nulltype;
2823
0
}
2824
2825
// SuccessfulOutcome ::= SEQUENCE{{XNAP-ELEMENTARY-PROCEDURE}}
2826
OCUDUASN_CODE successful_outcome_s::pack(bit_ref& bref) const
2827
0
{
2828
0
  HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true));
2829
0
  warn_assert(crit != xnap_elem_procs_o::get_crit(proc_code), __func__, __LINE__);
2830
0
  HANDLE_CODE(crit.pack(bref));
2831
0
  HANDLE_CODE(value.pack(bref));
2832
2833
0
  return OCUDUASN_SUCCESS;
2834
0
}
2835
OCUDUASN_CODE successful_outcome_s::unpack(cbit_ref& bref)
2836
0
{
2837
0
  HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true));
2838
0
  HANDLE_CODE(crit.unpack(bref));
2839
0
  value = xnap_elem_procs_o::get_successful_outcome(proc_code);
2840
0
  HANDLE_CODE(value.unpack(bref));
2841
2842
0
  return OCUDUASN_SUCCESS;
2843
0
}
2844
void successful_outcome_s::to_json(json_writer& j) const
2845
0
{
2846
0
  j.start_obj();
2847
0
  j.write_int("procedureCode", proc_code);
2848
0
  j.write_str("criticality", crit.to_string());
2849
0
  j.write_fieldname("value");
2850
0
  value.to_json(j);
2851
0
  j.end_obj();
2852
0
}
2853
bool successful_outcome_s::load_info_obj(const uint16_t& proc_code_)
2854
0
{
2855
0
  if (not xnap_elem_procs_o::is_proc_code_valid(proc_code_)) {
2856
0
    return false;
2857
0
  }
2858
0
  proc_code = proc_code_;
2859
0
  crit      = xnap_elem_procs_o::get_crit(proc_code);
2860
0
  value     = xnap_elem_procs_o::get_successful_outcome(proc_code);
2861
0
  return value.type().value != xnap_elem_procs_o::successful_outcome_c::types_opts::nulltype;
2862
0
}
2863
2864
// UnsuccessfulOutcome ::= SEQUENCE{{XNAP-ELEMENTARY-PROCEDURE}}
2865
OCUDUASN_CODE unsuccessful_outcome_s::pack(bit_ref& bref) const
2866
0
{
2867
0
  HANDLE_CODE(pack_integer(bref, proc_code, (uint16_t)0u, (uint16_t)255u, false, true));
2868
0
  warn_assert(crit != xnap_elem_procs_o::get_crit(proc_code), __func__, __LINE__);
2869
0
  HANDLE_CODE(crit.pack(bref));
2870
0
  HANDLE_CODE(value.pack(bref));
2871
2872
0
  return OCUDUASN_SUCCESS;
2873
0
}
2874
OCUDUASN_CODE unsuccessful_outcome_s::unpack(cbit_ref& bref)
2875
0
{
2876
0
  HANDLE_CODE(unpack_integer(proc_code, bref, (uint16_t)0u, (uint16_t)255u, false, true));
2877
0
  HANDLE_CODE(crit.unpack(bref));
2878
0
  value = xnap_elem_procs_o::get_unsuccessful_outcome(proc_code);
2879
0
  HANDLE_CODE(value.unpack(bref));
2880
2881
0
  return OCUDUASN_SUCCESS;
2882
0
}
2883
void unsuccessful_outcome_s::to_json(json_writer& j) const
2884
0
{
2885
0
  j.start_obj();
2886
0
  j.write_int("procedureCode", proc_code);
2887
0
  j.write_str("criticality", crit.to_string());
2888
0
  j.write_fieldname("value");
2889
0
  value.to_json(j);
2890
0
  j.end_obj();
2891
0
}
2892
bool unsuccessful_outcome_s::load_info_obj(const uint16_t& proc_code_)
2893
0
{
2894
0
  if (not xnap_elem_procs_o::is_proc_code_valid(proc_code_)) {
2895
0
    return false;
2896
0
  }
2897
0
  proc_code = proc_code_;
2898
0
  crit      = xnap_elem_procs_o::get_crit(proc_code);
2899
0
  value     = xnap_elem_procs_o::get_unsuccessful_outcome(proc_code);
2900
0
  return value.type().value != xnap_elem_procs_o::unsuccessful_outcome_c::types_opts::nulltype;
2901
0
}
2902
2903
// XNAP-ELEMENTARY-PROCEDURES-CLASS-1 ::= OBJECT SET OF XNAP-ELEMENTARY-PROCEDURE
2904
uint16_t xnap_elem_procs_class_1_o::idx_to_proc_code(uint32_t idx)
2905
0
{
2906
0
  static const uint16_t names[] = {0, 3, 7, 9, 10, 11, 12, 14, 16, 17, 18, 25, 19, 20, 34, 36, 44, 45, 46, 49, 51};
2907
0
  return map_enum_number(names, 21, idx, "proc_code");
2908
0
}
2909
bool xnap_elem_procs_class_1_o::is_proc_code_valid(const uint16_t& proc_code)
2910
0
{
2911
0
  static const uint16_t names[] = {0, 3, 7, 9, 10, 11, 12, 14, 16, 17, 18, 25, 19, 20, 34, 36, 44, 45, 46, 49, 51};
2912
0
  for (const auto& o : names) {
2913
0
    if (o == proc_code) {
2914
0
      return true;
2915
0
    }
2916
0
  }
2917
0
  return false;
2918
0
}
2919
xnap_elem_procs_class_1_o::init_msg_c xnap_elem_procs_class_1_o::get_init_msg(const uint16_t& proc_code)
2920
0
{
2921
0
  init_msg_c ret{};
2922
0
  switch (proc_code) {
2923
0
    case 0:
2924
0
      ret.set(init_msg_c::types::ho_request);
2925
0
      break;
2926
0
    case 3:
2927
0
      ret.set(init_msg_c::types::retrieve_ue_context_request);
2928
0
      break;
2929
0
    case 7:
2930
0
      ret.set(init_msg_c::types::sn_ode_addition_request);
2931
0
      break;
2932
0
    case 9:
2933
0
      ret.set(init_msg_c::types::sn_ode_mod_request);
2934
0
      break;
2935
0
    case 10:
2936
0
      ret.set(init_msg_c::types::sn_ode_mod_required);
2937
0
      break;
2938
0
    case 11:
2939
0
      ret.set(init_msg_c::types::sn_ode_release_request);
2940
0
      break;
2941
0
    case 12:
2942
0
      ret.set(init_msg_c::types::sn_ode_release_required);
2943
0
      break;
2944
0
    case 14:
2945
0
      ret.set(init_msg_c::types::sn_ode_change_required);
2946
0
      break;
2947
0
    case 16:
2948
0
      ret.set(init_msg_c::types::xn_removal_request);
2949
0
      break;
2950
0
    case 17:
2951
0
      ret.set(init_msg_c::types::xn_setup_request);
2952
0
      break;
2953
0
    case 18:
2954
0
      ret.set(init_msg_c::types::ngran_node_cfg_upd);
2955
0
      break;
2956
0
    case 25:
2957
0
      ret.set(init_msg_c::types::e_utra_nr_cell_res_coordination_request);
2958
0
      break;
2959
0
    case 19:
2960
0
      ret.set(init_msg_c::types::cell_activation_request);
2961
0
      break;
2962
0
    case 20:
2963
0
      ret.set(init_msg_c::types::reset_request);
2964
0
      break;
2965
0
    case 34:
2966
0
      ret.set(init_msg_c::types::res_status_request);
2967
0
      break;
2968
0
    case 36:
2969
0
      ret.set(init_msg_c::types::mob_change_request);
2970
0
      break;
2971
0
    case 44:
2972
0
      ret.set(init_msg_c::types::iab_transport_migration_management_request);
2973
0
      break;
2974
0
    case 45:
2975
0
      ret.set(init_msg_c::types::iab_transport_migration_mod_request);
2976
0
      break;
2977
0
    case 46:
2978
0
      ret.set(init_msg_c::types::iab_res_coordination_request);
2979
0
      break;
2980
0
    case 49:
2981
0
      ret.set(init_msg_c::types::partial_ue_context_transfer);
2982
0
      break;
2983
0
    case 51:
2984
0
      ret.set(init_msg_c::types::data_collection_request);
2985
0
      break;
2986
0
    default:
2987
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
2988
0
  }
2989
0
  return ret;
2990
0
}
2991
xnap_elem_procs_class_1_o::successful_outcome_c
2992
xnap_elem_procs_class_1_o::get_successful_outcome(const uint16_t& proc_code)
2993
0
{
2994
0
  successful_outcome_c ret{};
2995
0
  switch (proc_code) {
2996
0
    case 0:
2997
0
      ret.set(successful_outcome_c::types::ho_request_ack);
2998
0
      break;
2999
0
    case 3:
3000
0
      ret.set(successful_outcome_c::types::retrieve_ue_context_resp);
3001
0
      break;
3002
0
    case 7:
3003
0
      ret.set(successful_outcome_c::types::sn_ode_addition_request_ack);
3004
0
      break;
3005
0
    case 9:
3006
0
      ret.set(successful_outcome_c::types::sn_ode_mod_request_ack);
3007
0
      break;
3008
0
    case 10:
3009
0
      ret.set(successful_outcome_c::types::sn_ode_mod_confirm);
3010
0
      break;
3011
0
    case 11:
3012
0
      ret.set(successful_outcome_c::types::sn_ode_release_request_ack);
3013
0
      break;
3014
0
    case 12:
3015
0
      ret.set(successful_outcome_c::types::sn_ode_release_confirm);
3016
0
      break;
3017
0
    case 14:
3018
0
      ret.set(successful_outcome_c::types::sn_ode_change_confirm);
3019
0
      break;
3020
0
    case 16:
3021
0
      ret.set(successful_outcome_c::types::xn_removal_resp);
3022
0
      break;
3023
0
    case 17:
3024
0
      ret.set(successful_outcome_c::types::xn_setup_resp);
3025
0
      break;
3026
0
    case 18:
3027
0
      ret.set(successful_outcome_c::types::ngran_node_cfg_upd_ack);
3028
0
      break;
3029
0
    case 25:
3030
0
      ret.set(successful_outcome_c::types::e_utra_nr_cell_res_coordination_resp);
3031
0
      break;
3032
0
    case 19:
3033
0
      ret.set(successful_outcome_c::types::cell_activation_resp);
3034
0
      break;
3035
0
    case 20:
3036
0
      ret.set(successful_outcome_c::types::reset_resp);
3037
0
      break;
3038
0
    case 34:
3039
0
      ret.set(successful_outcome_c::types::res_status_resp);
3040
0
      break;
3041
0
    case 36:
3042
0
      ret.set(successful_outcome_c::types::mob_change_ack);
3043
0
      break;
3044
0
    case 44:
3045
0
      ret.set(successful_outcome_c::types::iab_transport_migration_management_resp);
3046
0
      break;
3047
0
    case 45:
3048
0
      ret.set(successful_outcome_c::types::iab_transport_migration_mod_resp);
3049
0
      break;
3050
0
    case 46:
3051
0
      ret.set(successful_outcome_c::types::iab_res_coordination_resp);
3052
0
      break;
3053
0
    case 49:
3054
0
      ret.set(successful_outcome_c::types::partial_ue_context_transfer_ack);
3055
0
      break;
3056
0
    case 51:
3057
0
      ret.set(successful_outcome_c::types::data_collection_resp);
3058
0
      break;
3059
0
    default:
3060
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
3061
0
  }
3062
0
  return ret;
3063
0
}
3064
xnap_elem_procs_class_1_o::unsuccessful_outcome_c
3065
xnap_elem_procs_class_1_o::get_unsuccessful_outcome(const uint16_t& proc_code)
3066
0
{
3067
0
  unsuccessful_outcome_c ret{};
3068
0
  switch (proc_code) {
3069
0
    case 0:
3070
0
      ret.set(unsuccessful_outcome_c::types::ho_prep_fail);
3071
0
      break;
3072
0
    case 3:
3073
0
      ret.set(unsuccessful_outcome_c::types::retrieve_ue_context_fail);
3074
0
      break;
3075
0
    case 7:
3076
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_addition_request_reject);
3077
0
      break;
3078
0
    case 9:
3079
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_mod_request_reject);
3080
0
      break;
3081
0
    case 10:
3082
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_mod_refuse);
3083
0
      break;
3084
0
    case 11:
3085
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_release_reject);
3086
0
      break;
3087
0
    case 14:
3088
0
      ret.set(unsuccessful_outcome_c::types::sn_ode_change_refuse);
3089
0
      break;
3090
0
    case 16:
3091
0
      ret.set(unsuccessful_outcome_c::types::xn_removal_fail);
3092
0
      break;
3093
0
    case 17:
3094
0
      ret.set(unsuccessful_outcome_c::types::xn_setup_fail);
3095
0
      break;
3096
0
    case 18:
3097
0
      ret.set(unsuccessful_outcome_c::types::ngran_node_cfg_upd_fail);
3098
0
      break;
3099
0
    case 19:
3100
0
      ret.set(unsuccessful_outcome_c::types::cell_activation_fail);
3101
0
      break;
3102
0
    case 34:
3103
0
      ret.set(unsuccessful_outcome_c::types::res_status_fail);
3104
0
      break;
3105
0
    case 36:
3106
0
      ret.set(unsuccessful_outcome_c::types::mob_change_fail);
3107
0
      break;
3108
0
    case 44:
3109
0
      ret.set(unsuccessful_outcome_c::types::iab_transport_migration_management_reject);
3110
0
      break;
3111
0
    case 49:
3112
0
      ret.set(unsuccessful_outcome_c::types::partial_ue_context_transfer_fail);
3113
0
      break;
3114
0
    case 51:
3115
0
      ret.set(unsuccessful_outcome_c::types::data_collection_fail);
3116
0
      break;
3117
0
    default:
3118
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
3119
0
  }
3120
0
  return ret;
3121
0
}
3122
crit_e xnap_elem_procs_class_1_o::get_crit(const uint16_t& proc_code)
3123
0
{
3124
0
  switch (proc_code) {
3125
0
    case 0:
3126
0
      return crit_e::reject;
3127
0
    case 3:
3128
0
      return crit_e::reject;
3129
0
    case 7:
3130
0
      return crit_e::reject;
3131
0
    case 9:
3132
0
      return crit_e::reject;
3133
0
    case 10:
3134
0
      return crit_e::reject;
3135
0
    case 11:
3136
0
      return crit_e::reject;
3137
0
    case 12:
3138
0
      return crit_e::reject;
3139
0
    case 14:
3140
0
      return crit_e::reject;
3141
0
    case 16:
3142
0
      return crit_e::reject;
3143
0
    case 17:
3144
0
      return crit_e::reject;
3145
0
    case 18:
3146
0
      return crit_e::reject;
3147
0
    case 25:
3148
0
      return crit_e::reject;
3149
0
    case 19:
3150
0
      return crit_e::reject;
3151
0
    case 20:
3152
0
      return crit_e::reject;
3153
0
    case 34:
3154
0
      return crit_e::reject;
3155
0
    case 36:
3156
0
      return crit_e::reject;
3157
0
    case 44:
3158
0
      return crit_e::reject;
3159
0
    case 45:
3160
0
      return crit_e::reject;
3161
0
    case 46:
3162
0
      return crit_e::reject;
3163
0
    case 49:
3164
0
      return crit_e::reject;
3165
0
    case 51:
3166
0
      return crit_e::reject;
3167
0
    default:
3168
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
3169
0
  }
3170
0
  return {};
3171
0
}
3172
3173
// InitiatingMessage ::= OPEN TYPE
3174
void xnap_elem_procs_class_1_o::init_msg_c::set(types::options e)
3175
0
{
3176
0
  type_ = e;
3177
0
  switch (type_) {
3178
0
    case types::ho_request:
3179
0
      c = ho_request_s{};
3180
0
      break;
3181
0
    case types::retrieve_ue_context_request:
3182
0
      c = retrieve_ue_context_request_s{};
3183
0
      break;
3184
0
    case types::sn_ode_addition_request:
3185
0
      c = sn_ode_addition_request_s{};
3186
0
      break;
3187
0
    case types::sn_ode_mod_request:
3188
0
      c = sn_ode_mod_request_s{};
3189
0
      break;
3190
0
    case types::sn_ode_mod_required:
3191
0
      c = sn_ode_mod_required_s{};
3192
0
      break;
3193
0
    case types::sn_ode_release_request:
3194
0
      c = sn_ode_release_request_s{};
3195
0
      break;
3196
0
    case types::sn_ode_release_required:
3197
0
      c = sn_ode_release_required_s{};
3198
0
      break;
3199
0
    case types::sn_ode_change_required:
3200
0
      c = sn_ode_change_required_s{};
3201
0
      break;
3202
0
    case types::xn_removal_request:
3203
0
      c = xn_removal_request_s{};
3204
0
      break;
3205
0
    case types::xn_setup_request:
3206
0
      c = xn_setup_request_s{};
3207
0
      break;
3208
0
    case types::ngran_node_cfg_upd:
3209
0
      c = ngran_node_cfg_upd_s{};
3210
0
      break;
3211
0
    case types::e_utra_nr_cell_res_coordination_request:
3212
0
      c = e_utra_nr_cell_res_coordination_request_s{};
3213
0
      break;
3214
0
    case types::cell_activation_request:
3215
0
      c = cell_activation_request_s{};
3216
0
      break;
3217
0
    case types::reset_request:
3218
0
      c = reset_request_s{};
3219
0
      break;
3220
0
    case types::res_status_request:
3221
0
      c = res_status_request_s{};
3222
0
      break;
3223
0
    case types::mob_change_request:
3224
0
      c = mob_change_request_s{};
3225
0
      break;
3226
0
    case types::iab_transport_migration_management_request:
3227
0
      c = iab_transport_migration_management_request_s{};
3228
0
      break;
3229
0
    case types::iab_transport_migration_mod_request:
3230
0
      c = iab_transport_migration_mod_request_s{};
3231
0
      break;
3232
0
    case types::iab_res_coordination_request:
3233
0
      c = iab_res_coordination_request_s{};
3234
0
      break;
3235
0
    case types::partial_ue_context_transfer:
3236
0
      c = partial_ue_context_transfer_s{};
3237
0
      break;
3238
0
    case types::data_collection_request:
3239
0
      c = data_collection_request_s{};
3240
0
      break;
3241
0
    case types::nulltype:
3242
0
      break;
3243
0
    default:
3244
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::init_msg_c");
3245
0
  }
3246
0
}
3247
ho_request_s& xnap_elem_procs_class_1_o::init_msg_c::ho_request()
3248
0
{
3249
0
  assert_choice_type(types::ho_request, type_, "InitiatingMessage");
3250
0
  return c.get<ho_request_s>();
3251
0
}
3252
retrieve_ue_context_request_s& xnap_elem_procs_class_1_o::init_msg_c::retrieve_ue_context_request()
3253
0
{
3254
0
  assert_choice_type(types::retrieve_ue_context_request, type_, "InitiatingMessage");
3255
0
  return c.get<retrieve_ue_context_request_s>();
3256
0
}
3257
sn_ode_addition_request_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_addition_request()
3258
0
{
3259
0
  assert_choice_type(types::sn_ode_addition_request, type_, "InitiatingMessage");
3260
0
  return c.get<sn_ode_addition_request_s>();
3261
0
}
3262
sn_ode_mod_request_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_mod_request()
3263
0
{
3264
0
  assert_choice_type(types::sn_ode_mod_request, type_, "InitiatingMessage");
3265
0
  return c.get<sn_ode_mod_request_s>();
3266
0
}
3267
sn_ode_mod_required_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_mod_required()
3268
0
{
3269
0
  assert_choice_type(types::sn_ode_mod_required, type_, "InitiatingMessage");
3270
0
  return c.get<sn_ode_mod_required_s>();
3271
0
}
3272
sn_ode_release_request_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_release_request()
3273
0
{
3274
0
  assert_choice_type(types::sn_ode_release_request, type_, "InitiatingMessage");
3275
0
  return c.get<sn_ode_release_request_s>();
3276
0
}
3277
sn_ode_release_required_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_release_required()
3278
0
{
3279
0
  assert_choice_type(types::sn_ode_release_required, type_, "InitiatingMessage");
3280
0
  return c.get<sn_ode_release_required_s>();
3281
0
}
3282
sn_ode_change_required_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_change_required()
3283
0
{
3284
0
  assert_choice_type(types::sn_ode_change_required, type_, "InitiatingMessage");
3285
0
  return c.get<sn_ode_change_required_s>();
3286
0
}
3287
xn_removal_request_s& xnap_elem_procs_class_1_o::init_msg_c::xn_removal_request()
3288
0
{
3289
0
  assert_choice_type(types::xn_removal_request, type_, "InitiatingMessage");
3290
0
  return c.get<xn_removal_request_s>();
3291
0
}
3292
xn_setup_request_s& xnap_elem_procs_class_1_o::init_msg_c::xn_setup_request()
3293
0
{
3294
0
  assert_choice_type(types::xn_setup_request, type_, "InitiatingMessage");
3295
0
  return c.get<xn_setup_request_s>();
3296
0
}
3297
ngran_node_cfg_upd_s& xnap_elem_procs_class_1_o::init_msg_c::ngran_node_cfg_upd()
3298
0
{
3299
0
  assert_choice_type(types::ngran_node_cfg_upd, type_, "InitiatingMessage");
3300
0
  return c.get<ngran_node_cfg_upd_s>();
3301
0
}
3302
e_utra_nr_cell_res_coordination_request_s&
3303
xnap_elem_procs_class_1_o::init_msg_c::e_utra_nr_cell_res_coordination_request()
3304
0
{
3305
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_request, type_, "InitiatingMessage");
3306
0
  return c.get<e_utra_nr_cell_res_coordination_request_s>();
3307
0
}
3308
cell_activation_request_s& xnap_elem_procs_class_1_o::init_msg_c::cell_activation_request()
3309
0
{
3310
0
  assert_choice_type(types::cell_activation_request, type_, "InitiatingMessage");
3311
0
  return c.get<cell_activation_request_s>();
3312
0
}
3313
reset_request_s& xnap_elem_procs_class_1_o::init_msg_c::reset_request()
3314
0
{
3315
0
  assert_choice_type(types::reset_request, type_, "InitiatingMessage");
3316
0
  return c.get<reset_request_s>();
3317
0
}
3318
res_status_request_s& xnap_elem_procs_class_1_o::init_msg_c::res_status_request()
3319
0
{
3320
0
  assert_choice_type(types::res_status_request, type_, "InitiatingMessage");
3321
0
  return c.get<res_status_request_s>();
3322
0
}
3323
mob_change_request_s& xnap_elem_procs_class_1_o::init_msg_c::mob_change_request()
3324
0
{
3325
0
  assert_choice_type(types::mob_change_request, type_, "InitiatingMessage");
3326
0
  return c.get<mob_change_request_s>();
3327
0
}
3328
iab_transport_migration_management_request_s&
3329
xnap_elem_procs_class_1_o::init_msg_c::iab_transport_migration_management_request()
3330
0
{
3331
0
  assert_choice_type(types::iab_transport_migration_management_request, type_, "InitiatingMessage");
3332
0
  return c.get<iab_transport_migration_management_request_s>();
3333
0
}
3334
iab_transport_migration_mod_request_s& xnap_elem_procs_class_1_o::init_msg_c::iab_transport_migration_mod_request()
3335
0
{
3336
0
  assert_choice_type(types::iab_transport_migration_mod_request, type_, "InitiatingMessage");
3337
0
  return c.get<iab_transport_migration_mod_request_s>();
3338
0
}
3339
iab_res_coordination_request_s& xnap_elem_procs_class_1_o::init_msg_c::iab_res_coordination_request()
3340
0
{
3341
0
  assert_choice_type(types::iab_res_coordination_request, type_, "InitiatingMessage");
3342
0
  return c.get<iab_res_coordination_request_s>();
3343
0
}
3344
partial_ue_context_transfer_s& xnap_elem_procs_class_1_o::init_msg_c::partial_ue_context_transfer()
3345
0
{
3346
0
  assert_choice_type(types::partial_ue_context_transfer, type_, "InitiatingMessage");
3347
0
  return c.get<partial_ue_context_transfer_s>();
3348
0
}
3349
data_collection_request_s& xnap_elem_procs_class_1_o::init_msg_c::data_collection_request()
3350
0
{
3351
0
  assert_choice_type(types::data_collection_request, type_, "InitiatingMessage");
3352
0
  return c.get<data_collection_request_s>();
3353
0
}
3354
const ho_request_s& xnap_elem_procs_class_1_o::init_msg_c::ho_request() const
3355
0
{
3356
0
  assert_choice_type(types::ho_request, type_, "InitiatingMessage");
3357
0
  return c.get<ho_request_s>();
3358
0
}
3359
const retrieve_ue_context_request_s& xnap_elem_procs_class_1_o::init_msg_c::retrieve_ue_context_request() const
3360
0
{
3361
0
  assert_choice_type(types::retrieve_ue_context_request, type_, "InitiatingMessage");
3362
0
  return c.get<retrieve_ue_context_request_s>();
3363
0
}
3364
const sn_ode_addition_request_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_addition_request() const
3365
0
{
3366
0
  assert_choice_type(types::sn_ode_addition_request, type_, "InitiatingMessage");
3367
0
  return c.get<sn_ode_addition_request_s>();
3368
0
}
3369
const sn_ode_mod_request_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_mod_request() const
3370
0
{
3371
0
  assert_choice_type(types::sn_ode_mod_request, type_, "InitiatingMessage");
3372
0
  return c.get<sn_ode_mod_request_s>();
3373
0
}
3374
const sn_ode_mod_required_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_mod_required() const
3375
0
{
3376
0
  assert_choice_type(types::sn_ode_mod_required, type_, "InitiatingMessage");
3377
0
  return c.get<sn_ode_mod_required_s>();
3378
0
}
3379
const sn_ode_release_request_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_release_request() const
3380
0
{
3381
0
  assert_choice_type(types::sn_ode_release_request, type_, "InitiatingMessage");
3382
0
  return c.get<sn_ode_release_request_s>();
3383
0
}
3384
const sn_ode_release_required_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_release_required() const
3385
0
{
3386
0
  assert_choice_type(types::sn_ode_release_required, type_, "InitiatingMessage");
3387
0
  return c.get<sn_ode_release_required_s>();
3388
0
}
3389
const sn_ode_change_required_s& xnap_elem_procs_class_1_o::init_msg_c::sn_ode_change_required() const
3390
0
{
3391
0
  assert_choice_type(types::sn_ode_change_required, type_, "InitiatingMessage");
3392
0
  return c.get<sn_ode_change_required_s>();
3393
0
}
3394
const xn_removal_request_s& xnap_elem_procs_class_1_o::init_msg_c::xn_removal_request() const
3395
0
{
3396
0
  assert_choice_type(types::xn_removal_request, type_, "InitiatingMessage");
3397
0
  return c.get<xn_removal_request_s>();
3398
0
}
3399
const xn_setup_request_s& xnap_elem_procs_class_1_o::init_msg_c::xn_setup_request() const
3400
0
{
3401
0
  assert_choice_type(types::xn_setup_request, type_, "InitiatingMessage");
3402
0
  return c.get<xn_setup_request_s>();
3403
0
}
3404
const ngran_node_cfg_upd_s& xnap_elem_procs_class_1_o::init_msg_c::ngran_node_cfg_upd() const
3405
0
{
3406
0
  assert_choice_type(types::ngran_node_cfg_upd, type_, "InitiatingMessage");
3407
0
  return c.get<ngran_node_cfg_upd_s>();
3408
0
}
3409
const e_utra_nr_cell_res_coordination_request_s&
3410
xnap_elem_procs_class_1_o::init_msg_c::e_utra_nr_cell_res_coordination_request() const
3411
0
{
3412
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_request, type_, "InitiatingMessage");
3413
0
  return c.get<e_utra_nr_cell_res_coordination_request_s>();
3414
0
}
3415
const cell_activation_request_s& xnap_elem_procs_class_1_o::init_msg_c::cell_activation_request() const
3416
0
{
3417
0
  assert_choice_type(types::cell_activation_request, type_, "InitiatingMessage");
3418
0
  return c.get<cell_activation_request_s>();
3419
0
}
3420
const reset_request_s& xnap_elem_procs_class_1_o::init_msg_c::reset_request() const
3421
0
{
3422
0
  assert_choice_type(types::reset_request, type_, "InitiatingMessage");
3423
0
  return c.get<reset_request_s>();
3424
0
}
3425
const res_status_request_s& xnap_elem_procs_class_1_o::init_msg_c::res_status_request() const
3426
0
{
3427
0
  assert_choice_type(types::res_status_request, type_, "InitiatingMessage");
3428
0
  return c.get<res_status_request_s>();
3429
0
}
3430
const mob_change_request_s& xnap_elem_procs_class_1_o::init_msg_c::mob_change_request() const
3431
0
{
3432
0
  assert_choice_type(types::mob_change_request, type_, "InitiatingMessage");
3433
0
  return c.get<mob_change_request_s>();
3434
0
}
3435
const iab_transport_migration_management_request_s&
3436
xnap_elem_procs_class_1_o::init_msg_c::iab_transport_migration_management_request() const
3437
0
{
3438
0
  assert_choice_type(types::iab_transport_migration_management_request, type_, "InitiatingMessage");
3439
0
  return c.get<iab_transport_migration_management_request_s>();
3440
0
}
3441
const iab_transport_migration_mod_request_s&
3442
xnap_elem_procs_class_1_o::init_msg_c::iab_transport_migration_mod_request() const
3443
0
{
3444
0
  assert_choice_type(types::iab_transport_migration_mod_request, type_, "InitiatingMessage");
3445
0
  return c.get<iab_transport_migration_mod_request_s>();
3446
0
}
3447
const iab_res_coordination_request_s& xnap_elem_procs_class_1_o::init_msg_c::iab_res_coordination_request() const
3448
0
{
3449
0
  assert_choice_type(types::iab_res_coordination_request, type_, "InitiatingMessage");
3450
0
  return c.get<iab_res_coordination_request_s>();
3451
0
}
3452
const partial_ue_context_transfer_s& xnap_elem_procs_class_1_o::init_msg_c::partial_ue_context_transfer() const
3453
0
{
3454
0
  assert_choice_type(types::partial_ue_context_transfer, type_, "InitiatingMessage");
3455
0
  return c.get<partial_ue_context_transfer_s>();
3456
0
}
3457
const data_collection_request_s& xnap_elem_procs_class_1_o::init_msg_c::data_collection_request() const
3458
0
{
3459
0
  assert_choice_type(types::data_collection_request, type_, "InitiatingMessage");
3460
0
  return c.get<data_collection_request_s>();
3461
0
}
3462
void xnap_elem_procs_class_1_o::init_msg_c::to_json(json_writer& j) const
3463
0
{
3464
0
  j.start_obj();
3465
0
  switch (type_) {
3466
0
    case types::ho_request:
3467
0
      j.write_fieldname("HandoverRequest");
3468
0
      c.get<ho_request_s>().to_json(j);
3469
0
      break;
3470
0
    case types::retrieve_ue_context_request:
3471
0
      j.write_fieldname("RetrieveUEContextRequest");
3472
0
      c.get<retrieve_ue_context_request_s>().to_json(j);
3473
0
      break;
3474
0
    case types::sn_ode_addition_request:
3475
0
      j.write_fieldname("SNodeAdditionRequest");
3476
0
      c.get<sn_ode_addition_request_s>().to_json(j);
3477
0
      break;
3478
0
    case types::sn_ode_mod_request:
3479
0
      j.write_fieldname("SNodeModificationRequest");
3480
0
      c.get<sn_ode_mod_request_s>().to_json(j);
3481
0
      break;
3482
0
    case types::sn_ode_mod_required:
3483
0
      j.write_fieldname("SNodeModificationRequired");
3484
0
      c.get<sn_ode_mod_required_s>().to_json(j);
3485
0
      break;
3486
0
    case types::sn_ode_release_request:
3487
0
      j.write_fieldname("SNodeReleaseRequest");
3488
0
      c.get<sn_ode_release_request_s>().to_json(j);
3489
0
      break;
3490
0
    case types::sn_ode_release_required:
3491
0
      j.write_fieldname("SNodeReleaseRequired");
3492
0
      c.get<sn_ode_release_required_s>().to_json(j);
3493
0
      break;
3494
0
    case types::sn_ode_change_required:
3495
0
      j.write_fieldname("SNodeChangeRequired");
3496
0
      c.get<sn_ode_change_required_s>().to_json(j);
3497
0
      break;
3498
0
    case types::xn_removal_request:
3499
0
      j.write_fieldname("XnRemovalRequest");
3500
0
      c.get<xn_removal_request_s>().to_json(j);
3501
0
      break;
3502
0
    case types::xn_setup_request:
3503
0
      j.write_fieldname("XnSetupRequest");
3504
0
      c.get<xn_setup_request_s>().to_json(j);
3505
0
      break;
3506
0
    case types::ngran_node_cfg_upd:
3507
0
      j.write_fieldname("NGRANNodeConfigurationUpdate");
3508
0
      c.get<ngran_node_cfg_upd_s>().to_json(j);
3509
0
      break;
3510
0
    case types::e_utra_nr_cell_res_coordination_request:
3511
0
      j.write_fieldname("E-UTRA-NR-CellResourceCoordinationRequest");
3512
0
      c.get<e_utra_nr_cell_res_coordination_request_s>().to_json(j);
3513
0
      break;
3514
0
    case types::cell_activation_request:
3515
0
      j.write_fieldname("CellActivationRequest");
3516
0
      c.get<cell_activation_request_s>().to_json(j);
3517
0
      break;
3518
0
    case types::reset_request:
3519
0
      j.write_fieldname("ResetRequest");
3520
0
      c.get<reset_request_s>().to_json(j);
3521
0
      break;
3522
0
    case types::res_status_request:
3523
0
      j.write_fieldname("ResourceStatusRequest");
3524
0
      c.get<res_status_request_s>().to_json(j);
3525
0
      break;
3526
0
    case types::mob_change_request:
3527
0
      j.write_fieldname("MobilityChangeRequest");
3528
0
      c.get<mob_change_request_s>().to_json(j);
3529
0
      break;
3530
0
    case types::iab_transport_migration_management_request:
3531
0
      j.write_fieldname("IABTransportMigrationManagementRequest");
3532
0
      c.get<iab_transport_migration_management_request_s>().to_json(j);
3533
0
      break;
3534
0
    case types::iab_transport_migration_mod_request:
3535
0
      j.write_fieldname("IABTransportMigrationModificationRequest");
3536
0
      c.get<iab_transport_migration_mod_request_s>().to_json(j);
3537
0
      break;
3538
0
    case types::iab_res_coordination_request:
3539
0
      j.write_fieldname("IABResourceCoordinationRequest");
3540
0
      c.get<iab_res_coordination_request_s>().to_json(j);
3541
0
      break;
3542
0
    case types::partial_ue_context_transfer:
3543
0
      j.write_fieldname("PartialUEContextTransfer");
3544
0
      c.get<partial_ue_context_transfer_s>().to_json(j);
3545
0
      break;
3546
0
    case types::data_collection_request:
3547
0
      j.write_fieldname("DataCollectionRequest");
3548
0
      c.get<data_collection_request_s>().to_json(j);
3549
0
      break;
3550
0
    default:
3551
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::init_msg_c");
3552
0
  }
3553
0
  j.end_obj();
3554
0
}
3555
OCUDUASN_CODE xnap_elem_procs_class_1_o::init_msg_c::pack(bit_ref& bref) const
3556
0
{
3557
0
  varlength_field_pack_guard varlen_scope(bref, true);
3558
0
  switch (type_) {
3559
0
    case types::ho_request:
3560
0
      HANDLE_CODE(c.get<ho_request_s>().pack(bref));
3561
0
      break;
3562
0
    case types::retrieve_ue_context_request:
3563
0
      HANDLE_CODE(c.get<retrieve_ue_context_request_s>().pack(bref));
3564
0
      break;
3565
0
    case types::sn_ode_addition_request:
3566
0
      HANDLE_CODE(c.get<sn_ode_addition_request_s>().pack(bref));
3567
0
      break;
3568
0
    case types::sn_ode_mod_request:
3569
0
      HANDLE_CODE(c.get<sn_ode_mod_request_s>().pack(bref));
3570
0
      break;
3571
0
    case types::sn_ode_mod_required:
3572
0
      HANDLE_CODE(c.get<sn_ode_mod_required_s>().pack(bref));
3573
0
      break;
3574
0
    case types::sn_ode_release_request:
3575
0
      HANDLE_CODE(c.get<sn_ode_release_request_s>().pack(bref));
3576
0
      break;
3577
0
    case types::sn_ode_release_required:
3578
0
      HANDLE_CODE(c.get<sn_ode_release_required_s>().pack(bref));
3579
0
      break;
3580
0
    case types::sn_ode_change_required:
3581
0
      HANDLE_CODE(c.get<sn_ode_change_required_s>().pack(bref));
3582
0
      break;
3583
0
    case types::xn_removal_request:
3584
0
      HANDLE_CODE(c.get<xn_removal_request_s>().pack(bref));
3585
0
      break;
3586
0
    case types::xn_setup_request:
3587
0
      HANDLE_CODE(c.get<xn_setup_request_s>().pack(bref));
3588
0
      break;
3589
0
    case types::ngran_node_cfg_upd:
3590
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_s>().pack(bref));
3591
0
      break;
3592
0
    case types::e_utra_nr_cell_res_coordination_request:
3593
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_request_s>().pack(bref));
3594
0
      break;
3595
0
    case types::cell_activation_request:
3596
0
      HANDLE_CODE(c.get<cell_activation_request_s>().pack(bref));
3597
0
      break;
3598
0
    case types::reset_request:
3599
0
      HANDLE_CODE(c.get<reset_request_s>().pack(bref));
3600
0
      break;
3601
0
    case types::res_status_request:
3602
0
      HANDLE_CODE(c.get<res_status_request_s>().pack(bref));
3603
0
      break;
3604
0
    case types::mob_change_request:
3605
0
      HANDLE_CODE(c.get<mob_change_request_s>().pack(bref));
3606
0
      break;
3607
0
    case types::iab_transport_migration_management_request:
3608
0
      HANDLE_CODE(c.get<iab_transport_migration_management_request_s>().pack(bref));
3609
0
      break;
3610
0
    case types::iab_transport_migration_mod_request:
3611
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_request_s>().pack(bref));
3612
0
      break;
3613
0
    case types::iab_res_coordination_request:
3614
0
      HANDLE_CODE(c.get<iab_res_coordination_request_s>().pack(bref));
3615
0
      break;
3616
0
    case types::partial_ue_context_transfer:
3617
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_s>().pack(bref));
3618
0
      break;
3619
0
    case types::data_collection_request:
3620
0
      HANDLE_CODE(c.get<data_collection_request_s>().pack(bref));
3621
0
      break;
3622
0
    default:
3623
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::init_msg_c");
3624
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
3625
0
  }
3626
0
  return OCUDUASN_SUCCESS;
3627
0
}
3628
OCUDUASN_CODE xnap_elem_procs_class_1_o::init_msg_c::unpack(cbit_ref& bref)
3629
0
{
3630
0
  varlength_field_unpack_guard varlen_scope(bref, true);
3631
0
  switch (type_) {
3632
0
    case types::ho_request:
3633
0
      HANDLE_CODE(c.get<ho_request_s>().unpack(bref));
3634
0
      break;
3635
0
    case types::retrieve_ue_context_request:
3636
0
      HANDLE_CODE(c.get<retrieve_ue_context_request_s>().unpack(bref));
3637
0
      break;
3638
0
    case types::sn_ode_addition_request:
3639
0
      HANDLE_CODE(c.get<sn_ode_addition_request_s>().unpack(bref));
3640
0
      break;
3641
0
    case types::sn_ode_mod_request:
3642
0
      HANDLE_CODE(c.get<sn_ode_mod_request_s>().unpack(bref));
3643
0
      break;
3644
0
    case types::sn_ode_mod_required:
3645
0
      HANDLE_CODE(c.get<sn_ode_mod_required_s>().unpack(bref));
3646
0
      break;
3647
0
    case types::sn_ode_release_request:
3648
0
      HANDLE_CODE(c.get<sn_ode_release_request_s>().unpack(bref));
3649
0
      break;
3650
0
    case types::sn_ode_release_required:
3651
0
      HANDLE_CODE(c.get<sn_ode_release_required_s>().unpack(bref));
3652
0
      break;
3653
0
    case types::sn_ode_change_required:
3654
0
      HANDLE_CODE(c.get<sn_ode_change_required_s>().unpack(bref));
3655
0
      break;
3656
0
    case types::xn_removal_request:
3657
0
      HANDLE_CODE(c.get<xn_removal_request_s>().unpack(bref));
3658
0
      break;
3659
0
    case types::xn_setup_request:
3660
0
      HANDLE_CODE(c.get<xn_setup_request_s>().unpack(bref));
3661
0
      break;
3662
0
    case types::ngran_node_cfg_upd:
3663
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_s>().unpack(bref));
3664
0
      break;
3665
0
    case types::e_utra_nr_cell_res_coordination_request:
3666
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_request_s>().unpack(bref));
3667
0
      break;
3668
0
    case types::cell_activation_request:
3669
0
      HANDLE_CODE(c.get<cell_activation_request_s>().unpack(bref));
3670
0
      break;
3671
0
    case types::reset_request:
3672
0
      HANDLE_CODE(c.get<reset_request_s>().unpack(bref));
3673
0
      break;
3674
0
    case types::res_status_request:
3675
0
      HANDLE_CODE(c.get<res_status_request_s>().unpack(bref));
3676
0
      break;
3677
0
    case types::mob_change_request:
3678
0
      HANDLE_CODE(c.get<mob_change_request_s>().unpack(bref));
3679
0
      break;
3680
0
    case types::iab_transport_migration_management_request:
3681
0
      HANDLE_CODE(c.get<iab_transport_migration_management_request_s>().unpack(bref));
3682
0
      break;
3683
0
    case types::iab_transport_migration_mod_request:
3684
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_request_s>().unpack(bref));
3685
0
      break;
3686
0
    case types::iab_res_coordination_request:
3687
0
      HANDLE_CODE(c.get<iab_res_coordination_request_s>().unpack(bref));
3688
0
      break;
3689
0
    case types::partial_ue_context_transfer:
3690
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_s>().unpack(bref));
3691
0
      break;
3692
0
    case types::data_collection_request:
3693
0
      HANDLE_CODE(c.get<data_collection_request_s>().unpack(bref));
3694
0
      break;
3695
0
    default:
3696
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::init_msg_c");
3697
0
      return OCUDUASN_ERROR_DECODE_FAIL;
3698
0
  }
3699
0
  return OCUDUASN_SUCCESS;
3700
0
}
3701
3702
const char* xnap_elem_procs_class_1_o::init_msg_c::types_opts::to_string() const
3703
0
{
3704
0
  static const char* names[] = {"HandoverRequest",
3705
0
                                "RetrieveUEContextRequest",
3706
0
                                "SNodeAdditionRequest",
3707
0
                                "SNodeModificationRequest",
3708
0
                                "SNodeModificationRequired",
3709
0
                                "SNodeReleaseRequest",
3710
0
                                "SNodeReleaseRequired",
3711
0
                                "SNodeChangeRequired",
3712
0
                                "XnRemovalRequest",
3713
0
                                "XnSetupRequest",
3714
0
                                "NGRANNodeConfigurationUpdate",
3715
0
                                "E-UTRA-NR-CellResourceCoordinationRequest",
3716
0
                                "CellActivationRequest",
3717
0
                                "ResetRequest",
3718
0
                                "ResourceStatusRequest",
3719
0
                                "MobilityChangeRequest",
3720
0
                                "IABTransportMigrationManagementRequest",
3721
0
                                "IABTransportMigrationModificationRequest",
3722
0
                                "IABResourceCoordinationRequest",
3723
0
                                "PartialUEContextTransfer",
3724
0
                                "DataCollectionRequest"};
3725
0
  return convert_enum_idx(names, 21, value, "xnap_elem_procs_class_1_o::init_msg_c::types");
3726
0
}
3727
3728
// SuccessfulOutcome ::= OPEN TYPE
3729
void xnap_elem_procs_class_1_o::successful_outcome_c::set(types::options e)
3730
0
{
3731
0
  type_ = e;
3732
0
  switch (type_) {
3733
0
    case types::ho_request_ack:
3734
0
      c = ho_request_ack_s{};
3735
0
      break;
3736
0
    case types::retrieve_ue_context_resp:
3737
0
      c = retrieve_ue_context_resp_s{};
3738
0
      break;
3739
0
    case types::sn_ode_addition_request_ack:
3740
0
      c = sn_ode_addition_request_ack_s{};
3741
0
      break;
3742
0
    case types::sn_ode_mod_request_ack:
3743
0
      c = sn_ode_mod_request_ack_s{};
3744
0
      break;
3745
0
    case types::sn_ode_mod_confirm:
3746
0
      c = sn_ode_mod_confirm_s{};
3747
0
      break;
3748
0
    case types::sn_ode_release_request_ack:
3749
0
      c = sn_ode_release_request_ack_s{};
3750
0
      break;
3751
0
    case types::sn_ode_release_confirm:
3752
0
      c = sn_ode_release_confirm_s{};
3753
0
      break;
3754
0
    case types::sn_ode_change_confirm:
3755
0
      c = sn_ode_change_confirm_s{};
3756
0
      break;
3757
0
    case types::xn_removal_resp:
3758
0
      c = xn_removal_resp_s{};
3759
0
      break;
3760
0
    case types::xn_setup_resp:
3761
0
      c = xn_setup_resp_s{};
3762
0
      break;
3763
0
    case types::ngran_node_cfg_upd_ack:
3764
0
      c = ngran_node_cfg_upd_ack_s{};
3765
0
      break;
3766
0
    case types::e_utra_nr_cell_res_coordination_resp:
3767
0
      c = e_utra_nr_cell_res_coordination_resp_s{};
3768
0
      break;
3769
0
    case types::cell_activation_resp:
3770
0
      c = cell_activation_resp_s{};
3771
0
      break;
3772
0
    case types::reset_resp:
3773
0
      c = reset_resp_s{};
3774
0
      break;
3775
0
    case types::res_status_resp:
3776
0
      c = res_status_resp_s{};
3777
0
      break;
3778
0
    case types::mob_change_ack:
3779
0
      c = mob_change_ack_s{};
3780
0
      break;
3781
0
    case types::iab_transport_migration_management_resp:
3782
0
      c = iab_transport_migration_management_resp_s{};
3783
0
      break;
3784
0
    case types::iab_transport_migration_mod_resp:
3785
0
      c = iab_transport_migration_mod_resp_s{};
3786
0
      break;
3787
0
    case types::iab_res_coordination_resp:
3788
0
      c = iab_res_coordination_resp_s{};
3789
0
      break;
3790
0
    case types::partial_ue_context_transfer_ack:
3791
0
      c = partial_ue_context_transfer_ack_s{};
3792
0
      break;
3793
0
    case types::data_collection_resp:
3794
0
      c = data_collection_resp_s{};
3795
0
      break;
3796
0
    case types::nulltype:
3797
0
      break;
3798
0
    default:
3799
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::successful_outcome_c");
3800
0
  }
3801
0
}
3802
ho_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::ho_request_ack()
3803
0
{
3804
0
  assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome");
3805
0
  return c.get<ho_request_ack_s>();
3806
0
}
3807
retrieve_ue_context_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::retrieve_ue_context_resp()
3808
0
{
3809
0
  assert_choice_type(types::retrieve_ue_context_resp, type_, "SuccessfulOutcome");
3810
0
  return c.get<retrieve_ue_context_resp_s>();
3811
0
}
3812
sn_ode_addition_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_addition_request_ack()
3813
0
{
3814
0
  assert_choice_type(types::sn_ode_addition_request_ack, type_, "SuccessfulOutcome");
3815
0
  return c.get<sn_ode_addition_request_ack_s>();
3816
0
}
3817
sn_ode_mod_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_mod_request_ack()
3818
0
{
3819
0
  assert_choice_type(types::sn_ode_mod_request_ack, type_, "SuccessfulOutcome");
3820
0
  return c.get<sn_ode_mod_request_ack_s>();
3821
0
}
3822
sn_ode_mod_confirm_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_mod_confirm()
3823
0
{
3824
0
  assert_choice_type(types::sn_ode_mod_confirm, type_, "SuccessfulOutcome");
3825
0
  return c.get<sn_ode_mod_confirm_s>();
3826
0
}
3827
sn_ode_release_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_release_request_ack()
3828
0
{
3829
0
  assert_choice_type(types::sn_ode_release_request_ack, type_, "SuccessfulOutcome");
3830
0
  return c.get<sn_ode_release_request_ack_s>();
3831
0
}
3832
sn_ode_release_confirm_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_release_confirm()
3833
0
{
3834
0
  assert_choice_type(types::sn_ode_release_confirm, type_, "SuccessfulOutcome");
3835
0
  return c.get<sn_ode_release_confirm_s>();
3836
0
}
3837
sn_ode_change_confirm_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_change_confirm()
3838
0
{
3839
0
  assert_choice_type(types::sn_ode_change_confirm, type_, "SuccessfulOutcome");
3840
0
  return c.get<sn_ode_change_confirm_s>();
3841
0
}
3842
xn_removal_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::xn_removal_resp()
3843
0
{
3844
0
  assert_choice_type(types::xn_removal_resp, type_, "SuccessfulOutcome");
3845
0
  return c.get<xn_removal_resp_s>();
3846
0
}
3847
xn_setup_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::xn_setup_resp()
3848
0
{
3849
0
  assert_choice_type(types::xn_setup_resp, type_, "SuccessfulOutcome");
3850
0
  return c.get<xn_setup_resp_s>();
3851
0
}
3852
ngran_node_cfg_upd_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::ngran_node_cfg_upd_ack()
3853
0
{
3854
0
  assert_choice_type(types::ngran_node_cfg_upd_ack, type_, "SuccessfulOutcome");
3855
0
  return c.get<ngran_node_cfg_upd_ack_s>();
3856
0
}
3857
e_utra_nr_cell_res_coordination_resp_s&
3858
xnap_elem_procs_class_1_o::successful_outcome_c::e_utra_nr_cell_res_coordination_resp()
3859
0
{
3860
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_resp, type_, "SuccessfulOutcome");
3861
0
  return c.get<e_utra_nr_cell_res_coordination_resp_s>();
3862
0
}
3863
cell_activation_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::cell_activation_resp()
3864
0
{
3865
0
  assert_choice_type(types::cell_activation_resp, type_, "SuccessfulOutcome");
3866
0
  return c.get<cell_activation_resp_s>();
3867
0
}
3868
reset_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::reset_resp()
3869
0
{
3870
0
  assert_choice_type(types::reset_resp, type_, "SuccessfulOutcome");
3871
0
  return c.get<reset_resp_s>();
3872
0
}
3873
res_status_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::res_status_resp()
3874
0
{
3875
0
  assert_choice_type(types::res_status_resp, type_, "SuccessfulOutcome");
3876
0
  return c.get<res_status_resp_s>();
3877
0
}
3878
mob_change_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::mob_change_ack()
3879
0
{
3880
0
  assert_choice_type(types::mob_change_ack, type_, "SuccessfulOutcome");
3881
0
  return c.get<mob_change_ack_s>();
3882
0
}
3883
iab_transport_migration_management_resp_s&
3884
xnap_elem_procs_class_1_o::successful_outcome_c::iab_transport_migration_management_resp()
3885
0
{
3886
0
  assert_choice_type(types::iab_transport_migration_management_resp, type_, "SuccessfulOutcome");
3887
0
  return c.get<iab_transport_migration_management_resp_s>();
3888
0
}
3889
iab_transport_migration_mod_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::iab_transport_migration_mod_resp()
3890
0
{
3891
0
  assert_choice_type(types::iab_transport_migration_mod_resp, type_, "SuccessfulOutcome");
3892
0
  return c.get<iab_transport_migration_mod_resp_s>();
3893
0
}
3894
iab_res_coordination_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::iab_res_coordination_resp()
3895
0
{
3896
0
  assert_choice_type(types::iab_res_coordination_resp, type_, "SuccessfulOutcome");
3897
0
  return c.get<iab_res_coordination_resp_s>();
3898
0
}
3899
partial_ue_context_transfer_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::partial_ue_context_transfer_ack()
3900
0
{
3901
0
  assert_choice_type(types::partial_ue_context_transfer_ack, type_, "SuccessfulOutcome");
3902
0
  return c.get<partial_ue_context_transfer_ack_s>();
3903
0
}
3904
data_collection_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::data_collection_resp()
3905
0
{
3906
0
  assert_choice_type(types::data_collection_resp, type_, "SuccessfulOutcome");
3907
0
  return c.get<data_collection_resp_s>();
3908
0
}
3909
const ho_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::ho_request_ack() const
3910
0
{
3911
0
  assert_choice_type(types::ho_request_ack, type_, "SuccessfulOutcome");
3912
0
  return c.get<ho_request_ack_s>();
3913
0
}
3914
const retrieve_ue_context_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::retrieve_ue_context_resp() const
3915
0
{
3916
0
  assert_choice_type(types::retrieve_ue_context_resp, type_, "SuccessfulOutcome");
3917
0
  return c.get<retrieve_ue_context_resp_s>();
3918
0
}
3919
const sn_ode_addition_request_ack_s&
3920
xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_addition_request_ack() const
3921
0
{
3922
0
  assert_choice_type(types::sn_ode_addition_request_ack, type_, "SuccessfulOutcome");
3923
0
  return c.get<sn_ode_addition_request_ack_s>();
3924
0
}
3925
const sn_ode_mod_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_mod_request_ack() const
3926
0
{
3927
0
  assert_choice_type(types::sn_ode_mod_request_ack, type_, "SuccessfulOutcome");
3928
0
  return c.get<sn_ode_mod_request_ack_s>();
3929
0
}
3930
const sn_ode_mod_confirm_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_mod_confirm() const
3931
0
{
3932
0
  assert_choice_type(types::sn_ode_mod_confirm, type_, "SuccessfulOutcome");
3933
0
  return c.get<sn_ode_mod_confirm_s>();
3934
0
}
3935
const sn_ode_release_request_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_release_request_ack() const
3936
0
{
3937
0
  assert_choice_type(types::sn_ode_release_request_ack, type_, "SuccessfulOutcome");
3938
0
  return c.get<sn_ode_release_request_ack_s>();
3939
0
}
3940
const sn_ode_release_confirm_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_release_confirm() const
3941
0
{
3942
0
  assert_choice_type(types::sn_ode_release_confirm, type_, "SuccessfulOutcome");
3943
0
  return c.get<sn_ode_release_confirm_s>();
3944
0
}
3945
const sn_ode_change_confirm_s& xnap_elem_procs_class_1_o::successful_outcome_c::sn_ode_change_confirm() const
3946
0
{
3947
0
  assert_choice_type(types::sn_ode_change_confirm, type_, "SuccessfulOutcome");
3948
0
  return c.get<sn_ode_change_confirm_s>();
3949
0
}
3950
const xn_removal_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::xn_removal_resp() const
3951
0
{
3952
0
  assert_choice_type(types::xn_removal_resp, type_, "SuccessfulOutcome");
3953
0
  return c.get<xn_removal_resp_s>();
3954
0
}
3955
const xn_setup_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::xn_setup_resp() const
3956
0
{
3957
0
  assert_choice_type(types::xn_setup_resp, type_, "SuccessfulOutcome");
3958
0
  return c.get<xn_setup_resp_s>();
3959
0
}
3960
const ngran_node_cfg_upd_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::ngran_node_cfg_upd_ack() const
3961
0
{
3962
0
  assert_choice_type(types::ngran_node_cfg_upd_ack, type_, "SuccessfulOutcome");
3963
0
  return c.get<ngran_node_cfg_upd_ack_s>();
3964
0
}
3965
const e_utra_nr_cell_res_coordination_resp_s&
3966
xnap_elem_procs_class_1_o::successful_outcome_c::e_utra_nr_cell_res_coordination_resp() const
3967
0
{
3968
0
  assert_choice_type(types::e_utra_nr_cell_res_coordination_resp, type_, "SuccessfulOutcome");
3969
0
  return c.get<e_utra_nr_cell_res_coordination_resp_s>();
3970
0
}
3971
const cell_activation_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::cell_activation_resp() const
3972
0
{
3973
0
  assert_choice_type(types::cell_activation_resp, type_, "SuccessfulOutcome");
3974
0
  return c.get<cell_activation_resp_s>();
3975
0
}
3976
const reset_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::reset_resp() const
3977
0
{
3978
0
  assert_choice_type(types::reset_resp, type_, "SuccessfulOutcome");
3979
0
  return c.get<reset_resp_s>();
3980
0
}
3981
const res_status_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::res_status_resp() const
3982
0
{
3983
0
  assert_choice_type(types::res_status_resp, type_, "SuccessfulOutcome");
3984
0
  return c.get<res_status_resp_s>();
3985
0
}
3986
const mob_change_ack_s& xnap_elem_procs_class_1_o::successful_outcome_c::mob_change_ack() const
3987
0
{
3988
0
  assert_choice_type(types::mob_change_ack, type_, "SuccessfulOutcome");
3989
0
  return c.get<mob_change_ack_s>();
3990
0
}
3991
const iab_transport_migration_management_resp_s&
3992
xnap_elem_procs_class_1_o::successful_outcome_c::iab_transport_migration_management_resp() const
3993
0
{
3994
0
  assert_choice_type(types::iab_transport_migration_management_resp, type_, "SuccessfulOutcome");
3995
0
  return c.get<iab_transport_migration_management_resp_s>();
3996
0
}
3997
const iab_transport_migration_mod_resp_s&
3998
xnap_elem_procs_class_1_o::successful_outcome_c::iab_transport_migration_mod_resp() const
3999
0
{
4000
0
  assert_choice_type(types::iab_transport_migration_mod_resp, type_, "SuccessfulOutcome");
4001
0
  return c.get<iab_transport_migration_mod_resp_s>();
4002
0
}
4003
const iab_res_coordination_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::iab_res_coordination_resp() const
4004
0
{
4005
0
  assert_choice_type(types::iab_res_coordination_resp, type_, "SuccessfulOutcome");
4006
0
  return c.get<iab_res_coordination_resp_s>();
4007
0
}
4008
const partial_ue_context_transfer_ack_s&
4009
xnap_elem_procs_class_1_o::successful_outcome_c::partial_ue_context_transfer_ack() const
4010
0
{
4011
0
  assert_choice_type(types::partial_ue_context_transfer_ack, type_, "SuccessfulOutcome");
4012
0
  return c.get<partial_ue_context_transfer_ack_s>();
4013
0
}
4014
const data_collection_resp_s& xnap_elem_procs_class_1_o::successful_outcome_c::data_collection_resp() const
4015
0
{
4016
0
  assert_choice_type(types::data_collection_resp, type_, "SuccessfulOutcome");
4017
0
  return c.get<data_collection_resp_s>();
4018
0
}
4019
void xnap_elem_procs_class_1_o::successful_outcome_c::to_json(json_writer& j) const
4020
0
{
4021
0
  j.start_obj();
4022
0
  switch (type_) {
4023
0
    case types::ho_request_ack:
4024
0
      j.write_fieldname("HandoverRequestAcknowledge");
4025
0
      c.get<ho_request_ack_s>().to_json(j);
4026
0
      break;
4027
0
    case types::retrieve_ue_context_resp:
4028
0
      j.write_fieldname("RetrieveUEContextResponse");
4029
0
      c.get<retrieve_ue_context_resp_s>().to_json(j);
4030
0
      break;
4031
0
    case types::sn_ode_addition_request_ack:
4032
0
      j.write_fieldname("SNodeAdditionRequestAcknowledge");
4033
0
      c.get<sn_ode_addition_request_ack_s>().to_json(j);
4034
0
      break;
4035
0
    case types::sn_ode_mod_request_ack:
4036
0
      j.write_fieldname("SNodeModificationRequestAcknowledge");
4037
0
      c.get<sn_ode_mod_request_ack_s>().to_json(j);
4038
0
      break;
4039
0
    case types::sn_ode_mod_confirm:
4040
0
      j.write_fieldname("SNodeModificationConfirm");
4041
0
      c.get<sn_ode_mod_confirm_s>().to_json(j);
4042
0
      break;
4043
0
    case types::sn_ode_release_request_ack:
4044
0
      j.write_fieldname("SNodeReleaseRequestAcknowledge");
4045
0
      c.get<sn_ode_release_request_ack_s>().to_json(j);
4046
0
      break;
4047
0
    case types::sn_ode_release_confirm:
4048
0
      j.write_fieldname("SNodeReleaseConfirm");
4049
0
      c.get<sn_ode_release_confirm_s>().to_json(j);
4050
0
      break;
4051
0
    case types::sn_ode_change_confirm:
4052
0
      j.write_fieldname("SNodeChangeConfirm");
4053
0
      c.get<sn_ode_change_confirm_s>().to_json(j);
4054
0
      break;
4055
0
    case types::xn_removal_resp:
4056
0
      j.write_fieldname("XnRemovalResponse");
4057
0
      c.get<xn_removal_resp_s>().to_json(j);
4058
0
      break;
4059
0
    case types::xn_setup_resp:
4060
0
      j.write_fieldname("XnSetupResponse");
4061
0
      c.get<xn_setup_resp_s>().to_json(j);
4062
0
      break;
4063
0
    case types::ngran_node_cfg_upd_ack:
4064
0
      j.write_fieldname("NGRANNodeConfigurationUpdateAcknowledge");
4065
0
      c.get<ngran_node_cfg_upd_ack_s>().to_json(j);
4066
0
      break;
4067
0
    case types::e_utra_nr_cell_res_coordination_resp:
4068
0
      j.write_fieldname("E-UTRA-NR-CellResourceCoordinationResponse");
4069
0
      c.get<e_utra_nr_cell_res_coordination_resp_s>().to_json(j);
4070
0
      break;
4071
0
    case types::cell_activation_resp:
4072
0
      j.write_fieldname("CellActivationResponse");
4073
0
      c.get<cell_activation_resp_s>().to_json(j);
4074
0
      break;
4075
0
    case types::reset_resp:
4076
0
      j.write_fieldname("ResetResponse");
4077
0
      c.get<reset_resp_s>().to_json(j);
4078
0
      break;
4079
0
    case types::res_status_resp:
4080
0
      j.write_fieldname("ResourceStatusResponse");
4081
0
      c.get<res_status_resp_s>().to_json(j);
4082
0
      break;
4083
0
    case types::mob_change_ack:
4084
0
      j.write_fieldname("MobilityChangeAcknowledge");
4085
0
      c.get<mob_change_ack_s>().to_json(j);
4086
0
      break;
4087
0
    case types::iab_transport_migration_management_resp:
4088
0
      j.write_fieldname("IABTransportMigrationManagementResponse");
4089
0
      c.get<iab_transport_migration_management_resp_s>().to_json(j);
4090
0
      break;
4091
0
    case types::iab_transport_migration_mod_resp:
4092
0
      j.write_fieldname("IABTransportMigrationModificationResponse");
4093
0
      c.get<iab_transport_migration_mod_resp_s>().to_json(j);
4094
0
      break;
4095
0
    case types::iab_res_coordination_resp:
4096
0
      j.write_fieldname("IABResourceCoordinationResponse");
4097
0
      c.get<iab_res_coordination_resp_s>().to_json(j);
4098
0
      break;
4099
0
    case types::partial_ue_context_transfer_ack:
4100
0
      j.write_fieldname("PartialUEContextTransferAcknowledge");
4101
0
      c.get<partial_ue_context_transfer_ack_s>().to_json(j);
4102
0
      break;
4103
0
    case types::data_collection_resp:
4104
0
      j.write_fieldname("DataCollectionResponse");
4105
0
      c.get<data_collection_resp_s>().to_json(j);
4106
0
      break;
4107
0
    default:
4108
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::successful_outcome_c");
4109
0
  }
4110
0
  j.end_obj();
4111
0
}
4112
OCUDUASN_CODE xnap_elem_procs_class_1_o::successful_outcome_c::pack(bit_ref& bref) const
4113
0
{
4114
0
  varlength_field_pack_guard varlen_scope(bref, true);
4115
0
  switch (type_) {
4116
0
    case types::ho_request_ack:
4117
0
      HANDLE_CODE(c.get<ho_request_ack_s>().pack(bref));
4118
0
      break;
4119
0
    case types::retrieve_ue_context_resp:
4120
0
      HANDLE_CODE(c.get<retrieve_ue_context_resp_s>().pack(bref));
4121
0
      break;
4122
0
    case types::sn_ode_addition_request_ack:
4123
0
      HANDLE_CODE(c.get<sn_ode_addition_request_ack_s>().pack(bref));
4124
0
      break;
4125
0
    case types::sn_ode_mod_request_ack:
4126
0
      HANDLE_CODE(c.get<sn_ode_mod_request_ack_s>().pack(bref));
4127
0
      break;
4128
0
    case types::sn_ode_mod_confirm:
4129
0
      HANDLE_CODE(c.get<sn_ode_mod_confirm_s>().pack(bref));
4130
0
      break;
4131
0
    case types::sn_ode_release_request_ack:
4132
0
      HANDLE_CODE(c.get<sn_ode_release_request_ack_s>().pack(bref));
4133
0
      break;
4134
0
    case types::sn_ode_release_confirm:
4135
0
      HANDLE_CODE(c.get<sn_ode_release_confirm_s>().pack(bref));
4136
0
      break;
4137
0
    case types::sn_ode_change_confirm:
4138
0
      HANDLE_CODE(c.get<sn_ode_change_confirm_s>().pack(bref));
4139
0
      break;
4140
0
    case types::xn_removal_resp:
4141
0
      HANDLE_CODE(c.get<xn_removal_resp_s>().pack(bref));
4142
0
      break;
4143
0
    case types::xn_setup_resp:
4144
0
      HANDLE_CODE(c.get<xn_setup_resp_s>().pack(bref));
4145
0
      break;
4146
0
    case types::ngran_node_cfg_upd_ack:
4147
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_ack_s>().pack(bref));
4148
0
      break;
4149
0
    case types::e_utra_nr_cell_res_coordination_resp:
4150
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_resp_s>().pack(bref));
4151
0
      break;
4152
0
    case types::cell_activation_resp:
4153
0
      HANDLE_CODE(c.get<cell_activation_resp_s>().pack(bref));
4154
0
      break;
4155
0
    case types::reset_resp:
4156
0
      HANDLE_CODE(c.get<reset_resp_s>().pack(bref));
4157
0
      break;
4158
0
    case types::res_status_resp:
4159
0
      HANDLE_CODE(c.get<res_status_resp_s>().pack(bref));
4160
0
      break;
4161
0
    case types::mob_change_ack:
4162
0
      HANDLE_CODE(c.get<mob_change_ack_s>().pack(bref));
4163
0
      break;
4164
0
    case types::iab_transport_migration_management_resp:
4165
0
      HANDLE_CODE(c.get<iab_transport_migration_management_resp_s>().pack(bref));
4166
0
      break;
4167
0
    case types::iab_transport_migration_mod_resp:
4168
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_resp_s>().pack(bref));
4169
0
      break;
4170
0
    case types::iab_res_coordination_resp:
4171
0
      HANDLE_CODE(c.get<iab_res_coordination_resp_s>().pack(bref));
4172
0
      break;
4173
0
    case types::partial_ue_context_transfer_ack:
4174
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_ack_s>().pack(bref));
4175
0
      break;
4176
0
    case types::data_collection_resp:
4177
0
      HANDLE_CODE(c.get<data_collection_resp_s>().pack(bref));
4178
0
      break;
4179
0
    default:
4180
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::successful_outcome_c");
4181
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
4182
0
  }
4183
0
  return OCUDUASN_SUCCESS;
4184
0
}
4185
OCUDUASN_CODE xnap_elem_procs_class_1_o::successful_outcome_c::unpack(cbit_ref& bref)
4186
0
{
4187
0
  varlength_field_unpack_guard varlen_scope(bref, true);
4188
0
  switch (type_) {
4189
0
    case types::ho_request_ack:
4190
0
      HANDLE_CODE(c.get<ho_request_ack_s>().unpack(bref));
4191
0
      break;
4192
0
    case types::retrieve_ue_context_resp:
4193
0
      HANDLE_CODE(c.get<retrieve_ue_context_resp_s>().unpack(bref));
4194
0
      break;
4195
0
    case types::sn_ode_addition_request_ack:
4196
0
      HANDLE_CODE(c.get<sn_ode_addition_request_ack_s>().unpack(bref));
4197
0
      break;
4198
0
    case types::sn_ode_mod_request_ack:
4199
0
      HANDLE_CODE(c.get<sn_ode_mod_request_ack_s>().unpack(bref));
4200
0
      break;
4201
0
    case types::sn_ode_mod_confirm:
4202
0
      HANDLE_CODE(c.get<sn_ode_mod_confirm_s>().unpack(bref));
4203
0
      break;
4204
0
    case types::sn_ode_release_request_ack:
4205
0
      HANDLE_CODE(c.get<sn_ode_release_request_ack_s>().unpack(bref));
4206
0
      break;
4207
0
    case types::sn_ode_release_confirm:
4208
0
      HANDLE_CODE(c.get<sn_ode_release_confirm_s>().unpack(bref));
4209
0
      break;
4210
0
    case types::sn_ode_change_confirm:
4211
0
      HANDLE_CODE(c.get<sn_ode_change_confirm_s>().unpack(bref));
4212
0
      break;
4213
0
    case types::xn_removal_resp:
4214
0
      HANDLE_CODE(c.get<xn_removal_resp_s>().unpack(bref));
4215
0
      break;
4216
0
    case types::xn_setup_resp:
4217
0
      HANDLE_CODE(c.get<xn_setup_resp_s>().unpack(bref));
4218
0
      break;
4219
0
    case types::ngran_node_cfg_upd_ack:
4220
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_ack_s>().unpack(bref));
4221
0
      break;
4222
0
    case types::e_utra_nr_cell_res_coordination_resp:
4223
0
      HANDLE_CODE(c.get<e_utra_nr_cell_res_coordination_resp_s>().unpack(bref));
4224
0
      break;
4225
0
    case types::cell_activation_resp:
4226
0
      HANDLE_CODE(c.get<cell_activation_resp_s>().unpack(bref));
4227
0
      break;
4228
0
    case types::reset_resp:
4229
0
      HANDLE_CODE(c.get<reset_resp_s>().unpack(bref));
4230
0
      break;
4231
0
    case types::res_status_resp:
4232
0
      HANDLE_CODE(c.get<res_status_resp_s>().unpack(bref));
4233
0
      break;
4234
0
    case types::mob_change_ack:
4235
0
      HANDLE_CODE(c.get<mob_change_ack_s>().unpack(bref));
4236
0
      break;
4237
0
    case types::iab_transport_migration_management_resp:
4238
0
      HANDLE_CODE(c.get<iab_transport_migration_management_resp_s>().unpack(bref));
4239
0
      break;
4240
0
    case types::iab_transport_migration_mod_resp:
4241
0
      HANDLE_CODE(c.get<iab_transport_migration_mod_resp_s>().unpack(bref));
4242
0
      break;
4243
0
    case types::iab_res_coordination_resp:
4244
0
      HANDLE_CODE(c.get<iab_res_coordination_resp_s>().unpack(bref));
4245
0
      break;
4246
0
    case types::partial_ue_context_transfer_ack:
4247
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_ack_s>().unpack(bref));
4248
0
      break;
4249
0
    case types::data_collection_resp:
4250
0
      HANDLE_CODE(c.get<data_collection_resp_s>().unpack(bref));
4251
0
      break;
4252
0
    default:
4253
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::successful_outcome_c");
4254
0
      return OCUDUASN_ERROR_DECODE_FAIL;
4255
0
  }
4256
0
  return OCUDUASN_SUCCESS;
4257
0
}
4258
4259
const char* xnap_elem_procs_class_1_o::successful_outcome_c::types_opts::to_string() const
4260
0
{
4261
0
  static const char* names[] = {"HandoverRequestAcknowledge",
4262
0
                                "RetrieveUEContextResponse",
4263
0
                                "SNodeAdditionRequestAcknowledge",
4264
0
                                "SNodeModificationRequestAcknowledge",
4265
0
                                "SNodeModificationConfirm",
4266
0
                                "SNodeReleaseRequestAcknowledge",
4267
0
                                "SNodeReleaseConfirm",
4268
0
                                "SNodeChangeConfirm",
4269
0
                                "XnRemovalResponse",
4270
0
                                "XnSetupResponse",
4271
0
                                "NGRANNodeConfigurationUpdateAcknowledge",
4272
0
                                "E-UTRA-NR-CellResourceCoordinationResponse",
4273
0
                                "CellActivationResponse",
4274
0
                                "ResetResponse",
4275
0
                                "ResourceStatusResponse",
4276
0
                                "MobilityChangeAcknowledge",
4277
0
                                "IABTransportMigrationManagementResponse",
4278
0
                                "IABTransportMigrationModificationResponse",
4279
0
                                "IABResourceCoordinationResponse",
4280
0
                                "PartialUEContextTransferAcknowledge",
4281
0
                                "DataCollectionResponse"};
4282
0
  return convert_enum_idx(names, 21, value, "xnap_elem_procs_class_1_o::successful_outcome_c::types");
4283
0
}
4284
4285
// UnsuccessfulOutcome ::= OPEN TYPE
4286
void xnap_elem_procs_class_1_o::unsuccessful_outcome_c::set(types::options e)
4287
0
{
4288
0
  type_ = e;
4289
0
  switch (type_) {
4290
0
    case types::ho_prep_fail:
4291
0
      c = ho_prep_fail_s{};
4292
0
      break;
4293
0
    case types::retrieve_ue_context_fail:
4294
0
      c = retrieve_ue_context_fail_s{};
4295
0
      break;
4296
0
    case types::sn_ode_addition_request_reject:
4297
0
      c = sn_ode_addition_request_reject_s{};
4298
0
      break;
4299
0
    case types::sn_ode_mod_request_reject:
4300
0
      c = sn_ode_mod_request_reject_s{};
4301
0
      break;
4302
0
    case types::sn_ode_mod_refuse:
4303
0
      c = sn_ode_mod_refuse_s{};
4304
0
      break;
4305
0
    case types::sn_ode_release_reject:
4306
0
      c = sn_ode_release_reject_s{};
4307
0
      break;
4308
0
    case types::sn_ode_change_refuse:
4309
0
      c = sn_ode_change_refuse_s{};
4310
0
      break;
4311
0
    case types::xn_removal_fail:
4312
0
      c = xn_removal_fail_s{};
4313
0
      break;
4314
0
    case types::xn_setup_fail:
4315
0
      c = xn_setup_fail_s{};
4316
0
      break;
4317
0
    case types::ngran_node_cfg_upd_fail:
4318
0
      c = ngran_node_cfg_upd_fail_s{};
4319
0
      break;
4320
0
    case types::cell_activation_fail:
4321
0
      c = cell_activation_fail_s{};
4322
0
      break;
4323
0
    case types::res_status_fail:
4324
0
      c = res_status_fail_s{};
4325
0
      break;
4326
0
    case types::mob_change_fail:
4327
0
      c = mob_change_fail_s{};
4328
0
      break;
4329
0
    case types::iab_transport_migration_management_reject:
4330
0
      c = iab_transport_migration_management_reject_s{};
4331
0
      break;
4332
0
    case types::partial_ue_context_transfer_fail:
4333
0
      c = partial_ue_context_transfer_fail_s{};
4334
0
      break;
4335
0
    case types::data_collection_fail:
4336
0
      c = data_collection_fail_s{};
4337
0
      break;
4338
0
    case types::nulltype:
4339
0
      break;
4340
0
    default:
4341
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::unsuccessful_outcome_c");
4342
0
  }
4343
0
}
4344
ho_prep_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::ho_prep_fail()
4345
0
{
4346
0
  assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome");
4347
0
  return c.get<ho_prep_fail_s>();
4348
0
}
4349
retrieve_ue_context_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::retrieve_ue_context_fail()
4350
0
{
4351
0
  assert_choice_type(types::retrieve_ue_context_fail, type_, "UnsuccessfulOutcome");
4352
0
  return c.get<retrieve_ue_context_fail_s>();
4353
0
}
4354
sn_ode_addition_request_reject_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_addition_request_reject()
4355
0
{
4356
0
  assert_choice_type(types::sn_ode_addition_request_reject, type_, "UnsuccessfulOutcome");
4357
0
  return c.get<sn_ode_addition_request_reject_s>();
4358
0
}
4359
sn_ode_mod_request_reject_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_mod_request_reject()
4360
0
{
4361
0
  assert_choice_type(types::sn_ode_mod_request_reject, type_, "UnsuccessfulOutcome");
4362
0
  return c.get<sn_ode_mod_request_reject_s>();
4363
0
}
4364
sn_ode_mod_refuse_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_mod_refuse()
4365
0
{
4366
0
  assert_choice_type(types::sn_ode_mod_refuse, type_, "UnsuccessfulOutcome");
4367
0
  return c.get<sn_ode_mod_refuse_s>();
4368
0
}
4369
sn_ode_release_reject_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_release_reject()
4370
0
{
4371
0
  assert_choice_type(types::sn_ode_release_reject, type_, "UnsuccessfulOutcome");
4372
0
  return c.get<sn_ode_release_reject_s>();
4373
0
}
4374
sn_ode_change_refuse_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_change_refuse()
4375
0
{
4376
0
  assert_choice_type(types::sn_ode_change_refuse, type_, "UnsuccessfulOutcome");
4377
0
  return c.get<sn_ode_change_refuse_s>();
4378
0
}
4379
xn_removal_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::xn_removal_fail()
4380
0
{
4381
0
  assert_choice_type(types::xn_removal_fail, type_, "UnsuccessfulOutcome");
4382
0
  return c.get<xn_removal_fail_s>();
4383
0
}
4384
xn_setup_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::xn_setup_fail()
4385
0
{
4386
0
  assert_choice_type(types::xn_setup_fail, type_, "UnsuccessfulOutcome");
4387
0
  return c.get<xn_setup_fail_s>();
4388
0
}
4389
ngran_node_cfg_upd_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::ngran_node_cfg_upd_fail()
4390
0
{
4391
0
  assert_choice_type(types::ngran_node_cfg_upd_fail, type_, "UnsuccessfulOutcome");
4392
0
  return c.get<ngran_node_cfg_upd_fail_s>();
4393
0
}
4394
cell_activation_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::cell_activation_fail()
4395
0
{
4396
0
  assert_choice_type(types::cell_activation_fail, type_, "UnsuccessfulOutcome");
4397
0
  return c.get<cell_activation_fail_s>();
4398
0
}
4399
res_status_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::res_status_fail()
4400
0
{
4401
0
  assert_choice_type(types::res_status_fail, type_, "UnsuccessfulOutcome");
4402
0
  return c.get<res_status_fail_s>();
4403
0
}
4404
mob_change_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::mob_change_fail()
4405
0
{
4406
0
  assert_choice_type(types::mob_change_fail, type_, "UnsuccessfulOutcome");
4407
0
  return c.get<mob_change_fail_s>();
4408
0
}
4409
iab_transport_migration_management_reject_s&
4410
xnap_elem_procs_class_1_o::unsuccessful_outcome_c::iab_transport_migration_management_reject()
4411
0
{
4412
0
  assert_choice_type(types::iab_transport_migration_management_reject, type_, "UnsuccessfulOutcome");
4413
0
  return c.get<iab_transport_migration_management_reject_s>();
4414
0
}
4415
partial_ue_context_transfer_fail_s&
4416
xnap_elem_procs_class_1_o::unsuccessful_outcome_c::partial_ue_context_transfer_fail()
4417
0
{
4418
0
  assert_choice_type(types::partial_ue_context_transfer_fail, type_, "UnsuccessfulOutcome");
4419
0
  return c.get<partial_ue_context_transfer_fail_s>();
4420
0
}
4421
data_collection_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::data_collection_fail()
4422
0
{
4423
0
  assert_choice_type(types::data_collection_fail, type_, "UnsuccessfulOutcome");
4424
0
  return c.get<data_collection_fail_s>();
4425
0
}
4426
const ho_prep_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::ho_prep_fail() const
4427
0
{
4428
0
  assert_choice_type(types::ho_prep_fail, type_, "UnsuccessfulOutcome");
4429
0
  return c.get<ho_prep_fail_s>();
4430
0
}
4431
const retrieve_ue_context_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::retrieve_ue_context_fail() const
4432
0
{
4433
0
  assert_choice_type(types::retrieve_ue_context_fail, type_, "UnsuccessfulOutcome");
4434
0
  return c.get<retrieve_ue_context_fail_s>();
4435
0
}
4436
const sn_ode_addition_request_reject_s&
4437
xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_addition_request_reject() const
4438
0
{
4439
0
  assert_choice_type(types::sn_ode_addition_request_reject, type_, "UnsuccessfulOutcome");
4440
0
  return c.get<sn_ode_addition_request_reject_s>();
4441
0
}
4442
const sn_ode_mod_request_reject_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_mod_request_reject() const
4443
0
{
4444
0
  assert_choice_type(types::sn_ode_mod_request_reject, type_, "UnsuccessfulOutcome");
4445
0
  return c.get<sn_ode_mod_request_reject_s>();
4446
0
}
4447
const sn_ode_mod_refuse_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_mod_refuse() const
4448
0
{
4449
0
  assert_choice_type(types::sn_ode_mod_refuse, type_, "UnsuccessfulOutcome");
4450
0
  return c.get<sn_ode_mod_refuse_s>();
4451
0
}
4452
const sn_ode_release_reject_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_release_reject() const
4453
0
{
4454
0
  assert_choice_type(types::sn_ode_release_reject, type_, "UnsuccessfulOutcome");
4455
0
  return c.get<sn_ode_release_reject_s>();
4456
0
}
4457
const sn_ode_change_refuse_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::sn_ode_change_refuse() const
4458
0
{
4459
0
  assert_choice_type(types::sn_ode_change_refuse, type_, "UnsuccessfulOutcome");
4460
0
  return c.get<sn_ode_change_refuse_s>();
4461
0
}
4462
const xn_removal_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::xn_removal_fail() const
4463
0
{
4464
0
  assert_choice_type(types::xn_removal_fail, type_, "UnsuccessfulOutcome");
4465
0
  return c.get<xn_removal_fail_s>();
4466
0
}
4467
const xn_setup_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::xn_setup_fail() const
4468
0
{
4469
0
  assert_choice_type(types::xn_setup_fail, type_, "UnsuccessfulOutcome");
4470
0
  return c.get<xn_setup_fail_s>();
4471
0
}
4472
const ngran_node_cfg_upd_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::ngran_node_cfg_upd_fail() const
4473
0
{
4474
0
  assert_choice_type(types::ngran_node_cfg_upd_fail, type_, "UnsuccessfulOutcome");
4475
0
  return c.get<ngran_node_cfg_upd_fail_s>();
4476
0
}
4477
const cell_activation_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::cell_activation_fail() const
4478
0
{
4479
0
  assert_choice_type(types::cell_activation_fail, type_, "UnsuccessfulOutcome");
4480
0
  return c.get<cell_activation_fail_s>();
4481
0
}
4482
const res_status_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::res_status_fail() const
4483
0
{
4484
0
  assert_choice_type(types::res_status_fail, type_, "UnsuccessfulOutcome");
4485
0
  return c.get<res_status_fail_s>();
4486
0
}
4487
const mob_change_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::mob_change_fail() const
4488
0
{
4489
0
  assert_choice_type(types::mob_change_fail, type_, "UnsuccessfulOutcome");
4490
0
  return c.get<mob_change_fail_s>();
4491
0
}
4492
const iab_transport_migration_management_reject_s&
4493
xnap_elem_procs_class_1_o::unsuccessful_outcome_c::iab_transport_migration_management_reject() const
4494
0
{
4495
0
  assert_choice_type(types::iab_transport_migration_management_reject, type_, "UnsuccessfulOutcome");
4496
0
  return c.get<iab_transport_migration_management_reject_s>();
4497
0
}
4498
const partial_ue_context_transfer_fail_s&
4499
xnap_elem_procs_class_1_o::unsuccessful_outcome_c::partial_ue_context_transfer_fail() const
4500
0
{
4501
0
  assert_choice_type(types::partial_ue_context_transfer_fail, type_, "UnsuccessfulOutcome");
4502
0
  return c.get<partial_ue_context_transfer_fail_s>();
4503
0
}
4504
const data_collection_fail_s& xnap_elem_procs_class_1_o::unsuccessful_outcome_c::data_collection_fail() const
4505
0
{
4506
0
  assert_choice_type(types::data_collection_fail, type_, "UnsuccessfulOutcome");
4507
0
  return c.get<data_collection_fail_s>();
4508
0
}
4509
void xnap_elem_procs_class_1_o::unsuccessful_outcome_c::to_json(json_writer& j) const
4510
0
{
4511
0
  j.start_obj();
4512
0
  switch (type_) {
4513
0
    case types::ho_prep_fail:
4514
0
      j.write_fieldname("HandoverPreparationFailure");
4515
0
      c.get<ho_prep_fail_s>().to_json(j);
4516
0
      break;
4517
0
    case types::retrieve_ue_context_fail:
4518
0
      j.write_fieldname("RetrieveUEContextFailure");
4519
0
      c.get<retrieve_ue_context_fail_s>().to_json(j);
4520
0
      break;
4521
0
    case types::sn_ode_addition_request_reject:
4522
0
      j.write_fieldname("SNodeAdditionRequestReject");
4523
0
      c.get<sn_ode_addition_request_reject_s>().to_json(j);
4524
0
      break;
4525
0
    case types::sn_ode_mod_request_reject:
4526
0
      j.write_fieldname("SNodeModificationRequestReject");
4527
0
      c.get<sn_ode_mod_request_reject_s>().to_json(j);
4528
0
      break;
4529
0
    case types::sn_ode_mod_refuse:
4530
0
      j.write_fieldname("SNodeModificationRefuse");
4531
0
      c.get<sn_ode_mod_refuse_s>().to_json(j);
4532
0
      break;
4533
0
    case types::sn_ode_release_reject:
4534
0
      j.write_fieldname("SNodeReleaseReject");
4535
0
      c.get<sn_ode_release_reject_s>().to_json(j);
4536
0
      break;
4537
0
    case types::sn_ode_change_refuse:
4538
0
      j.write_fieldname("SNodeChangeRefuse");
4539
0
      c.get<sn_ode_change_refuse_s>().to_json(j);
4540
0
      break;
4541
0
    case types::xn_removal_fail:
4542
0
      j.write_fieldname("XnRemovalFailure");
4543
0
      c.get<xn_removal_fail_s>().to_json(j);
4544
0
      break;
4545
0
    case types::xn_setup_fail:
4546
0
      j.write_fieldname("XnSetupFailure");
4547
0
      c.get<xn_setup_fail_s>().to_json(j);
4548
0
      break;
4549
0
    case types::ngran_node_cfg_upd_fail:
4550
0
      j.write_fieldname("NGRANNodeConfigurationUpdateFailure");
4551
0
      c.get<ngran_node_cfg_upd_fail_s>().to_json(j);
4552
0
      break;
4553
0
    case types::cell_activation_fail:
4554
0
      j.write_fieldname("CellActivationFailure");
4555
0
      c.get<cell_activation_fail_s>().to_json(j);
4556
0
      break;
4557
0
    case types::res_status_fail:
4558
0
      j.write_fieldname("ResourceStatusFailure");
4559
0
      c.get<res_status_fail_s>().to_json(j);
4560
0
      break;
4561
0
    case types::mob_change_fail:
4562
0
      j.write_fieldname("MobilityChangeFailure");
4563
0
      c.get<mob_change_fail_s>().to_json(j);
4564
0
      break;
4565
0
    case types::iab_transport_migration_management_reject:
4566
0
      j.write_fieldname("IABTransportMigrationManagementReject");
4567
0
      c.get<iab_transport_migration_management_reject_s>().to_json(j);
4568
0
      break;
4569
0
    case types::partial_ue_context_transfer_fail:
4570
0
      j.write_fieldname("PartialUEContextTransferFailure");
4571
0
      c.get<partial_ue_context_transfer_fail_s>().to_json(j);
4572
0
      break;
4573
0
    case types::data_collection_fail:
4574
0
      j.write_fieldname("DataCollectionFailure");
4575
0
      c.get<data_collection_fail_s>().to_json(j);
4576
0
      break;
4577
0
    default:
4578
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::unsuccessful_outcome_c");
4579
0
  }
4580
0
  j.end_obj();
4581
0
}
4582
OCUDUASN_CODE xnap_elem_procs_class_1_o::unsuccessful_outcome_c::pack(bit_ref& bref) const
4583
0
{
4584
0
  varlength_field_pack_guard varlen_scope(bref, true);
4585
0
  switch (type_) {
4586
0
    case types::ho_prep_fail:
4587
0
      HANDLE_CODE(c.get<ho_prep_fail_s>().pack(bref));
4588
0
      break;
4589
0
    case types::retrieve_ue_context_fail:
4590
0
      HANDLE_CODE(c.get<retrieve_ue_context_fail_s>().pack(bref));
4591
0
      break;
4592
0
    case types::sn_ode_addition_request_reject:
4593
0
      HANDLE_CODE(c.get<sn_ode_addition_request_reject_s>().pack(bref));
4594
0
      break;
4595
0
    case types::sn_ode_mod_request_reject:
4596
0
      HANDLE_CODE(c.get<sn_ode_mod_request_reject_s>().pack(bref));
4597
0
      break;
4598
0
    case types::sn_ode_mod_refuse:
4599
0
      HANDLE_CODE(c.get<sn_ode_mod_refuse_s>().pack(bref));
4600
0
      break;
4601
0
    case types::sn_ode_release_reject:
4602
0
      HANDLE_CODE(c.get<sn_ode_release_reject_s>().pack(bref));
4603
0
      break;
4604
0
    case types::sn_ode_change_refuse:
4605
0
      HANDLE_CODE(c.get<sn_ode_change_refuse_s>().pack(bref));
4606
0
      break;
4607
0
    case types::xn_removal_fail:
4608
0
      HANDLE_CODE(c.get<xn_removal_fail_s>().pack(bref));
4609
0
      break;
4610
0
    case types::xn_setup_fail:
4611
0
      HANDLE_CODE(c.get<xn_setup_fail_s>().pack(bref));
4612
0
      break;
4613
0
    case types::ngran_node_cfg_upd_fail:
4614
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_fail_s>().pack(bref));
4615
0
      break;
4616
0
    case types::cell_activation_fail:
4617
0
      HANDLE_CODE(c.get<cell_activation_fail_s>().pack(bref));
4618
0
      break;
4619
0
    case types::res_status_fail:
4620
0
      HANDLE_CODE(c.get<res_status_fail_s>().pack(bref));
4621
0
      break;
4622
0
    case types::mob_change_fail:
4623
0
      HANDLE_CODE(c.get<mob_change_fail_s>().pack(bref));
4624
0
      break;
4625
0
    case types::iab_transport_migration_management_reject:
4626
0
      HANDLE_CODE(c.get<iab_transport_migration_management_reject_s>().pack(bref));
4627
0
      break;
4628
0
    case types::partial_ue_context_transfer_fail:
4629
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_fail_s>().pack(bref));
4630
0
      break;
4631
0
    case types::data_collection_fail:
4632
0
      HANDLE_CODE(c.get<data_collection_fail_s>().pack(bref));
4633
0
      break;
4634
0
    default:
4635
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::unsuccessful_outcome_c");
4636
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
4637
0
  }
4638
0
  return OCUDUASN_SUCCESS;
4639
0
}
4640
OCUDUASN_CODE xnap_elem_procs_class_1_o::unsuccessful_outcome_c::unpack(cbit_ref& bref)
4641
0
{
4642
0
  varlength_field_unpack_guard varlen_scope(bref, true);
4643
0
  switch (type_) {
4644
0
    case types::ho_prep_fail:
4645
0
      HANDLE_CODE(c.get<ho_prep_fail_s>().unpack(bref));
4646
0
      break;
4647
0
    case types::retrieve_ue_context_fail:
4648
0
      HANDLE_CODE(c.get<retrieve_ue_context_fail_s>().unpack(bref));
4649
0
      break;
4650
0
    case types::sn_ode_addition_request_reject:
4651
0
      HANDLE_CODE(c.get<sn_ode_addition_request_reject_s>().unpack(bref));
4652
0
      break;
4653
0
    case types::sn_ode_mod_request_reject:
4654
0
      HANDLE_CODE(c.get<sn_ode_mod_request_reject_s>().unpack(bref));
4655
0
      break;
4656
0
    case types::sn_ode_mod_refuse:
4657
0
      HANDLE_CODE(c.get<sn_ode_mod_refuse_s>().unpack(bref));
4658
0
      break;
4659
0
    case types::sn_ode_release_reject:
4660
0
      HANDLE_CODE(c.get<sn_ode_release_reject_s>().unpack(bref));
4661
0
      break;
4662
0
    case types::sn_ode_change_refuse:
4663
0
      HANDLE_CODE(c.get<sn_ode_change_refuse_s>().unpack(bref));
4664
0
      break;
4665
0
    case types::xn_removal_fail:
4666
0
      HANDLE_CODE(c.get<xn_removal_fail_s>().unpack(bref));
4667
0
      break;
4668
0
    case types::xn_setup_fail:
4669
0
      HANDLE_CODE(c.get<xn_setup_fail_s>().unpack(bref));
4670
0
      break;
4671
0
    case types::ngran_node_cfg_upd_fail:
4672
0
      HANDLE_CODE(c.get<ngran_node_cfg_upd_fail_s>().unpack(bref));
4673
0
      break;
4674
0
    case types::cell_activation_fail:
4675
0
      HANDLE_CODE(c.get<cell_activation_fail_s>().unpack(bref));
4676
0
      break;
4677
0
    case types::res_status_fail:
4678
0
      HANDLE_CODE(c.get<res_status_fail_s>().unpack(bref));
4679
0
      break;
4680
0
    case types::mob_change_fail:
4681
0
      HANDLE_CODE(c.get<mob_change_fail_s>().unpack(bref));
4682
0
      break;
4683
0
    case types::iab_transport_migration_management_reject:
4684
0
      HANDLE_CODE(c.get<iab_transport_migration_management_reject_s>().unpack(bref));
4685
0
      break;
4686
0
    case types::partial_ue_context_transfer_fail:
4687
0
      HANDLE_CODE(c.get<partial_ue_context_transfer_fail_s>().unpack(bref));
4688
0
      break;
4689
0
    case types::data_collection_fail:
4690
0
      HANDLE_CODE(c.get<data_collection_fail_s>().unpack(bref));
4691
0
      break;
4692
0
    default:
4693
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_1_o::unsuccessful_outcome_c");
4694
0
      return OCUDUASN_ERROR_DECODE_FAIL;
4695
0
  }
4696
0
  return OCUDUASN_SUCCESS;
4697
0
}
4698
4699
const char* xnap_elem_procs_class_1_o::unsuccessful_outcome_c::types_opts::to_string() const
4700
0
{
4701
0
  static const char* names[] = {"HandoverPreparationFailure",
4702
0
                                "RetrieveUEContextFailure",
4703
0
                                "SNodeAdditionRequestReject",
4704
0
                                "SNodeModificationRequestReject",
4705
0
                                "SNodeModificationRefuse",
4706
0
                                "SNodeReleaseReject",
4707
0
                                "SNodeChangeRefuse",
4708
0
                                "XnRemovalFailure",
4709
0
                                "XnSetupFailure",
4710
0
                                "NGRANNodeConfigurationUpdateFailure",
4711
0
                                "CellActivationFailure",
4712
0
                                "ResourceStatusFailure",
4713
0
                                "MobilityChangeFailure",
4714
0
                                "IABTransportMigrationManagementReject",
4715
0
                                "PartialUEContextTransferFailure",
4716
0
                                "DataCollectionFailure"};
4717
0
  return convert_enum_idx(names, 16, value, "xnap_elem_procs_class_1_o::unsuccessful_outcome_c::types");
4718
0
}
4719
4720
// XNAP-ELEMENTARY-PROCEDURES-CLASS-2 ::= OBJECT SET OF XNAP-ELEMENTARY-PROCEDURE
4721
uint16_t xnap_elem_procs_class_2_o::idx_to_proc_code(uint32_t idx)
4722
0
{
4723
0
  static const uint16_t names[] = {1,  2,  4,  5,  6,  8,  13, 15, 21, 22, 23, 24, 26, 27, 28, 29,
4724
0
                                   30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 43, 47, 48, 50, 52};
4725
0
  return map_enum_number(names, 31, idx, "proc_code");
4726
0
}
4727
bool xnap_elem_procs_class_2_o::is_proc_code_valid(const uint16_t& proc_code)
4728
0
{
4729
0
  static const uint16_t names[] = {1,  2,  4,  5,  6,  8,  13, 15, 21, 22, 23, 24, 26, 27, 28, 29,
4730
0
                                   30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 43, 47, 48, 50, 52};
4731
0
  for (const auto& o : names) {
4732
0
    if (o == proc_code) {
4733
0
      return true;
4734
0
    }
4735
0
  }
4736
0
  return false;
4737
0
}
4738
xnap_elem_procs_class_2_o::init_msg_c xnap_elem_procs_class_2_o::get_init_msg(const uint16_t& proc_code)
4739
0
{
4740
0
  init_msg_c ret{};
4741
0
  switch (proc_code) {
4742
0
    case 1:
4743
0
      ret.set(init_msg_c::types::sn_status_transfer);
4744
0
      break;
4745
0
    case 2:
4746
0
      ret.set(init_msg_c::types::ho_cancel);
4747
0
      break;
4748
0
    case 4:
4749
0
      ret.set(init_msg_c::types::ran_paging);
4750
0
      break;
4751
0
    case 5:
4752
0
      ret.set(init_msg_c::types::xn_u_address_ind);
4753
0
      break;
4754
0
    case 6:
4755
0
      ret.set(init_msg_c::types::ue_context_release);
4756
0
      break;
4757
0
    case 8:
4758
0
      ret.set(init_msg_c::types::sn_ode_recfg_complete);
4759
0
      break;
4760
0
    case 13:
4761
0
      ret.set(init_msg_c::types::sn_ode_counter_check_request);
4762
0
      break;
4763
0
    case 15:
4764
0
      ret.set(init_msg_c::types::rrc_transfer);
4765
0
      break;
4766
0
    case 21:
4767
0
      ret.set(init_msg_c::types::error_ind);
4768
0
      break;
4769
0
    case 22:
4770
0
      ret.set(init_msg_c::types::private_msg);
4771
0
      break;
4772
0
    case 23:
4773
0
      ret.set(init_msg_c::types::notif_ctrl_ind);
4774
0
      break;
4775
0
    case 24:
4776
0
      ret.set(init_msg_c::types::activity_notif);
4777
0
      break;
4778
0
    case 26:
4779
0
      ret.set(init_msg_c::types::secondary_rat_data_usage_report);
4780
0
      break;
4781
0
    case 27:
4782
0
      ret.set(init_msg_c::types::deactiv_trace);
4783
0
      break;
4784
0
    case 28:
4785
0
      ret.set(init_msg_c::types::trace_start);
4786
0
      break;
4787
0
    case 29:
4788
0
      ret.set(init_msg_c::types::ho_success);
4789
0
      break;
4790
0
    case 30:
4791
0
      ret.set(init_msg_c::types::conditional_ho_cancel);
4792
0
      break;
4793
0
    case 31:
4794
0
      ret.set(init_msg_c::types::early_status_transfer);
4795
0
      break;
4796
0
    case 32:
4797
0
      ret.set(init_msg_c::types::fail_ind);
4798
0
      break;
4799
0
    case 33:
4800
0
      ret.set(init_msg_c::types::ho_report);
4801
0
      break;
4802
0
    case 35:
4803
0
      ret.set(init_msg_c::types::res_status_upd);
4804
0
      break;
4805
0
    case 37:
4806
0
      ret.set(init_msg_c::types::access_and_mob_ind);
4807
0
      break;
4808
0
    case 38:
4809
0
      ret.set(init_msg_c::types::cell_traffic_trace);
4810
0
      break;
4811
0
    case 39:
4812
0
      ret.set(init_msg_c::types::ran_multicast_group_paging);
4813
0
      break;
4814
0
    case 40:
4815
0
      ret.set(init_msg_c::types::scg_fail_info_report);
4816
0
      break;
4817
0
    case 42:
4818
0
      ret.set(init_msg_c::types::scg_fail_transfer);
4819
0
      break;
4820
0
    case 43:
4821
0
      ret.set(init_msg_c::types::f1_c_traffic_transfer);
4822
0
      break;
4823
0
    case 47:
4824
0
      ret.set(init_msg_c::types::retrieve_ue_context_confirm);
4825
0
      break;
4826
0
    case 48:
4827
0
      ret.set(init_msg_c::types::cp_c_cancel);
4828
0
      break;
4829
0
    case 50:
4830
0
      ret.set(init_msg_c::types::rach_ind);
4831
0
      break;
4832
0
    case 52:
4833
0
      ret.set(init_msg_c::types::data_collection_upd);
4834
0
      break;
4835
0
    default:
4836
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
4837
0
  }
4838
0
  return ret;
4839
0
}
4840
xnap_elem_procs_class_2_o::successful_outcome_c
4841
xnap_elem_procs_class_2_o::get_successful_outcome(const uint16_t& proc_code)
4842
0
{
4843
0
  successful_outcome_c ret{};
4844
0
  switch (proc_code) {
4845
0
    default:
4846
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
4847
0
  }
4848
0
  return ret;
4849
0
}
4850
xnap_elem_procs_class_2_o::unsuccessful_outcome_c
4851
xnap_elem_procs_class_2_o::get_unsuccessful_outcome(const uint16_t& proc_code)
4852
0
{
4853
0
  unsuccessful_outcome_c ret{};
4854
0
  switch (proc_code) {
4855
0
    default:
4856
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
4857
0
  }
4858
0
  return ret;
4859
0
}
4860
crit_e xnap_elem_procs_class_2_o::get_crit(const uint16_t& proc_code)
4861
0
{
4862
0
  switch (proc_code) {
4863
0
    case 1:
4864
0
      return crit_e::ignore;
4865
0
    case 2:
4866
0
      return crit_e::ignore;
4867
0
    case 4:
4868
0
      return crit_e::reject;
4869
0
    case 5:
4870
0
      return crit_e::reject;
4871
0
    case 6:
4872
0
      return crit_e::reject;
4873
0
    case 8:
4874
0
      return crit_e::reject;
4875
0
    case 13:
4876
0
      return crit_e::reject;
4877
0
    case 15:
4878
0
      return crit_e::reject;
4879
0
    case 21:
4880
0
      return crit_e::ignore;
4881
0
    case 22:
4882
0
      return crit_e::ignore;
4883
0
    case 23:
4884
0
      return crit_e::ignore;
4885
0
    case 24:
4886
0
      return crit_e::ignore;
4887
0
    case 26:
4888
0
      return crit_e::reject;
4889
0
    case 27:
4890
0
      return crit_e::ignore;
4891
0
    case 28:
4892
0
      return crit_e::ignore;
4893
0
    case 29:
4894
0
      return crit_e::ignore;
4895
0
    case 30:
4896
0
      return crit_e::ignore;
4897
0
    case 31:
4898
0
      return crit_e::ignore;
4899
0
    case 32:
4900
0
      return crit_e::ignore;
4901
0
    case 33:
4902
0
      return crit_e::ignore;
4903
0
    case 35:
4904
0
      return crit_e::ignore;
4905
0
    case 37:
4906
0
      return crit_e::ignore;
4907
0
    case 38:
4908
0
      return crit_e::ignore;
4909
0
    case 39:
4910
0
      return crit_e::reject;
4911
0
    case 40:
4912
0
      return crit_e::ignore;
4913
0
    case 42:
4914
0
      return crit_e::ignore;
4915
0
    case 43:
4916
0
      return crit_e::reject;
4917
0
    case 47:
4918
0
      return crit_e::reject;
4919
0
    case 48:
4920
0
      return crit_e::ignore;
4921
0
    case 50:
4922
0
      return crit_e::ignore;
4923
0
    case 52:
4924
0
      return crit_e::ignore;
4925
0
    default:
4926
0
      asn1::log_error("The proc_code={} is not recognized", proc_code);
4927
0
  }
4928
0
  return {};
4929
0
}
4930
4931
// InitiatingMessage ::= OPEN TYPE
4932
void xnap_elem_procs_class_2_o::init_msg_c::set(types::options e)
4933
0
{
4934
0
  type_ = e;
4935
0
  switch (type_) {
4936
0
    case types::sn_status_transfer:
4937
0
      c = sn_status_transfer_s{};
4938
0
      break;
4939
0
    case types::ho_cancel:
4940
0
      c = ho_cancel_s{};
4941
0
      break;
4942
0
    case types::ran_paging:
4943
0
      c = ran_paging_s{};
4944
0
      break;
4945
0
    case types::xn_u_address_ind:
4946
0
      c = xn_u_address_ind_s{};
4947
0
      break;
4948
0
    case types::ue_context_release:
4949
0
      c = ue_context_release_s{};
4950
0
      break;
4951
0
    case types::sn_ode_recfg_complete:
4952
0
      c = sn_ode_recfg_complete_s{};
4953
0
      break;
4954
0
    case types::sn_ode_counter_check_request:
4955
0
      c = sn_ode_counter_check_request_s{};
4956
0
      break;
4957
0
    case types::rrc_transfer:
4958
0
      c = rrc_transfer_s{};
4959
0
      break;
4960
0
    case types::error_ind:
4961
0
      c = error_ind_s{};
4962
0
      break;
4963
0
    case types::private_msg:
4964
0
      c = private_msg_s{};
4965
0
      break;
4966
0
    case types::notif_ctrl_ind:
4967
0
      c = notif_ctrl_ind_s{};
4968
0
      break;
4969
0
    case types::activity_notif:
4970
0
      c = activity_notif_s{};
4971
0
      break;
4972
0
    case types::secondary_rat_data_usage_report:
4973
0
      c = secondary_rat_data_usage_report_s{};
4974
0
      break;
4975
0
    case types::deactiv_trace:
4976
0
      c = deactiv_trace_s{};
4977
0
      break;
4978
0
    case types::trace_start:
4979
0
      c = trace_start_s{};
4980
0
      break;
4981
0
    case types::ho_success:
4982
0
      c = ho_success_s{};
4983
0
      break;
4984
0
    case types::conditional_ho_cancel:
4985
0
      c = conditional_ho_cancel_s{};
4986
0
      break;
4987
0
    case types::early_status_transfer:
4988
0
      c = early_status_transfer_s{};
4989
0
      break;
4990
0
    case types::fail_ind:
4991
0
      c = fail_ind_s{};
4992
0
      break;
4993
0
    case types::ho_report:
4994
0
      c = ho_report_s{};
4995
0
      break;
4996
0
    case types::res_status_upd:
4997
0
      c = res_status_upd_s{};
4998
0
      break;
4999
0
    case types::access_and_mob_ind:
5000
0
      c = access_and_mob_ind_s{};
5001
0
      break;
5002
0
    case types::cell_traffic_trace:
5003
0
      c = cell_traffic_trace_s{};
5004
0
      break;
5005
0
    case types::ran_multicast_group_paging:
5006
0
      c = ran_multicast_group_paging_s{};
5007
0
      break;
5008
0
    case types::scg_fail_info_report:
5009
0
      c = scg_fail_info_report_s{};
5010
0
      break;
5011
0
    case types::scg_fail_transfer:
5012
0
      c = scg_fail_transfer_s{};
5013
0
      break;
5014
0
    case types::f1_c_traffic_transfer:
5015
0
      c = f1_c_traffic_transfer_s{};
5016
0
      break;
5017
0
    case types::retrieve_ue_context_confirm:
5018
0
      c = retrieve_ue_context_confirm_s{};
5019
0
      break;
5020
0
    case types::cp_c_cancel:
5021
0
      c = cp_c_cancel_s{};
5022
0
      break;
5023
0
    case types::rach_ind:
5024
0
      c = rach_ind_s{};
5025
0
      break;
5026
0
    case types::data_collection_upd:
5027
0
      c = data_collection_upd_s{};
5028
0
      break;
5029
0
    case types::nulltype:
5030
0
      break;
5031
0
    default:
5032
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_2_o::init_msg_c");
5033
0
  }
5034
0
}
5035
sn_status_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::sn_status_transfer()
5036
0
{
5037
0
  assert_choice_type(types::sn_status_transfer, type_, "InitiatingMessage");
5038
0
  return c.get<sn_status_transfer_s>();
5039
0
}
5040
ho_cancel_s& xnap_elem_procs_class_2_o::init_msg_c::ho_cancel()
5041
0
{
5042
0
  assert_choice_type(types::ho_cancel, type_, "InitiatingMessage");
5043
0
  return c.get<ho_cancel_s>();
5044
0
}
5045
ran_paging_s& xnap_elem_procs_class_2_o::init_msg_c::ran_paging()
5046
0
{
5047
0
  assert_choice_type(types::ran_paging, type_, "InitiatingMessage");
5048
0
  return c.get<ran_paging_s>();
5049
0
}
5050
xn_u_address_ind_s& xnap_elem_procs_class_2_o::init_msg_c::xn_u_address_ind()
5051
0
{
5052
0
  assert_choice_type(types::xn_u_address_ind, type_, "InitiatingMessage");
5053
0
  return c.get<xn_u_address_ind_s>();
5054
0
}
5055
ue_context_release_s& xnap_elem_procs_class_2_o::init_msg_c::ue_context_release()
5056
0
{
5057
0
  assert_choice_type(types::ue_context_release, type_, "InitiatingMessage");
5058
0
  return c.get<ue_context_release_s>();
5059
0
}
5060
sn_ode_recfg_complete_s& xnap_elem_procs_class_2_o::init_msg_c::sn_ode_recfg_complete()
5061
0
{
5062
0
  assert_choice_type(types::sn_ode_recfg_complete, type_, "InitiatingMessage");
5063
0
  return c.get<sn_ode_recfg_complete_s>();
5064
0
}
5065
sn_ode_counter_check_request_s& xnap_elem_procs_class_2_o::init_msg_c::sn_ode_counter_check_request()
5066
0
{
5067
0
  assert_choice_type(types::sn_ode_counter_check_request, type_, "InitiatingMessage");
5068
0
  return c.get<sn_ode_counter_check_request_s>();
5069
0
}
5070
rrc_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::rrc_transfer()
5071
0
{
5072
0
  assert_choice_type(types::rrc_transfer, type_, "InitiatingMessage");
5073
0
  return c.get<rrc_transfer_s>();
5074
0
}
5075
error_ind_s& xnap_elem_procs_class_2_o::init_msg_c::error_ind()
5076
0
{
5077
0
  assert_choice_type(types::error_ind, type_, "InitiatingMessage");
5078
0
  return c.get<error_ind_s>();
5079
0
}
5080
private_msg_s& xnap_elem_procs_class_2_o::init_msg_c::private_msg()
5081
0
{
5082
0
  assert_choice_type(types::private_msg, type_, "InitiatingMessage");
5083
0
  return c.get<private_msg_s>();
5084
0
}
5085
notif_ctrl_ind_s& xnap_elem_procs_class_2_o::init_msg_c::notif_ctrl_ind()
5086
0
{
5087
0
  assert_choice_type(types::notif_ctrl_ind, type_, "InitiatingMessage");
5088
0
  return c.get<notif_ctrl_ind_s>();
5089
0
}
5090
activity_notif_s& xnap_elem_procs_class_2_o::init_msg_c::activity_notif()
5091
0
{
5092
0
  assert_choice_type(types::activity_notif, type_, "InitiatingMessage");
5093
0
  return c.get<activity_notif_s>();
5094
0
}
5095
secondary_rat_data_usage_report_s& xnap_elem_procs_class_2_o::init_msg_c::secondary_rat_data_usage_report()
5096
0
{
5097
0
  assert_choice_type(types::secondary_rat_data_usage_report, type_, "InitiatingMessage");
5098
0
  return c.get<secondary_rat_data_usage_report_s>();
5099
0
}
5100
deactiv_trace_s& xnap_elem_procs_class_2_o::init_msg_c::deactiv_trace()
5101
0
{
5102
0
  assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage");
5103
0
  return c.get<deactiv_trace_s>();
5104
0
}
5105
trace_start_s& xnap_elem_procs_class_2_o::init_msg_c::trace_start()
5106
0
{
5107
0
  assert_choice_type(types::trace_start, type_, "InitiatingMessage");
5108
0
  return c.get<trace_start_s>();
5109
0
}
5110
ho_success_s& xnap_elem_procs_class_2_o::init_msg_c::ho_success()
5111
0
{
5112
0
  assert_choice_type(types::ho_success, type_, "InitiatingMessage");
5113
0
  return c.get<ho_success_s>();
5114
0
}
5115
conditional_ho_cancel_s& xnap_elem_procs_class_2_o::init_msg_c::conditional_ho_cancel()
5116
0
{
5117
0
  assert_choice_type(types::conditional_ho_cancel, type_, "InitiatingMessage");
5118
0
  return c.get<conditional_ho_cancel_s>();
5119
0
}
5120
early_status_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::early_status_transfer()
5121
0
{
5122
0
  assert_choice_type(types::early_status_transfer, type_, "InitiatingMessage");
5123
0
  return c.get<early_status_transfer_s>();
5124
0
}
5125
fail_ind_s& xnap_elem_procs_class_2_o::init_msg_c::fail_ind()
5126
0
{
5127
0
  assert_choice_type(types::fail_ind, type_, "InitiatingMessage");
5128
0
  return c.get<fail_ind_s>();
5129
0
}
5130
ho_report_s& xnap_elem_procs_class_2_o::init_msg_c::ho_report()
5131
0
{
5132
0
  assert_choice_type(types::ho_report, type_, "InitiatingMessage");
5133
0
  return c.get<ho_report_s>();
5134
0
}
5135
res_status_upd_s& xnap_elem_procs_class_2_o::init_msg_c::res_status_upd()
5136
0
{
5137
0
  assert_choice_type(types::res_status_upd, type_, "InitiatingMessage");
5138
0
  return c.get<res_status_upd_s>();
5139
0
}
5140
access_and_mob_ind_s& xnap_elem_procs_class_2_o::init_msg_c::access_and_mob_ind()
5141
0
{
5142
0
  assert_choice_type(types::access_and_mob_ind, type_, "InitiatingMessage");
5143
0
  return c.get<access_and_mob_ind_s>();
5144
0
}
5145
cell_traffic_trace_s& xnap_elem_procs_class_2_o::init_msg_c::cell_traffic_trace()
5146
0
{
5147
0
  assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage");
5148
0
  return c.get<cell_traffic_trace_s>();
5149
0
}
5150
ran_multicast_group_paging_s& xnap_elem_procs_class_2_o::init_msg_c::ran_multicast_group_paging()
5151
0
{
5152
0
  assert_choice_type(types::ran_multicast_group_paging, type_, "InitiatingMessage");
5153
0
  return c.get<ran_multicast_group_paging_s>();
5154
0
}
5155
scg_fail_info_report_s& xnap_elem_procs_class_2_o::init_msg_c::scg_fail_info_report()
5156
0
{
5157
0
  assert_choice_type(types::scg_fail_info_report, type_, "InitiatingMessage");
5158
0
  return c.get<scg_fail_info_report_s>();
5159
0
}
5160
scg_fail_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::scg_fail_transfer()
5161
0
{
5162
0
  assert_choice_type(types::scg_fail_transfer, type_, "InitiatingMessage");
5163
0
  return c.get<scg_fail_transfer_s>();
5164
0
}
5165
f1_c_traffic_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::f1_c_traffic_transfer()
5166
0
{
5167
0
  assert_choice_type(types::f1_c_traffic_transfer, type_, "InitiatingMessage");
5168
0
  return c.get<f1_c_traffic_transfer_s>();
5169
0
}
5170
retrieve_ue_context_confirm_s& xnap_elem_procs_class_2_o::init_msg_c::retrieve_ue_context_confirm()
5171
0
{
5172
0
  assert_choice_type(types::retrieve_ue_context_confirm, type_, "InitiatingMessage");
5173
0
  return c.get<retrieve_ue_context_confirm_s>();
5174
0
}
5175
cp_c_cancel_s& xnap_elem_procs_class_2_o::init_msg_c::cp_c_cancel()
5176
0
{
5177
0
  assert_choice_type(types::cp_c_cancel, type_, "InitiatingMessage");
5178
0
  return c.get<cp_c_cancel_s>();
5179
0
}
5180
rach_ind_s& xnap_elem_procs_class_2_o::init_msg_c::rach_ind()
5181
0
{
5182
0
  assert_choice_type(types::rach_ind, type_, "InitiatingMessage");
5183
0
  return c.get<rach_ind_s>();
5184
0
}
5185
data_collection_upd_s& xnap_elem_procs_class_2_o::init_msg_c::data_collection_upd()
5186
0
{
5187
0
  assert_choice_type(types::data_collection_upd, type_, "InitiatingMessage");
5188
0
  return c.get<data_collection_upd_s>();
5189
0
}
5190
const sn_status_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::sn_status_transfer() const
5191
0
{
5192
0
  assert_choice_type(types::sn_status_transfer, type_, "InitiatingMessage");
5193
0
  return c.get<sn_status_transfer_s>();
5194
0
}
5195
const ho_cancel_s& xnap_elem_procs_class_2_o::init_msg_c::ho_cancel() const
5196
0
{
5197
0
  assert_choice_type(types::ho_cancel, type_, "InitiatingMessage");
5198
0
  return c.get<ho_cancel_s>();
5199
0
}
5200
const ran_paging_s& xnap_elem_procs_class_2_o::init_msg_c::ran_paging() const
5201
0
{
5202
0
  assert_choice_type(types::ran_paging, type_, "InitiatingMessage");
5203
0
  return c.get<ran_paging_s>();
5204
0
}
5205
const xn_u_address_ind_s& xnap_elem_procs_class_2_o::init_msg_c::xn_u_address_ind() const
5206
0
{
5207
0
  assert_choice_type(types::xn_u_address_ind, type_, "InitiatingMessage");
5208
0
  return c.get<xn_u_address_ind_s>();
5209
0
}
5210
const ue_context_release_s& xnap_elem_procs_class_2_o::init_msg_c::ue_context_release() const
5211
0
{
5212
0
  assert_choice_type(types::ue_context_release, type_, "InitiatingMessage");
5213
0
  return c.get<ue_context_release_s>();
5214
0
}
5215
const sn_ode_recfg_complete_s& xnap_elem_procs_class_2_o::init_msg_c::sn_ode_recfg_complete() const
5216
0
{
5217
0
  assert_choice_type(types::sn_ode_recfg_complete, type_, "InitiatingMessage");
5218
0
  return c.get<sn_ode_recfg_complete_s>();
5219
0
}
5220
const sn_ode_counter_check_request_s& xnap_elem_procs_class_2_o::init_msg_c::sn_ode_counter_check_request() const
5221
0
{
5222
0
  assert_choice_type(types::sn_ode_counter_check_request, type_, "InitiatingMessage");
5223
0
  return c.get<sn_ode_counter_check_request_s>();
5224
0
}
5225
const rrc_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::rrc_transfer() const
5226
0
{
5227
0
  assert_choice_type(types::rrc_transfer, type_, "InitiatingMessage");
5228
0
  return c.get<rrc_transfer_s>();
5229
0
}
5230
const error_ind_s& xnap_elem_procs_class_2_o::init_msg_c::error_ind() const
5231
0
{
5232
0
  assert_choice_type(types::error_ind, type_, "InitiatingMessage");
5233
0
  return c.get<error_ind_s>();
5234
0
}
5235
const private_msg_s& xnap_elem_procs_class_2_o::init_msg_c::private_msg() const
5236
0
{
5237
0
  assert_choice_type(types::private_msg, type_, "InitiatingMessage");
5238
0
  return c.get<private_msg_s>();
5239
0
}
5240
const notif_ctrl_ind_s& xnap_elem_procs_class_2_o::init_msg_c::notif_ctrl_ind() const
5241
0
{
5242
0
  assert_choice_type(types::notif_ctrl_ind, type_, "InitiatingMessage");
5243
0
  return c.get<notif_ctrl_ind_s>();
5244
0
}
5245
const activity_notif_s& xnap_elem_procs_class_2_o::init_msg_c::activity_notif() const
5246
0
{
5247
0
  assert_choice_type(types::activity_notif, type_, "InitiatingMessage");
5248
0
  return c.get<activity_notif_s>();
5249
0
}
5250
const secondary_rat_data_usage_report_s& xnap_elem_procs_class_2_o::init_msg_c::secondary_rat_data_usage_report() const
5251
0
{
5252
0
  assert_choice_type(types::secondary_rat_data_usage_report, type_, "InitiatingMessage");
5253
0
  return c.get<secondary_rat_data_usage_report_s>();
5254
0
}
5255
const deactiv_trace_s& xnap_elem_procs_class_2_o::init_msg_c::deactiv_trace() const
5256
0
{
5257
0
  assert_choice_type(types::deactiv_trace, type_, "InitiatingMessage");
5258
0
  return c.get<deactiv_trace_s>();
5259
0
}
5260
const trace_start_s& xnap_elem_procs_class_2_o::init_msg_c::trace_start() const
5261
0
{
5262
0
  assert_choice_type(types::trace_start, type_, "InitiatingMessage");
5263
0
  return c.get<trace_start_s>();
5264
0
}
5265
const ho_success_s& xnap_elem_procs_class_2_o::init_msg_c::ho_success() const
5266
0
{
5267
0
  assert_choice_type(types::ho_success, type_, "InitiatingMessage");
5268
0
  return c.get<ho_success_s>();
5269
0
}
5270
const conditional_ho_cancel_s& xnap_elem_procs_class_2_o::init_msg_c::conditional_ho_cancel() const
5271
0
{
5272
0
  assert_choice_type(types::conditional_ho_cancel, type_, "InitiatingMessage");
5273
0
  return c.get<conditional_ho_cancel_s>();
5274
0
}
5275
const early_status_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::early_status_transfer() const
5276
0
{
5277
0
  assert_choice_type(types::early_status_transfer, type_, "InitiatingMessage");
5278
0
  return c.get<early_status_transfer_s>();
5279
0
}
5280
const fail_ind_s& xnap_elem_procs_class_2_o::init_msg_c::fail_ind() const
5281
0
{
5282
0
  assert_choice_type(types::fail_ind, type_, "InitiatingMessage");
5283
0
  return c.get<fail_ind_s>();
5284
0
}
5285
const ho_report_s& xnap_elem_procs_class_2_o::init_msg_c::ho_report() const
5286
0
{
5287
0
  assert_choice_type(types::ho_report, type_, "InitiatingMessage");
5288
0
  return c.get<ho_report_s>();
5289
0
}
5290
const res_status_upd_s& xnap_elem_procs_class_2_o::init_msg_c::res_status_upd() const
5291
0
{
5292
0
  assert_choice_type(types::res_status_upd, type_, "InitiatingMessage");
5293
0
  return c.get<res_status_upd_s>();
5294
0
}
5295
const access_and_mob_ind_s& xnap_elem_procs_class_2_o::init_msg_c::access_and_mob_ind() const
5296
0
{
5297
0
  assert_choice_type(types::access_and_mob_ind, type_, "InitiatingMessage");
5298
0
  return c.get<access_and_mob_ind_s>();
5299
0
}
5300
const cell_traffic_trace_s& xnap_elem_procs_class_2_o::init_msg_c::cell_traffic_trace() const
5301
0
{
5302
0
  assert_choice_type(types::cell_traffic_trace, type_, "InitiatingMessage");
5303
0
  return c.get<cell_traffic_trace_s>();
5304
0
}
5305
const ran_multicast_group_paging_s& xnap_elem_procs_class_2_o::init_msg_c::ran_multicast_group_paging() const
5306
0
{
5307
0
  assert_choice_type(types::ran_multicast_group_paging, type_, "InitiatingMessage");
5308
0
  return c.get<ran_multicast_group_paging_s>();
5309
0
}
5310
const scg_fail_info_report_s& xnap_elem_procs_class_2_o::init_msg_c::scg_fail_info_report() const
5311
0
{
5312
0
  assert_choice_type(types::scg_fail_info_report, type_, "InitiatingMessage");
5313
0
  return c.get<scg_fail_info_report_s>();
5314
0
}
5315
const scg_fail_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::scg_fail_transfer() const
5316
0
{
5317
0
  assert_choice_type(types::scg_fail_transfer, type_, "InitiatingMessage");
5318
0
  return c.get<scg_fail_transfer_s>();
5319
0
}
5320
const f1_c_traffic_transfer_s& xnap_elem_procs_class_2_o::init_msg_c::f1_c_traffic_transfer() const
5321
0
{
5322
0
  assert_choice_type(types::f1_c_traffic_transfer, type_, "InitiatingMessage");
5323
0
  return c.get<f1_c_traffic_transfer_s>();
5324
0
}
5325
const retrieve_ue_context_confirm_s& xnap_elem_procs_class_2_o::init_msg_c::retrieve_ue_context_confirm() const
5326
0
{
5327
0
  assert_choice_type(types::retrieve_ue_context_confirm, type_, "InitiatingMessage");
5328
0
  return c.get<retrieve_ue_context_confirm_s>();
5329
0
}
5330
const cp_c_cancel_s& xnap_elem_procs_class_2_o::init_msg_c::cp_c_cancel() const
5331
0
{
5332
0
  assert_choice_type(types::cp_c_cancel, type_, "InitiatingMessage");
5333
0
  return c.get<cp_c_cancel_s>();
5334
0
}
5335
const rach_ind_s& xnap_elem_procs_class_2_o::init_msg_c::rach_ind() const
5336
0
{
5337
0
  assert_choice_type(types::rach_ind, type_, "InitiatingMessage");
5338
0
  return c.get<rach_ind_s>();
5339
0
}
5340
const data_collection_upd_s& xnap_elem_procs_class_2_o::init_msg_c::data_collection_upd() const
5341
0
{
5342
0
  assert_choice_type(types::data_collection_upd, type_, "InitiatingMessage");
5343
0
  return c.get<data_collection_upd_s>();
5344
0
}
5345
void xnap_elem_procs_class_2_o::init_msg_c::to_json(json_writer& j) const
5346
0
{
5347
0
  j.start_obj();
5348
0
  switch (type_) {
5349
0
    case types::sn_status_transfer:
5350
0
      j.write_fieldname("SNStatusTransfer");
5351
0
      c.get<sn_status_transfer_s>().to_json(j);
5352
0
      break;
5353
0
    case types::ho_cancel:
5354
0
      j.write_fieldname("HandoverCancel");
5355
0
      c.get<ho_cancel_s>().to_json(j);
5356
0
      break;
5357
0
    case types::ran_paging:
5358
0
      j.write_fieldname("RANPaging");
5359
0
      c.get<ran_paging_s>().to_json(j);
5360
0
      break;
5361
0
    case types::xn_u_address_ind:
5362
0
      j.write_fieldname("XnUAddressIndication");
5363
0
      c.get<xn_u_address_ind_s>().to_json(j);
5364
0
      break;
5365
0
    case types::ue_context_release:
5366
0
      j.write_fieldname("UEContextRelease");
5367
0
      c.get<ue_context_release_s>().to_json(j);
5368
0
      break;
5369
0
    case types::sn_ode_recfg_complete:
5370
0
      j.write_fieldname("SNodeReconfigurationComplete");
5371
0
      c.get<sn_ode_recfg_complete_s>().to_json(j);
5372
0
      break;
5373
0
    case types::sn_ode_counter_check_request:
5374
0
      j.write_fieldname("SNodeCounterCheckRequest");
5375
0
      c.get<sn_ode_counter_check_request_s>().to_json(j);
5376
0
      break;
5377
0
    case types::rrc_transfer:
5378
0
      j.write_fieldname("RRCTransfer");
5379
0
      c.get<rrc_transfer_s>().to_json(j);
5380
0
      break;
5381
0
    case types::error_ind:
5382
0
      j.write_fieldname("ErrorIndication");
5383
0
      c.get<error_ind_s>().to_json(j);
5384
0
      break;
5385
0
    case types::private_msg:
5386
0
      j.write_fieldname("PrivateMessage");
5387
0
      c.get<private_msg_s>().to_json(j);
5388
0
      break;
5389
0
    case types::notif_ctrl_ind:
5390
0
      j.write_fieldname("NotificationControlIndication");
5391
0
      c.get<notif_ctrl_ind_s>().to_json(j);
5392
0
      break;
5393
0
    case types::activity_notif:
5394
0
      j.write_fieldname("ActivityNotification");
5395
0
      c.get<activity_notif_s>().to_json(j);
5396
0
      break;
5397
0
    case types::secondary_rat_data_usage_report:
5398
0
      j.write_fieldname("SecondaryRATDataUsageReport");
5399
0
      c.get<secondary_rat_data_usage_report_s>().to_json(j);
5400
0
      break;
5401
0
    case types::deactiv_trace:
5402
0
      j.write_fieldname("DeactivateTrace");
5403
0
      c.get<deactiv_trace_s>().to_json(j);
5404
0
      break;
5405
0
    case types::trace_start:
5406
0
      j.write_fieldname("TraceStart");
5407
0
      c.get<trace_start_s>().to_json(j);
5408
0
      break;
5409
0
    case types::ho_success:
5410
0
      j.write_fieldname("HandoverSuccess");
5411
0
      c.get<ho_success_s>().to_json(j);
5412
0
      break;
5413
0
    case types::conditional_ho_cancel:
5414
0
      j.write_fieldname("ConditionalHandoverCancel");
5415
0
      c.get<conditional_ho_cancel_s>().to_json(j);
5416
0
      break;
5417
0
    case types::early_status_transfer:
5418
0
      j.write_fieldname("EarlyStatusTransfer");
5419
0
      c.get<early_status_transfer_s>().to_json(j);
5420
0
      break;
5421
0
    case types::fail_ind:
5422
0
      j.write_fieldname("FailureIndication");
5423
0
      c.get<fail_ind_s>().to_json(j);
5424
0
      break;
5425
0
    case types::ho_report:
5426
0
      j.write_fieldname("HandoverReport");
5427
0
      c.get<ho_report_s>().to_json(j);
5428
0
      break;
5429
0
    case types::res_status_upd:
5430
0
      j.write_fieldname("ResourceStatusUpdate");
5431
0
      c.get<res_status_upd_s>().to_json(j);
5432
0
      break;
5433
0
    case types::access_and_mob_ind:
5434
0
      j.write_fieldname("AccessAndMobilityIndication");
5435
0
      c.get<access_and_mob_ind_s>().to_json(j);
5436
0
      break;
5437
0
    case types::cell_traffic_trace:
5438
0
      j.write_fieldname("CellTrafficTrace");
5439
0
      c.get<cell_traffic_trace_s>().to_json(j);
5440
0
      break;
5441
0
    case types::ran_multicast_group_paging:
5442
0
      j.write_fieldname("RANMulticastGroupPaging");
5443
0
      c.get<ran_multicast_group_paging_s>().to_json(j);
5444
0
      break;
5445
0
    case types::scg_fail_info_report:
5446
0
      j.write_fieldname("ScgFailureInformationReport");
5447
0
      c.get<scg_fail_info_report_s>().to_json(j);
5448
0
      break;
5449
0
    case types::scg_fail_transfer:
5450
0
      j.write_fieldname("ScgFailureTransfer");
5451
0
      c.get<scg_fail_transfer_s>().to_json(j);
5452
0
      break;
5453
0
    case types::f1_c_traffic_transfer:
5454
0
      j.write_fieldname("F1CTrafficTransfer");
5455
0
      c.get<f1_c_traffic_transfer_s>().to_json(j);
5456
0
      break;
5457
0
    case types::retrieve_ue_context_confirm:
5458
0
      j.write_fieldname("RetrieveUEContextConfirm");
5459
0
      c.get<retrieve_ue_context_confirm_s>().to_json(j);
5460
0
      break;
5461
0
    case types::cp_c_cancel:
5462
0
      j.write_fieldname("CPCCancel");
5463
0
      c.get<cp_c_cancel_s>().to_json(j);
5464
0
      break;
5465
0
    case types::rach_ind:
5466
0
      j.write_fieldname("RachIndication");
5467
0
      c.get<rach_ind_s>().to_json(j);
5468
0
      break;
5469
0
    case types::data_collection_upd:
5470
0
      j.write_fieldname("DataCollectionUpdate");
5471
0
      c.get<data_collection_upd_s>().to_json(j);
5472
0
      break;
5473
0
    default:
5474
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_2_o::init_msg_c");
5475
0
  }
5476
0
  j.end_obj();
5477
0
}
5478
OCUDUASN_CODE xnap_elem_procs_class_2_o::init_msg_c::pack(bit_ref& bref) const
5479
0
{
5480
0
  varlength_field_pack_guard varlen_scope(bref, true);
5481
0
  switch (type_) {
5482
0
    case types::sn_status_transfer:
5483
0
      HANDLE_CODE(c.get<sn_status_transfer_s>().pack(bref));
5484
0
      break;
5485
0
    case types::ho_cancel:
5486
0
      HANDLE_CODE(c.get<ho_cancel_s>().pack(bref));
5487
0
      break;
5488
0
    case types::ran_paging:
5489
0
      HANDLE_CODE(c.get<ran_paging_s>().pack(bref));
5490
0
      break;
5491
0
    case types::xn_u_address_ind:
5492
0
      HANDLE_CODE(c.get<xn_u_address_ind_s>().pack(bref));
5493
0
      break;
5494
0
    case types::ue_context_release:
5495
0
      HANDLE_CODE(c.get<ue_context_release_s>().pack(bref));
5496
0
      break;
5497
0
    case types::sn_ode_recfg_complete:
5498
0
      HANDLE_CODE(c.get<sn_ode_recfg_complete_s>().pack(bref));
5499
0
      break;
5500
0
    case types::sn_ode_counter_check_request:
5501
0
      HANDLE_CODE(c.get<sn_ode_counter_check_request_s>().pack(bref));
5502
0
      break;
5503
0
    case types::rrc_transfer:
5504
0
      HANDLE_CODE(c.get<rrc_transfer_s>().pack(bref));
5505
0
      break;
5506
0
    case types::error_ind:
5507
0
      HANDLE_CODE(c.get<error_ind_s>().pack(bref));
5508
0
      break;
5509
0
    case types::private_msg:
5510
0
      HANDLE_CODE(c.get<private_msg_s>().pack(bref));
5511
0
      break;
5512
0
    case types::notif_ctrl_ind:
5513
0
      HANDLE_CODE(c.get<notif_ctrl_ind_s>().pack(bref));
5514
0
      break;
5515
0
    case types::activity_notif:
5516
0
      HANDLE_CODE(c.get<activity_notif_s>().pack(bref));
5517
0
      break;
5518
0
    case types::secondary_rat_data_usage_report:
5519
0
      HANDLE_CODE(c.get<secondary_rat_data_usage_report_s>().pack(bref));
5520
0
      break;
5521
0
    case types::deactiv_trace:
5522
0
      HANDLE_CODE(c.get<deactiv_trace_s>().pack(bref));
5523
0
      break;
5524
0
    case types::trace_start:
5525
0
      HANDLE_CODE(c.get<trace_start_s>().pack(bref));
5526
0
      break;
5527
0
    case types::ho_success:
5528
0
      HANDLE_CODE(c.get<ho_success_s>().pack(bref));
5529
0
      break;
5530
0
    case types::conditional_ho_cancel:
5531
0
      HANDLE_CODE(c.get<conditional_ho_cancel_s>().pack(bref));
5532
0
      break;
5533
0
    case types::early_status_transfer:
5534
0
      HANDLE_CODE(c.get<early_status_transfer_s>().pack(bref));
5535
0
      break;
5536
0
    case types::fail_ind:
5537
0
      HANDLE_CODE(c.get<fail_ind_s>().pack(bref));
5538
0
      break;
5539
0
    case types::ho_report:
5540
0
      HANDLE_CODE(c.get<ho_report_s>().pack(bref));
5541
0
      break;
5542
0
    case types::res_status_upd:
5543
0
      HANDLE_CODE(c.get<res_status_upd_s>().pack(bref));
5544
0
      break;
5545
0
    case types::access_and_mob_ind:
5546
0
      HANDLE_CODE(c.get<access_and_mob_ind_s>().pack(bref));
5547
0
      break;
5548
0
    case types::cell_traffic_trace:
5549
0
      HANDLE_CODE(c.get<cell_traffic_trace_s>().pack(bref));
5550
0
      break;
5551
0
    case types::ran_multicast_group_paging:
5552
0
      HANDLE_CODE(c.get<ran_multicast_group_paging_s>().pack(bref));
5553
0
      break;
5554
0
    case types::scg_fail_info_report:
5555
0
      HANDLE_CODE(c.get<scg_fail_info_report_s>().pack(bref));
5556
0
      break;
5557
0
    case types::scg_fail_transfer:
5558
0
      HANDLE_CODE(c.get<scg_fail_transfer_s>().pack(bref));
5559
0
      break;
5560
0
    case types::f1_c_traffic_transfer:
5561
0
      HANDLE_CODE(c.get<f1_c_traffic_transfer_s>().pack(bref));
5562
0
      break;
5563
0
    case types::retrieve_ue_context_confirm:
5564
0
      HANDLE_CODE(c.get<retrieve_ue_context_confirm_s>().pack(bref));
5565
0
      break;
5566
0
    case types::cp_c_cancel:
5567
0
      HANDLE_CODE(c.get<cp_c_cancel_s>().pack(bref));
5568
0
      break;
5569
0
    case types::rach_ind:
5570
0
      HANDLE_CODE(c.get<rach_ind_s>().pack(bref));
5571
0
      break;
5572
0
    case types::data_collection_upd:
5573
0
      HANDLE_CODE(c.get<data_collection_upd_s>().pack(bref));
5574
0
      break;
5575
0
    default:
5576
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_2_o::init_msg_c");
5577
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
5578
0
  }
5579
0
  return OCUDUASN_SUCCESS;
5580
0
}
5581
OCUDUASN_CODE xnap_elem_procs_class_2_o::init_msg_c::unpack(cbit_ref& bref)
5582
0
{
5583
0
  varlength_field_unpack_guard varlen_scope(bref, true);
5584
0
  switch (type_) {
5585
0
    case types::sn_status_transfer:
5586
0
      HANDLE_CODE(c.get<sn_status_transfer_s>().unpack(bref));
5587
0
      break;
5588
0
    case types::ho_cancel:
5589
0
      HANDLE_CODE(c.get<ho_cancel_s>().unpack(bref));
5590
0
      break;
5591
0
    case types::ran_paging:
5592
0
      HANDLE_CODE(c.get<ran_paging_s>().unpack(bref));
5593
0
      break;
5594
0
    case types::xn_u_address_ind:
5595
0
      HANDLE_CODE(c.get<xn_u_address_ind_s>().unpack(bref));
5596
0
      break;
5597
0
    case types::ue_context_release:
5598
0
      HANDLE_CODE(c.get<ue_context_release_s>().unpack(bref));
5599
0
      break;
5600
0
    case types::sn_ode_recfg_complete:
5601
0
      HANDLE_CODE(c.get<sn_ode_recfg_complete_s>().unpack(bref));
5602
0
      break;
5603
0
    case types::sn_ode_counter_check_request:
5604
0
      HANDLE_CODE(c.get<sn_ode_counter_check_request_s>().unpack(bref));
5605
0
      break;
5606
0
    case types::rrc_transfer:
5607
0
      HANDLE_CODE(c.get<rrc_transfer_s>().unpack(bref));
5608
0
      break;
5609
0
    case types::error_ind:
5610
0
      HANDLE_CODE(c.get<error_ind_s>().unpack(bref));
5611
0
      break;
5612
0
    case types::private_msg:
5613
0
      HANDLE_CODE(c.get<private_msg_s>().unpack(bref));
5614
0
      break;
5615
0
    case types::notif_ctrl_ind:
5616
0
      HANDLE_CODE(c.get<notif_ctrl_ind_s>().unpack(bref));
5617
0
      break;
5618
0
    case types::activity_notif:
5619
0
      HANDLE_CODE(c.get<activity_notif_s>().unpack(bref));
5620
0
      break;
5621
0
    case types::secondary_rat_data_usage_report:
5622
0
      HANDLE_CODE(c.get<secondary_rat_data_usage_report_s>().unpack(bref));
5623
0
      break;
5624
0
    case types::deactiv_trace:
5625
0
      HANDLE_CODE(c.get<deactiv_trace_s>().unpack(bref));
5626
0
      break;
5627
0
    case types::trace_start:
5628
0
      HANDLE_CODE(c.get<trace_start_s>().unpack(bref));
5629
0
      break;
5630
0
    case types::ho_success:
5631
0
      HANDLE_CODE(c.get<ho_success_s>().unpack(bref));
5632
0
      break;
5633
0
    case types::conditional_ho_cancel:
5634
0
      HANDLE_CODE(c.get<conditional_ho_cancel_s>().unpack(bref));
5635
0
      break;
5636
0
    case types::early_status_transfer:
5637
0
      HANDLE_CODE(c.get<early_status_transfer_s>().unpack(bref));
5638
0
      break;
5639
0
    case types::fail_ind:
5640
0
      HANDLE_CODE(c.get<fail_ind_s>().unpack(bref));
5641
0
      break;
5642
0
    case types::ho_report:
5643
0
      HANDLE_CODE(c.get<ho_report_s>().unpack(bref));
5644
0
      break;
5645
0
    case types::res_status_upd:
5646
0
      HANDLE_CODE(c.get<res_status_upd_s>().unpack(bref));
5647
0
      break;
5648
0
    case types::access_and_mob_ind:
5649
0
      HANDLE_CODE(c.get<access_and_mob_ind_s>().unpack(bref));
5650
0
      break;
5651
0
    case types::cell_traffic_trace:
5652
0
      HANDLE_CODE(c.get<cell_traffic_trace_s>().unpack(bref));
5653
0
      break;
5654
0
    case types::ran_multicast_group_paging:
5655
0
      HANDLE_CODE(c.get<ran_multicast_group_paging_s>().unpack(bref));
5656
0
      break;
5657
0
    case types::scg_fail_info_report:
5658
0
      HANDLE_CODE(c.get<scg_fail_info_report_s>().unpack(bref));
5659
0
      break;
5660
0
    case types::scg_fail_transfer:
5661
0
      HANDLE_CODE(c.get<scg_fail_transfer_s>().unpack(bref));
5662
0
      break;
5663
0
    case types::f1_c_traffic_transfer:
5664
0
      HANDLE_CODE(c.get<f1_c_traffic_transfer_s>().unpack(bref));
5665
0
      break;
5666
0
    case types::retrieve_ue_context_confirm:
5667
0
      HANDLE_CODE(c.get<retrieve_ue_context_confirm_s>().unpack(bref));
5668
0
      break;
5669
0
    case types::cp_c_cancel:
5670
0
      HANDLE_CODE(c.get<cp_c_cancel_s>().unpack(bref));
5671
0
      break;
5672
0
    case types::rach_ind:
5673
0
      HANDLE_CODE(c.get<rach_ind_s>().unpack(bref));
5674
0
      break;
5675
0
    case types::data_collection_upd:
5676
0
      HANDLE_CODE(c.get<data_collection_upd_s>().unpack(bref));
5677
0
      break;
5678
0
    default:
5679
0
      log_invalid_choice_id(type_, "xnap_elem_procs_class_2_o::init_msg_c");
5680
0
      return OCUDUASN_ERROR_DECODE_FAIL;
5681
0
  }
5682
0
  return OCUDUASN_SUCCESS;
5683
0
}
5684
5685
const char* xnap_elem_procs_class_2_o::init_msg_c::types_opts::to_string() const
5686
0
{
5687
0
  static const char* names[] = {"SNStatusTransfer",
5688
0
                                "HandoverCancel",
5689
0
                                "RANPaging",
5690
0
                                "XnUAddressIndication",
5691
0
                                "UEContextRelease",
5692
0
                                "SNodeReconfigurationComplete",
5693
0
                                "SNodeCounterCheckRequest",
5694
0
                                "RRCTransfer",
5695
0
                                "ErrorIndication",
5696
0
                                "PrivateMessage",
5697
0
                                "NotificationControlIndication",
5698
0
                                "ActivityNotification",
5699
0
                                "SecondaryRATDataUsageReport",
5700
0
                                "DeactivateTrace",
5701
0
                                "TraceStart",
5702
0
                                "HandoverSuccess",
5703
0
                                "ConditionalHandoverCancel",
5704
0
                                "EarlyStatusTransfer",
5705
0
                                "FailureIndication",
5706
0
                                "HandoverReport",
5707
0
                                "ResourceStatusUpdate",
5708
0
                                "AccessAndMobilityIndication",
5709
0
                                "CellTrafficTrace",
5710
0
                                "RANMulticastGroupPaging",
5711
0
                                "ScgFailureInformationReport",
5712
0
                                "ScgFailureTransfer",
5713
0
                                "F1CTrafficTransfer",
5714
0
                                "RetrieveUEContextConfirm",
5715
0
                                "CPCCancel",
5716
0
                                "RachIndication",
5717
0
                                "DataCollectionUpdate"};
5718
0
  return convert_enum_idx(names, 31, value, "xnap_elem_procs_class_2_o::init_msg_c::types");
5719
0
}
5720
uint8_t xnap_elem_procs_class_2_o::init_msg_c::types_opts::to_number() const
5721
0
{
5722
0
  if (value == f1_c_traffic_transfer) {
5723
0
    return 1;
5724
0
  }
5725
0
  invalid_enum_number(value, "xnap_elem_procs_class_2_o::init_msg_c::types");
5726
0
  return 0;
5727
0
}
5728
5729
// SuccessfulOutcome ::= OPEN TYPE
5730
void xnap_elem_procs_class_2_o::successful_outcome_c::to_json(json_writer& j) const
5731
0
{
5732
0
  j.start_obj();
5733
0
  j.end_obj();
5734
0
}
5735
OCUDUASN_CODE xnap_elem_procs_class_2_o::successful_outcome_c::pack(bit_ref& bref) const
5736
0
{
5737
0
  varlength_field_pack_guard varlen_scope(bref, true);
5738
0
  return OCUDUASN_SUCCESS;
5739
0
}
5740
OCUDUASN_CODE xnap_elem_procs_class_2_o::successful_outcome_c::unpack(cbit_ref& bref)
5741
0
{
5742
0
  varlength_field_unpack_guard varlen_scope(bref, true);
5743
0
  return OCUDUASN_SUCCESS;
5744
0
}
5745
5746
const char* xnap_elem_procs_class_2_o::successful_outcome_c::types_opts::to_string() const
5747
0
{
5748
0
  static const char* names[] = {};
5749
0
  return convert_enum_idx(names, 0, value, "xnap_elem_procs_class_2_o::successful_outcome_c::types");
5750
0
}
5751
5752
// UnsuccessfulOutcome ::= OPEN TYPE
5753
void xnap_elem_procs_class_2_o::unsuccessful_outcome_c::to_json(json_writer& j) const
5754
0
{
5755
0
  j.start_obj();
5756
0
  j.end_obj();
5757
0
}
5758
OCUDUASN_CODE xnap_elem_procs_class_2_o::unsuccessful_outcome_c::pack(bit_ref& bref) const
5759
0
{
5760
0
  varlength_field_pack_guard varlen_scope(bref, true);
5761
0
  return OCUDUASN_SUCCESS;
5762
0
}
5763
OCUDUASN_CODE xnap_elem_procs_class_2_o::unsuccessful_outcome_c::unpack(cbit_ref& bref)
5764
0
{
5765
0
  varlength_field_unpack_guard varlen_scope(bref, true);
5766
0
  return OCUDUASN_SUCCESS;
5767
0
}
5768
5769
const char* xnap_elem_procs_class_2_o::unsuccessful_outcome_c::types_opts::to_string() const
5770
0
{
5771
0
  static const char* names[] = {};
5772
0
  return convert_enum_idx(names, 0, value, "xnap_elem_procs_class_2_o::unsuccessful_outcome_c::types");
5773
0
}
5774
5775
// XnAP-PDU ::= CHOICE
5776
void xn_ap_pdu_c::destroy_()
5777
0
{
5778
0
  switch (type_) {
5779
0
    case types::init_msg:
5780
0
      c.destroy<init_msg_s>();
5781
0
      break;
5782
0
    case types::successful_outcome:
5783
0
      c.destroy<successful_outcome_s>();
5784
0
      break;
5785
0
    case types::unsuccessful_outcome:
5786
0
      c.destroy<unsuccessful_outcome_s>();
5787
0
      break;
5788
0
    default:
5789
0
      break;
5790
0
  }
5791
0
}
5792
void xn_ap_pdu_c::set(types::options e)
5793
0
{
5794
0
  destroy_();
5795
0
  type_ = e;
5796
0
  switch (type_) {
5797
0
    case types::init_msg:
5798
0
      c.init<init_msg_s>();
5799
0
      break;
5800
0
    case types::successful_outcome:
5801
0
      c.init<successful_outcome_s>();
5802
0
      break;
5803
0
    case types::unsuccessful_outcome:
5804
0
      c.init<unsuccessful_outcome_s>();
5805
0
      break;
5806
0
    case types::nulltype:
5807
0
      break;
5808
0
    default:
5809
0
      log_invalid_choice_id(type_, "xn_ap_pdu_c");
5810
0
  }
5811
0
}
5812
xn_ap_pdu_c::xn_ap_pdu_c(const xn_ap_pdu_c& other)
5813
0
{
5814
0
  type_ = other.type();
5815
0
  switch (type_) {
5816
0
    case types::init_msg:
5817
0
      c.init(other.c.get<init_msg_s>());
5818
0
      break;
5819
0
    case types::successful_outcome:
5820
0
      c.init(other.c.get<successful_outcome_s>());
5821
0
      break;
5822
0
    case types::unsuccessful_outcome:
5823
0
      c.init(other.c.get<unsuccessful_outcome_s>());
5824
0
      break;
5825
0
    case types::nulltype:
5826
0
      break;
5827
0
    default:
5828
0
      log_invalid_choice_id(type_, "xn_ap_pdu_c");
5829
0
  }
5830
0
}
5831
xn_ap_pdu_c& xn_ap_pdu_c::operator=(const xn_ap_pdu_c& other)
5832
0
{
5833
0
  if (this == &other) {
5834
0
    return *this;
5835
0
  }
5836
0
  set(other.type());
5837
0
  switch (type_) {
5838
0
    case types::init_msg:
5839
0
      c.set(other.c.get<init_msg_s>());
5840
0
      break;
5841
0
    case types::successful_outcome:
5842
0
      c.set(other.c.get<successful_outcome_s>());
5843
0
      break;
5844
0
    case types::unsuccessful_outcome:
5845
0
      c.set(other.c.get<unsuccessful_outcome_s>());
5846
0
      break;
5847
0
    case types::nulltype:
5848
0
      break;
5849
0
    default:
5850
0
      log_invalid_choice_id(type_, "xn_ap_pdu_c");
5851
0
  }
5852
5853
0
  return *this;
5854
0
}
5855
init_msg_s& xn_ap_pdu_c::set_init_msg()
5856
0
{
5857
0
  set(types::init_msg);
5858
0
  return c.get<init_msg_s>();
5859
0
}
5860
successful_outcome_s& xn_ap_pdu_c::set_successful_outcome()
5861
0
{
5862
0
  set(types::successful_outcome);
5863
0
  return c.get<successful_outcome_s>();
5864
0
}
5865
unsuccessful_outcome_s& xn_ap_pdu_c::set_unsuccessful_outcome()
5866
0
{
5867
0
  set(types::unsuccessful_outcome);
5868
0
  return c.get<unsuccessful_outcome_s>();
5869
0
}
5870
void xn_ap_pdu_c::to_json(json_writer& j) const
5871
0
{
5872
0
  j.start_obj();
5873
0
  switch (type_) {
5874
0
    case types::init_msg:
5875
0
      j.write_fieldname("initiatingMessage");
5876
0
      c.get<init_msg_s>().to_json(j);
5877
0
      break;
5878
0
    case types::successful_outcome:
5879
0
      j.write_fieldname("successfulOutcome");
5880
0
      c.get<successful_outcome_s>().to_json(j);
5881
0
      break;
5882
0
    case types::unsuccessful_outcome:
5883
0
      j.write_fieldname("unsuccessfulOutcome");
5884
0
      c.get<unsuccessful_outcome_s>().to_json(j);
5885
0
      break;
5886
0
    default:
5887
0
      log_invalid_choice_id(type_, "xn_ap_pdu_c");
5888
0
  }
5889
0
  j.end_obj();
5890
0
}
5891
OCUDUASN_CODE xn_ap_pdu_c::pack(bit_ref& bref) const
5892
0
{
5893
0
  type_.pack(bref);
5894
0
  switch (type_) {
5895
0
    case types::init_msg:
5896
0
      HANDLE_CODE(c.get<init_msg_s>().pack(bref));
5897
0
      break;
5898
0
    case types::successful_outcome:
5899
0
      HANDLE_CODE(c.get<successful_outcome_s>().pack(bref));
5900
0
      break;
5901
0
    case types::unsuccessful_outcome:
5902
0
      HANDLE_CODE(c.get<unsuccessful_outcome_s>().pack(bref));
5903
0
      break;
5904
0
    default:
5905
0
      log_invalid_choice_id(type_, "xn_ap_pdu_c");
5906
0
      return OCUDUASN_ERROR_ENCODE_FAIL;
5907
0
  }
5908
0
  return OCUDUASN_SUCCESS;
5909
0
}
5910
OCUDUASN_CODE xn_ap_pdu_c::unpack(cbit_ref& bref)
5911
0
{
5912
0
  types e;
5913
0
  e.unpack(bref);
5914
0
  set(e);
5915
0
  switch (type_) {
5916
0
    case types::init_msg:
5917
0
      HANDLE_CODE(c.get<init_msg_s>().unpack(bref));
5918
0
      break;
5919
0
    case types::successful_outcome:
5920
0
      HANDLE_CODE(c.get<successful_outcome_s>().unpack(bref));
5921
0
      break;
5922
0
    case types::unsuccessful_outcome:
5923
0
      HANDLE_CODE(c.get<unsuccessful_outcome_s>().unpack(bref));
5924
0
      break;
5925
0
    default:
5926
0
      log_invalid_choice_id(type_, "xn_ap_pdu_c");
5927
0
      return OCUDUASN_ERROR_DECODE_FAIL;
5928
0
  }
5929
0
  return OCUDUASN_SUCCESS;
5930
0
}
5931
5932
const char* xn_ap_pdu_c::types_opts::to_string() const
5933
0
{
5934
0
  static const char* names[] = {"initiatingMessage", "successfulOutcome", "unsuccessfulOutcome"};
5935
0
  return convert_enum_idx(names, 3, value, "xn_ap_pdu_c::types");
5936
0
}